Автоматизации тестирования. С чего начинать, возможные проблемы.
- Начинайте с малого в самом начале проекта, регулярно запускайте тестовую сюиту.
- Заведите себе backlog для задач автоматизации и их приоритезации. Это поможет вам сфокусироваться на неотложных задачах без потери общего направления, вашей конечной цели.
- Не бойтесь потратить 1-2 спринта на изучение существующих тестовых фреймворков, их возможностей. Попробуйте написать реальные тесты с их помощью, это поможет вам выбрать фреймворк наиболее подходящий вашим требованиям.
- Старайтесь сохранять независимость тестов от данных. Это даст вам возможность менять инструменты (фреймворки), когда в этом возникнет необходимость.
- Создавайте самодостаточные тесты. Обращайте внимание на сложность поддержки и время прогона тестов каждый раз, когда добавляете новые тесты в автоматическую сюиту.
- Ваши тесты не должны создавать ложного ощущения безопасности (false positive). Это убивает всю идею автоматических тестов.
- Сделайте все возможное, чтобы исправлять ошибки выявленные тесты максимально быстро.
- Обязательно включайте запуск автоматических тестов в систему сборки (continuous integration)
- У вас должен быть интуитивно понятный способ отчетов, дающий возможность любому в команде увидеть результаты тестов и историю их предыдущих запусков. Это дает возможность каждому быть включенным в мониторинг состояния проекта и помогает принимать правильные решения.
Интересная дискуссия на тему автоматических тестов развернулась в комментариях к статье Michael Feathers “Taking Automated Test Off the Pedestal“. Майкл поднимает вопрос увеличения количества автоматических тестов на проектах и как следствие роста стоимости и временных затрат. При этом отмечается, что проблема политическая: стоимость поддержки и запуска автоматических тестов может быть высокой, но ее необходимо сравнивать со стоимостью их отсутствия. Считая, что тесты обеспечивают обратную связь, мы должны решить какую именно реакцию и когда мы ожидаем. Предлагается установить временные рамки, в пределах которых мы рассчитываем получить результат. Если наши тесты позволяют нам это сделать – хорошо. Если нет, то начинаем делить сюиты, для того чтобы запускать их попеременно. Для этого важно определить те тесты, которые являются самыми важными для вас.
Не зацикливайтесь на автоматизации “через GUI”, как правило, это неудобно и медленно.
В идеале (по крайней мере у вас в голове) должна сложиться такая картинка
К сожалению чаще можно наблюдать такое, поэтому работы у нас еще море (пирамидки сперты отсюда):
И еще. Не думайте, что автоматические тесты будут вам искать баги. Не будут! Это не их задача. Автоматика всего лишь доказывает, что ожидаемый функционал работает в тех условиях и в тех рамках, которые заданы тестом. Это все. Чудес ожидать не стоит.
Кстати, у меня появился пост про Fitnesse. Он может вам помочь вам с автоматизацией. Надеюсь получится полезная серия.
Источник: maxshulga-ru.blogspot.com