فرض کنید شما گراف برنامه تان را بدست آورده اید؛
تعریف کلی:
All-Defs Coverage: برای هر متغیر موجود در برنامه، شما باید برای هر تعریف (مقدار دهی) متغیر، حداقل یک مسیر رو پیدا کنید که متغیر در ابتدای مسیر تعریف، در طول مسیر بدون تغییر، و در انتهای مسیر استفاده (خواندن مقدار متغیر) شده باشد. پس مجموعه آزمون باید طوری انتخاب شود که در اجرا، حداقل یک بار چنین مسیری برای هر تعریفِ هر متغیر طی شود.
All-Uses Coverage: برای هر متغیر موجود در برنامه، شما باید برای هر استفاده از متغیر، حداقل یک مسیر پیدا کنید که در ابتدای مسیر تعریف، در طول مسیر بدون تغییر، و در انتهای مسیر استفاده شده باشد. پس مجموعه آزمون باید طوری انتخاب شود که در اجرا، حداقل یک بار چنین مسیری برای هر استفاده از هر متغیر طی شود.
تعریف دقیق:
چند تعریف زیر ابتدا باید مطرح شود:
def: مجموعه متغیرهایی که در گره n تعریف (یا مقداردهی) شده اند:
def(n)
use: مجموعه متغیرهایی که در گره n از آنها استفاده (مقدار آنها خوانده شده است) شده است:
use(n)
use: مجموعه متغیرهایی که در یال e از آنها استفاده شده است:
use(e)
مثال گراف:
یک مسیر def-clear برای متغیر v (از گره ni تا گره nj، خود این دو گره در مسیر حساب نمی شوند) است، اگر در هیچ جای این مسیر (گره ها و یال ها)، مقدار v تغییر نکند (def نشده باشد).
du-path برای متغیر v (برای یک مسیر): یک مسیر def-clear برای متغیر v است که در گره ni تعریف (def) و در گره nj استفاده (use) شده باشد:
du(ni,nj,v)
du-path برای متغیر v (برای یک گره آغازین): مجموعه تمام du-path های متغیر v که در گره n تعریف شده اند:
def(n,v)
حالا می توانیم تعاریف All-Defs Coverage و All-Uses Coverage رو بیان کنیم:
All-Defs Coverage:
به ازای تمام مجموعه du-path های
S = def(n,v)
آزمونهای ما حداقل یک مسیرِ d را از هر S، پوشش دهند (دقت شود هر S برای یک متغیر و یک n تعریف می شود).
All-Uses Coverage:
به ازای تمام مجموعه du-path های
s = def(ni,nj,v)
آزمونهای ما حداقل یک مسیرِ d را از هر S، پوشش دهند (دقت شود هر S برای یک متغیر و یک nj تعریف می شود).
مثال:
مجموعه آزمون ما برای All-Defs Coverage، باید برای متغیر x، حداقل یکی از مسیرهای 4-3-2-0، 4-3-1-0، 5-3-2-0 و 5-3-1-0 را طی کند (که در جدول یکی از این مسیرهای انتخاب شده است)
مجموعه آزمون ما برای All-Uses Coverage، باید برای متغیر x، حداقل یکی از مسیرهای 4-3-2-0 و 4-3-1-0 را برای (use(4 و حداقل یکی از مسیرهای 5-3-2-0 و 5-3-1-0 را برای (use(5، طی کند.
دقت شود، اگر گراف، چند متغیره بود، کارهای بالا باید برای هر متغیر تکرار شود.