Приемочные испытания и покрытие кода
Каков наилучший способ измерения покрытия для ваших приемочных испытаний?
Как вы определяете, сколько охватывают ваши приемочные тесты и когда их достаточно?
1 ответ
При проведении приемочного тестирования я бы скорее посмотрел на функциональное покрытие, то есть на то, сколько функций (или пользовательских историй или вариантов использования) данного приложения было протестировано. И для меня, для каждой функции (или пользовательской истории или варианта использования), все сценарии или возможные пути должны быть проверены. Другими словами, функции должны быть отправной точкой для написания плана тестирования, и цель должна состоять в том, чтобы охватить функции, а не код. Это небольшое отличие, но важное: измерение приемочного тестирования с охватом кода ориентировано на разработчика, измерение функционального охвата ориентировано на конечного пользователя.
Что касается измерений, Рон Джеффрис, один из отцов-основателей Agile, написал отличную сводку того, что он считает действительно ценной метрикой, RTF или Запуск проверенных функций. Вы можете просмотреть статью здесь. Я просто цитирую небольшую часть ниже:
В чем суть проекта?
Я просто догадываюсь, но я думаю, что смысл большинства проектов по разработке программного обеспечения - это программное обеспечение, которое работает, и в нем есть как можно больше функций на доллар инвестиций. Я называю это понятием "Проверка работоспособности" [Возможности], и на самом деле его можно измерить до некоторой степени.
Представьте себе следующее определение RTF:
- Желаемое программное обеспечение разбито на именованные функции (требования, истории), которые являются частью того, что значит доставить желаемую систему.
- Для каждой именованной функции существует один или несколько автоматических приемочных тестов, которые, когда они работают, покажут, что данная функция реализована.
- Метрика RTF показывает, в каждый момент проекта, сколько функций проходит все свои приемочные испытания.
Сколько определенных пользователем функций, как известно, благодаря независимому тестированию работают? Теперь есть метрика, с которой я мог бы жить.
Чтобы сообщить о прогрессе, мне особенно нравятся интегральные схемы. Они ясно показывают, когда что-то идет не так, например (здесь стиль выгорания):
http://xprogramming.com/images/BVCcustTest2.jpg
Для примера из реальной жизни взгляните на этот пост или на этот (таблица стилей).