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е) тестирование
  • регрессионное тестирование
  • модульный, интеграционный уровни