Книга: Руководство по DevOps
Обнаружение ошибок с помощью автоматизированного тестирования на самых ранних этапах
Обнаружение ошибок с помощью автоматизированного тестирования на самых ранних этапах
Конкретная цель разработки наших наборов автоматизированных тестов — найти ошибки на максимально раннем этапе тестирования. Вот почему мы запускаем быстро работающие автоматизированные тесты (например, модульные) раньше, чем медленнее работающие автоматизированные тесты (например, приемочные и интеграционные тесты), а они, в свою очередь, запускаются до любых видов тестирования вручную.
Другое следствие этого принципа — то, что любые ошибки должны быть найдены с помощью самых быстрых категорий тестирования. Если большинство ошибок обнаруживаются в ходе приемочного и интеграционного тестирования, то обратная связь к разработчикам приходит на порядок медленнее, чем при модульном тестировании — и интеграционное тестирование требует применения ограниченных и сложных тестовых сред. Они могут использоваться только одной командой в каждый момент, что еще сильнее затягивает получение обратной связи.
Кроме того, не только само воспроизведение ошибок, обнаруженных в ходе интеграционного тестирования, является трудоемким и отнимает много времени. Сложным является даже процесс проверки того, что они действительно исправлены (то есть разработчик создает исправление, но затем необходимо ждать четыре часа, чтобы узнать, успешно ли завершилось интеграционное тестирование).
Поэтому, обнаружив ошибку в ходе приемочного или интеграционного тестирования, мы должны создать модульный тест, чтобы он мог найти ошибку быстрее, раньше и дешевле. Мартин Фаулер описал понятие «пирамиды идеального тестирования». С ее помощью мы могли бы отлавливать большинство ошибок благодаря модульным тестам (рис. 14). На деле же зачастую верно обратное, и основной вклад в поиск ошибок вносят ручное и интеграционное тестирование.
- Непрерывные сборка, тестирование и интеграция кода и среды
- Создайте комплекс быстрой и надежной автоматизированной тестовой проверки
- Обнаружение ошибок с помощью автоматизированного тестирования на самых ранних этапах
- Идеальное и неидеальное автоматизированное тестирование
- Обеспечьте быстрое выполнение тестов (если необходимо — параллельное)
- Пишите автоматизированные тесты до того, как начнете писать код («разработка через тестирование»)
- Автоматизируйте как можно больше тестов
- Встраиваем тесты производительности в программу тестирования
- Включайте проверку нефункциональных требований в программу тестирования
- Дергайте за шнур-андон, если конвейер развертывания поврежден
- Почему нужно дергать за шнур-андон
- Заключение
- Перехват ошибок
- Повышение производительности приложений с помощью хранимых процедур
- Тестирование Web-сервиса XML с помощью WebDev.WebServer.exe
- Организация пользователей в группы с помощью ролей
- Обработка перехваченных ошибок
- 7.4. Модель системы автоматизированного проектирования защиты информации
- Глава 2 Обнаружение адреса
- Приложение 10. Коды ошибок
- Обработка запросов с помощью PHP
- B1.7. Функции обработки ошибок
- Обработка ошибок
- Программы для тестирования привода