+2 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

Test coverage چیست و چگونه برای یک پروژه نرم افزاری محاسبه می شود؟

1 پاسخ

+1 امتیاز
قبل توسط (1.4هزار امتیاز)
ویرایش شده قبل توسط
 
بهترین پاسخ

اول چند تا تعریف:

نیازمندی آزمون (test requirement): مولفه‌ی خاصی از یک مصنوع نرم‌افزاری (software artifact) که (حداقل) یک مورد آزمون باید آن را بپوشاند (می‌تونیم بهش مسیر آزمون هم بگیم)

معیار پوشش آزمون (test coverage criteria): مجموعه قوانینی است که نیازمندی‌های آزمون را بر روی یک مدل (مدل آزمون) اعمال می‌کند.

پوشش آزمون (coverage): باتوجه به مجموعه‌ای از نیازمندی‌های آزمونِ TR و یک معیار پوششِ C، یک مجموعه‌ی آزمون، C را پوشش می‌دهد، اگر و تنها اگر هر عضو  در TR، حداقل با یک آزمون (از آن مجموعه‌ی آزمون) پوشش داده شود.

بدیهتا پوشش تمام نیازمندی‌های آزمون ممکن نیست (یا حداقل هزینه‌ی زمانی زیادی داره). بنابراین باید سعی شود که مجموعه‌ی آزمون تعداد بیشتری از نیازمندی‌های آزمون را پوشش دهند. 

موارد آزمون اینگونه بدست میان:

  1. انتخاب معیار پوشش مناسب
  2. تبدیل کد برنامه به مدل آزمون
  3. اعمال معیار پوشش بر مدل آزمون و بدست آوردن نیازمندی‌های آزمون
  4. بدست آوردن موارد آزمون از این نیازمندی‌های آزمون (که این موارد آزمون باید این نیازمندی‌ها را پوشش دهند)

یکی از انواع رایج مدل آزمون، گراف جریان‌کنترلی  (CFG یا control flow graph) هست.

از رایج‌ترین معیارهای پوشش آزمون هم معیارهای پوشش گراف هست (که معمولا بر روی CFG اعمال میشن)، چند نمونه از معیارهای پوشش گراف (که در لینکهای زیر سوال شده بودن):

  1. معیار پوشش شاخه (Branch Coverage)
  2. معیار پوشش مسیر (Path Coverage)
  3. معیارهای پوشش جریان‌داده‌ای (Data flow Coverage)

ابزارها و افزونه‌های مختلفی هم برای پوشش آزمون وجود دارن (برای جاوا)

سوالات مشابه

+1 امتیاز
1 پاسخ 1.3هزار بازدید
+2 امتیاز
1 پاسخ 1.3هزار بازدید
0 امتیاز
1 پاسخ 1.4هزار بازدید
0 امتیاز
0 پاسخ 540 بازدید
0 امتیاز
0 پاسخ 608 بازدید
0 امتیاز
0 پاسخ 324 بازدید
0 امتیاز
0 پاسخ 379 بازدید
0 امتیاز
0 پاسخ 455 بازدید
...