Test Automation
(автоматизация тестирования продукта)
Хороший тест отвечает на вопрос: "Верен ли конечный
результат?".
Плохой тест отвечает на вопрос: "Верен ли процесс?".
Тесты должны покрывать "все что нужно", предоставлять
быструю обратную связь, быть актуальными.
Тестирование продукта направлено на проверку внешнего
интерфейса (виден всем, не требуется дополнительных действий со
стороны внешнего пользователя).
Тестирование кода направлено на проверку внутреннего
интерфейса (методы и свойства не доступны снаружи класса.
Внутренний интерфейс используется для работы объекта, позволяет
изменять внутренние свойства и методы объекта не информируя об
этом внешнего пользователя).
| Origin | Просто (Module test) | Integration test | Сложно (e2e test) | |
|---|---|---|---|---|
| Важно | 1 | 2 | 3 | 4 |
| Не важно | - | 6 | 5 | 7 |
| Скорость обратной связи | - | hight | middle | low |
| Стоимость поддержки | - | low | middle | hight |
(Level 3) e2e test - наилучшая защита от багов, наилучшая
устойчивость к рефакторингу, максимальный охват модулей системы,
медленная обратная связь, большая стоимость поддержки.
(Level 2) integration test - проверяет контроллеры,
взаимодействие модулей системы.
(Level 1) module test - проверяет валидацию, алгоритм,
доменную модель. Высокая скорость обратной связи, простота
поддержки.
| . . |
| Origin-DB integration |
| Origin data |
| e2e long |
|||||
|
DB-API integration |
API-GUI integration |
||||
| DB table |
API end point |
GUI page |
|||
| 5% | 1 | 10 tests |
3 level |
| 25% | 5:1 | 50 tests |
2 level |
| 70% | 3:1 | 150 tests |
1 level |
Тестовое покрытие = количество проверенных требований /
общее количество требований.
% автоматизации = количество автоматизированных тестов /
общее количество тестов.
Создание объектов >> Фильтрация >> Выполнение >> Формирование
отчета
Origin - источник данных (API третьей системы, файл)
DB - база данных
API - прикладной программный интерфейс
GUI - графический интерфейс пользователя
Что автоматизировать
- проверка данных источника
- web-сервисы
- дымовое (е2е) тестирование
- регрессионное тестирование
- модульный, интеграционный уровни