تست سلامت

**تست سلامت** روشی سریع برای چک کردن اینکه آیا جوابی که از یکسری محاسبات بدست آورده‌ایم صحیح است یا نه، می‌باشد. وظیفهٔ اصلی تست سلامت این است که یکسری گونهٔ خاص مورد نظر و مشخص از اشتباهات را مشخص کند، نه اینکه لزوماً هر ایرادی را به درستی متوجه شود. وجه مثبت تست سلامت این است که سریع می‌باشد.

برای مثال وقتی عددی را ضربدر ۹ می‌کنیم، می‌توانیم برای چک کردن اینکه آیا جواب بدست آمده درست است یا نه، می‌توانیم مجموع ارقام حاصل را محاسبه کرده و ببینیم آیا بر ۹ بخش‌پذیر است یا نه، در اینصورت یکسری اشتباهات محاسباتی را متوجه می‌شویم، اما لزومی ندارد اگر تست سلامت درست بود، حتماً درست محاسبه کرده باشیم.

در علم کامپیوتر، تست سلامت یک عملیات برای اینکه به صورت سریع بررسی شود، که آیا یک برنامه یا محاسبه به احتمال خوبی درست کار می‌کند یا نه، می‌باشد.

## استفاده در محاسبات ریاضی
تست سلامت در محاسبات ریاضی کاربرد ویژه‌ای دارد، به مثال‌های زیر توجه کنید.
* اگر طبق محاسبه بدست آورده باشیم مربع ۷۳۸ برابر ۵۴۴۶۴ است، به راحتی با استفاده از تست سلامت می‌توانیم متوجه شویم محاسبهٔ ما نادرست است، زیرا ۷۳۸> ۷۰۰ می‌باشد و مربع ۷۰۰ برابر ۴۹۰۰۰۰ می‌باشد، و از آنجایی که مربع ۷۳۸ هم باید از مربع ۷۰۰ بزرگ‌تر باشد، این مقدار نمی‌تواند ۵۴۴۶۴ باشد.
* در عمل ضرب، مقدار ۹۱۸ × ۱۵۵ نمی‌تواند برابر ۱۴۲۱۳۵ باشد، به چند دلیل، ضرب عددی فرد در عددی زوج، عددی زوج می‌شود، در صورتی که حاصل فرد شده‌است، ۹۱۸ بر ۳ بخش‌پذیر است ولی حاصل بر ۳ بخش‌پذیر نیست، و یکان حاصل باید به پیمانهٔ ۱۰ برابر با ضرب یکان ۲ عدد شود که این‌چنین نیست، در نتیجه اگر در تست سلامتمان هر کدام از موارد بالا را در نظر گیریم، متوجه می‌شویم که اشتباه عمل ضرب را انجام داده‌ایم.
* مربع عدد ۱۷ نمی‌تواند ۲۸۷ باشد، زیرا هرگز مربع یک عدد به پیمانهٔ ۴ برابر با ۳ نمی‌شود، از طرفی یکان مربع عدد ۱۷ باید برابر با ۹ شود.

## استفاده در فیزیک
* توان یک ماشین هرگز نمی‌تواند ۷۰۰ کیلوژول باشد، زیرا ژول واحد توان نیست، به این تحلیل، تحلیل ابعادی می‌گویند.
* در محاسبهٔ یک خاصیت فیزیکی یک ماده، مقایسه با مواد مشابه می‌تواند به ما شهود مناسبی دهد و کمک کند که اشتباهات محاسباتی‌مان را متوجه شویم، برای مثال اکثر فلزات در آب غرق می‌شوند، در نتیجه در محاسبهٔ چگالی یک فلز، باید در نظر داشته‌باشیم، حاصلمان باید از چگالی آب (حدود ۱۰۰۰ کیلوگرم بر متر مکعب) بیش‌تر باشد.

## استفاده در توسعه نرم‌افزار
تست سلامت بسیار در توسعهٔ نرم‌افزار پرکاربرد است، وقتی یک نرم‌افزار توسعه داده می‌شود و نسخهٔ جدیدی از آن می‌خواهد عرضه شود، طبعاً نیاز دارد تا قبل از این عرضه بررسی شود، و این بررسی و تست کردن زمان‌بر است، تست سلامت برای این استفاده می‌شود که بررسی شود آیا برنامه ایراداتی بدیهی دارد یا نه، که این کار سریعاً انجام می‌شود، و اگر ایرادات بدیهی‌ای پیدا شدند، دیگر نیازی به بررسی بیش‌تر و انجام تست‌های زمان‌برنخواهد بود، تست سلامت در واقع معمولاً برای بررسی این است که آیا سیستم‌ها قابل دسترسی هستند و منطق برنامه درست است یا خیر، اگر تست سلامت با موفقیت توسط برنامه پاسخ داده نشود، دیگر نیازی نیست به بررسی بیش‌تر ادامه بدهیم، در نتیجه تست سلامت از اتلاف وقت جلوگیری می‌کند.

در تست سلامت می‌توان یه یکسری توابع از برنامهٔ نوشته شده، ورودی‌هایی ساده و قابل بررسی داد و مشاهده کرد که آیا برنامه به درستی پاسخ می‌دهد یا نه، و زمانی که برنامه موفق شد این تست‌ها را به درستی پاسخ دهد، به بررسی‌ها و تست‌های زمان‌بر تر رو آورد.

برای مثال اگر یک محیط برای برنامه‌نویسی نوشته‌اید، برای تست کردن آن می‌توانید اول به نوشتن برنامه‌ای که "Hello Word" را چاپ کند، بپردازید. در صورتی که برنامه موفق به گردآوری (compile) یا اجرا (execute) نشد، مشکلی ابتدایی در کار شما هست!

## جستارهای وابسته
* اثبات مفهوم
* تست نرم‌افزار
* تصدیق الگوریتم

## منابع

* Fecko, Mariusz A. ; Lott, Christopher M. (اکتبر ۲۰۰۲). "Lessons learned from automating tests for an operations support system" (PDF).
* ISTQB® Glossary for the International Software Testing Qualification Board® software testing qualification scheme, ISTQB Glossary International Software Testing Qualification Board.
* Hassan, A. E. and Zhang, K. 2006. Using Decision Trees to Predict the Certification Result of a Build. In Proceedings of the 21st IEEE/ACM international Conference on Automated Software Engineering (سپتامبر ۲۰۰۶). Automated Software Engineering. IEEE Computer Society, Washington, DC, 189–198.
* Darwin, Ian F. (ژانویه ۱۹۹۱). Checking C programs with lint (1st ed. , with minor revisions. ed.). Newton, Mass. : O'Reilly & Associates. p. 19. ISBN 0-937175-30-7. Retrieved 7 October 2014. A common programming habit is to ignore the return value from fprintf(stderr, ...

رده:آشکارسازی و اصلاح خطا
رده:تست نرم‌افزار
رده:ویکی‌سازی رباتیک