
Планирование
- Отдайте предпочтение модульным/интеграционным тестам, а не тестам E2E. (См. Тестовая пирамида и Практическая тестовая пирамида.)
- Не пишите лишние UI тесты. Тест счастливые/грустные дорожки.
- Автоматизировать ручной QA, который выполняется часто.
Шаблоны проектирования
- Развитие, управляемое поведением (BDD)
- Объект страницы
- Стиль бота
- Domain-Driven Design (DDD)
- Загружаемый компонент
- Приемка
- Регресс
Разработка
Код
- Используйте фреймворк, который позволяет вам написать один раз и работать везде.
- Тест должен эмулировать действие, выполняемое пользователем.
- Используйте синтаксис Gherkin для удобства чтения.
- Модулируйте свои сценарии, чтобы у вас было много маленьких тестов вместо одного большого теста.
- Один тест не должен зависеть от другого. Они должны иметь возможность запускаться в любом порядке.
- Совместите тестовый код с кодом функции, чтобы использовать правильный артефакт сборки.
локаторы
- Отдельные локаторы в своих файлах.
- Локаторы не должны быть хрупкими, иначе тесты будут ненадежными.
- Используйте XPath для поиска элементов с текстом.
Отладка
- Регистрируйте каждое действие на экране и в файле. Включите такую информацию, как учетные данные пользователя, чтобы упростить устранение неполадок.
- Добавьте флаг, чтобы контролировать, останавливается ли тест при ошибке.
- Разрешить приостановку теста при достижении точки останова.
- Сохраняйте скриншот, когда тест не пройден.
Советы
- Если тест глючит, отключите его. Затем усильте тест перед его повторным включением.
- Избегайте использования
sleep()для разрешения условий гонки.
Время выполнения
- Минимизируйте время установки и демонтажа. Стремитесь к быстрому выполнению тестов.
- Сократите петли обратной связи, чтобы разработчики могли эффективно запускать тесты и устранять неполадки.
- Распараллелить выполнение теста.
- Повторите неудачные тесты.
Эта статья была первоначально опубликована на сайте замечательного знака.org 10 октября 2020 г.