بسم الله الرحمن الرحیم

دیروز با دوستی در خصوص روش های تست برنامه ها و دسته بندی این روش ها صحبت می کردیم. به دسته بندی جالبی رسیدیم. در اغلب مقالات و فیلم های آموزشی ای که در خصوص بررسی کیفیت نرم افزار و تست آنهاصحبت می شود، موضوع با دسته بندی تست ها شروع می شود و معمولا در ادامه به روش و نیازمندی های انواع تست اعم از عملکردی و غیر عملکردی و کارایی و... پرداخته می شود.

وقتی از این دوست عزیز در خصوص انواع تست هایی که در گزارش هایشان استفاده می کنند پرسیدم، گفت ما بیشتر به دنبال انواع خطا ها هستیم و برای پیدا کردن هر کدام از انواع خطاهایی که ممکن است در برنامه رخ دهد test case های مناسب طراحی می کنیم.

این صحبت باعث شد تا بیشتر در خصوص انواع خطا در نرم افزار جستجو کنم که پیدا کردن این دسته بندی هم کمک کرد تا درک بهتری از انواع تست داشته باشم.

به طور کلی انواع خطاهایی که در یک نرم افزار امکان وقوع دارد شامل سه دسته می شود :

  • Syntax ERROR
  • Logical  یا Semantic ERROR
  • RunTime ERROR

خطاهای Syntax به نوعی خطاهای گرامری برنامه به حساب می آیند و زمانی رخ می دهد که برنامه نویس در نوشتن کد برنامه دستور العمل گرامری زبان برنامه نویسی را رعایت نکرده باشد. مثلا نام یک متغیر را اشتباه زده باشد یا تعریف یک حلقه را مطابق دستور العمل مورد نظر اجرا نکرده باشد و از این قبیل موارد.

تکلیمان با این نوع خطاها روشن است و در هنگام کامپایل برنامه معمولا این نوع خطاها توسط IDE مربوطه گزارش می شود. ابزار های کمکی ای هم مانند resharper در دات نت به کمک ما می آیند تا قبل از کامپایل کد برنامه هم بتوانیم این خطاها را شناسایی کنیم و یا در پایان به گزارش های بهتری از این نوع خطاها دست پیدا کنیم.

دومین نوع خطا خطاهایی هستند که در منطق برنامه رخ می دهند. در واقع این خطاها زمانی اتفاق می افتند که برنامه نتواند نیازمندی های ما را تامین نماید. مثلا قرار باشد که در یک گزارش میانگین ارقامی را بدست بیاوریم، اما برنامه مجموع آن ارقام را ارئه دهد. یافتن این خطاها به راحتی خطاهای قبل نیست و نیاز به تبحر و شناسایی عملکرد سیستم دارد . در این حالت باید Test Case هایی متناسب با نیازمندی های تعریف شده برای نرم افزار طراحی کنیم تا از طریق اجرای این Test Cace ها از برآورده شدن صحیح این نیازمندی ها اطمینان حاصل کنیم.

اما نوع سوم خطاها مربوط به مواردی است که در هنگام اجرای برنامه رخ می دهند. اغلب این خطاها بدلیل عدم عملکرد درست عوامل خارج از نرم افزار مثل کاربر ، سخت افزار یا برنامه های دیگر مرتبط با آن نرم افزار رخ می دهند. در مورد این خطاها باید این اطمینان حاصل شود که برنامه این نوع خطها ها را به خوبی مدیریت و یا اصطلاحا handel می نماید.بنابر این برای بررسی این موضوع باید تمام رفتار هایی را که در تعامل با برنامه مورد نظر ما ممکن است از عوامل خارجی برنامه سربزند را پیشبینی کرده و در قالب Test Case طراحی نماییم و واکنش برنامه را نسبت به این رفتار ها بسنجیم.

البته پیش فرض تمام این طراحی ها و بررسی همان اصول هفتگانه ای است که در پست های قبل بدان پرداخته شد.