Покриття кодуПокриття коду (англ. code coverage, tests coverage) — міра, яка використовується при тестуванні програмного забезпечення. Вона визначається відсотком тестованого вихідного коду (сирцевий код) програми. Техніка покриття коду була однією із перших методик, винайдених для систематичного тестування програмного забезпечення. Перша згадка покриття коду в публікаціях з'явилася 1963 року[1]. КритеріїІснує кілька різноманітних способів вимірювання покриття, основні з них:
Для програмного забезпечення із особливими вимогами до безпеки часто виникає потреба продемонструвати, що тестами досягається 100 % покриття для одного із критеріїв. Деякі із наведених критеріїв покриття пов'язані поміж собою; для прикладу, покриття шляхів включає в себе і покриття умов і покриття операторів. Покриття операторів не включає в себе покриття умов, як демонструє фрагмент програми мовою програмування Сі: printf("this is");
if (bar < 1)
{
printf(" not ");
}
printf("a positive integer");
Якщо тут На практиці, для досягнення покриття шляхів використовують наступний підхід: виділяються класи шляхів (до прикладу, до одного класу можна віднести шляхи, які відрізняються лише кількістю ітерацій в одному й тому ж циклі), 100 % покриття досягнуте, якщо покриті всі класи шляхів (клас вважається покритим, якщо покрито хоча б один шлях з нього). Практичне застосуванняЗазвичай вихідний код забезпечується тестами, які регулярно виконують. Отриманий звіт аналізується з метою виявити ті ділянки коду, які не протестовані, після чого проводиться оновлення набору тестів, а саме пишуться тести для непокритих ділянок коду. Ціль полягає в тому, щоб отримати набір тестів для регресивного тестування, при якому детально перевіряється весь вихідний код. Ступінь покриття коду зазвичай представляють у відсотковому вигляді. До прикладу, «було протестовано 67 % коду». Зміст цієї фрази залежить від того, який критерій було використано, оскільки 67 % покриття шляхів — це кращий результат ніж 67 % покриття операторів. Питання про взаємозв'язок покриття коду та якості тестового набору на даний момент ще не є остаточно вирішеним. РеалізаціїВиноски
Посилання
Дивись також |
Portal di Ensiklopedia Dunia