Книга: Идеальный программист. Как стать профессионалом разработки ПО
Автоматизация
Автоматизация
Приемочные тесты всегда должны быть автоматизированными. В других моментах жизненного цикла программных продуктов находится место для ручного тестирования, но такие тесты никогда не должны выполняться вручную. Причина проста: затраты.
Взгляните на рис. 7.1. Руки, которые вы на нем видите, принадлежат менеджеру по контролю качества крупной интернет-компании. В документе, который он держит, содержится оглавление его плана ручного тестирования. Он оплачивает целую армию тестеров из других стран, которые выполняют этот план каждые шесть недель. Каждое тестирование обходится примерно в миллион долларов. Он только что вернулся с собрания, на котором руководитель сообщил, что бюджет тестирования будет урезан примерно на 50 %, а теперь спрашивает меня: «Какую половину этих тестов не нужно выполнять?»
Назвать происходящее катастрофой значило бы не сказать ничего. Затраты на ручное тестирование настолько велики, что фирма решила отказаться от него – и просто жить дальше, не зная, работает ли половина ее продукта!
Рис. 7.1. План ручного тестирования
Профессиональные разработчики не допускают возникновения подобных ситуаций. Затраты на проведение автоматизированных тестов настолько малы по сравнению с затратами на ручное тестирование, что написание сценариев, запускаемых вручную, не имеет никакого экономического смысла. Профессиональные разработчики считают своей обязанностью проследить за тем, чтобы приемочные тесты проводились в автоматизированном режиме.
Существует множество программных инструментов (как коммерческих, так и с открытым кодом), автоматизирующих приемочные тесты. FitNesse, Cucumber, cuke4duke, robot framework и Selenium – этот список далеко не полон. Во всех этих инструментах автоматизированные тесты определяются в такой форме, что даже не-программисты могут читать их, понимать и даже создавать.
- Преждевременная точность
- Принцип неопределенности
- Стремление к точности оценки
- Поздняя неоднозначность
- Приемочные тесты
- Что такое «выполнено»?
- Взаимодействие сторон
- Автоматизация
- Дополнительная работа
- Кто и когда пишет приемочные тесты?
- Роль разработчика
- Обсуждение тестов и пассивно-агрессивная позиция
- Приемочные тесты и модульные тесты
- Графические интерфейсы и другие сложности
- Выбор интерфейса для тестирования
- Непрерывная интеграция
- Стоп-сигнал
- Глава 7. Масштабирование и автоматизация бизнеса
- 1.3. Автоматизация процесса с помощью GNU-утилиты make
- 15.4. Утилита make: автоматизация процедур
- Урок 5.4. Автоматизация форматирования документа
- Глава 3. Автоматизация учета в программе «Складской учет и торговля»
- Глава 4 Автоматизация бухгалтерского документооборота в программе «Бухгалтерские документы»
- Глава 6 Автоматизация стандартных документов
- Автоматизация удаления файлов
- Глава 10 Автоматизация управленческих процессов в сетях
- Глава 2. Автоматизация учета в программе WinBlack
- ГЛАВА 12 АВТОМАТИЗАЦИЯ СИСТЕМЫ ПРОДАЖ
- Способ десятый Повальная автоматизация