دانستنی‌ها

چه ابزاری برای ارزیابی کیفیت تست‌کیس‌ها مناسب تر است؟

ابزارهای تحلیل تغییر (mutation analysis) امکان بررسی کیفیت تست هایی (Tests) که برای بررسی و ارزیابی کد طراحی می شوند را فراهم می کنند. این ابزارها تغییراتی را در کد اعمال می کنند و سپس کد تغییریافته را برای واحدهای تستی (Test Units) که طراحی شده اند می فرستند و بررسی می کنند که واحدهای تست قادر به کشف چه تعداد از این تغییرات هستند.

یکی از سؤالاتی که برنامه نویسان با آن مواجه می شوند این است که از چه ابزاری برای بررسی کیفیت واحدهای تستی خود استفاده کنند و چه معیارهایی را برای مقایسه ی ابزارهای مختلف در نظر داشته باشند.

در [1] تعدادی از ابزارهای تحلیل تغییر برای زبان جاوا مقایسه شده اند. از جمله معیارهای مقایسه ای که در [1] از آن ها استفاده شده است می توان به این موارد اشاره کرد:

  1. مدل نقص (Fault Model): این مدل مجموعه ای از مواردی که می توان در کد تغییر داد و بررسی کرد که تست های طراحی شده قادر به شناسایی آن باشد را شامل می شود؛ یعنی تغییرات بر مبنای این مدل اعمال می شوند. هر اندازه که این مدل کامل تر باشد، ارزیابی تست های طراحی شده (توسط ابزاری که از این مدل استفاده می کند) نیز کامل تر انجام می شود.
  2. نظام تغییرات (Mutation Order): اصطلاحاً به کدی که تغییر کرده است، تغییریابنده (mutant) می گویند. اگر یک تغییریابنده تعداد زیادی تغییر را شامل شده باشد (نه یک تغییر) اصطلاحاً به آن high-order mutant می گویند. این معیار بررسی می کند که یک ابزار قادر به تولید چه تعداد high-order mutant است و تا چه میزان جنبه های مختلف اعمال تغییرات مختلف در تغییریابنده ها را در نظر دارد.
  3. قدرت انتخاب (Selectivity): بدیهی است که تعداد تغییراتی که می توان در قطعه ای از کد اعمال کرد زیاد است. در نتیجه می توان تعداد زیادی تغییریابنده تولید کرد اما مشکل اینجاست که بررسی قابلیت تست ها در کشف تعداد زیادی از تغییرات زمانبر است. بنابراین یک ابزار مناسب باید بتواند از بین تمام تغییریابنده های ممکن بهترین آن ها را انتخاب کند؛ این معیار به بررسی این مهم می پردازد.
  4. سرعت تولید تغییریابنده ها و اعمال تست ها بر روی آن­ ها: هر اندازه که سرعت بیشتر باشد، ابزار کارایی (efficiency) بیشتری دارد.
  5. قابلیت نصب آسان
  6. دسترسی به مستندات و خودآموزهای استفاده از ابزار
  7. قابلیت پشتیبانی از تمام قابلیت ها و ویژگی های زبان جاوا
  8. کاربرپسند بودن: هر اندازه که واسط کاربری ابزار مورد بررسی کاربرپسندتر باشد، استفاده از ابزار آسان تر است.

بر مبنای ارزیابی هایی که در [1] انجام شده است، مطابق با توضیحات زیر برخی ابزارها برای بعضی اهداف مناسب ترند:

  • ابزار PIT برای اهداف آموزشی و تدریس مناسب تر است.
  • در حوزه های پژوهشی ابزارهای مختلفی می توانند بر مبنای هدف پژوهش استفاده شوند اما ابزارهای MuJava، Judy، MAJOR، و Bacterio معمول تر هستند.

 

منابع

[1] Delahaye, M., and Bousquet, L. du (2013), “A comparison of mutation analysis tools for Java”, Proceedings of 13th International Conference on Quality Software (QSIC), pp. 187-195.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا