Замечание Сэма насчет лишней работы понятно. На первый взгляд
кажется
, что написание подобных
приемочных тестов потребует
значительных усилий. Но взглянув на рис. 7.1, мы видим, что эту
работу неправильно называть «лишней». Написание тестов всего лишь
является работой по определению спецификации системы. Только на
таком уровне детализации мы, программисты, понимаем, что означает
«выполненная работа». Только на таком уровне детализации ключевые
участники проекта могут убедиться в том,
что система, за которую
они платят, делает то, что требуется. И только на таком уровне
детализации возможна успешная автоматизация тестирования.
Так что
не стоит рассматривать эти тесты как лишнюю работу – лучше
рассматривайте их как значительную экономию времени и денег.
Тесты предотвратят ошибки в реализации системы и помогут узнать,
когда ваша работа закончена.
Кто и когда пишет приемочные тесты?
В идеальном мире ключевые участники проекта и служба контроля
качества сотрудничают в написании этих тестов, а разработчики
проверяют их на логическую непротиворечивость. В
реальном мире
ключевые участники редко находят время или желание погружаться на
нужный уровень детализации, поэтому они перепоручают эту
обязанность бизнес-аналитикам, специалистам по контролю качества
или даже разработчикам. Если окажется,
что тесты должны писать
разработчики, по крайней мере проследите за тем, чтобы это были
не
те
разработчики, которые занимаются реализацией тестируемой
функциональности.
Бизнес-аналитики обычно пишут «оптимистичные» версии тестов,
потому что эти тесты описывают аспекты, обладающие коммерческой
ценностью.
Служба
контроля
качества
обычно
пишет
«пессимистичные» тесты с проверкой всевозможных граничных
условий, исключений и аномальных случаев. И это понятно,
потому
что задача контроля качества – думать о том, что может пойти не так.
Согласно принципу «поздней точности» приемочные тесты
следует писать как можно позднее,
обычно за несколько дней до
реализации. В проектах на базе гибких методологий тесты пишутся
после
выбора функций для следующей итерации или спринта.
Первые приемочные тесты должны быть готовы к первому дню
итерации. Новые тесты должны появляться ежедневно вплоть до
середины
итерации, когда готовы должны быть все тесты. Если к
середине итерации некоторые приемочные тесты еще не готовы,
переведите нескольких разработчиков на их срочную доработку. Если
это происходит часто, включите в команду
дополнительных бизнес-
аналитиков и/или специалистов по контролю качества.
Do'stlaringiz bilan baham: