Первая разделительная черта - то, что существенно легче проверить вручную, а что значительно проще тестировать в автоматическом режиме?
Это, конечно, довольно легко вычислить, и, вероятно, вы останетесь с большой кучей гука посередине.
Моим следующим решетом было бы то, что проблемы с пользовательским интерфейсом труднее всего тестировать в автоматическом режиме, хотя в некоторых проектах это упрощается. Поэтому я оставлю это на время специалистам по контролю качества и сосредоточу ваши автоматизированные тесты на небольших единицах внутреннего кода, постепенно расширяясь до более крупных интеграционных тестов для нескольких единиц и / или нескольких уровней вашего приложения.
+1 Джиму за рекомендацию ручного тестирования элементов пользовательского интерфейса; относительно легко использовать инструмент автоматизации пользовательского интерфейса для создания тестов, но нужно много думать и предвидеть, чтобы разработать тестовую структуру, достаточно надежную и всеобъемлющую, чтобы минимизировать обслуживание тестов.
Если вам нужно расставить приоритеты, вот несколько методов, которые я использовал для выявления областей, не относящихся к пользовательскому интерфейсу, которые больше всего выиграют от дополнительного тестирования:
Взгляните на статью Майка Кона о Пирамиде автоматизации тестирования . В частности, подумайте, какая часть пользовательского интерфейса действительно нуждается в таком тестировании. Угловые случаи, например, часто лучше тестировать через сервисный уровень.
Мой совет: автоматизируйте все, что вы можете автоматизировать. Позвольте людям делать то, что у них хорошо получается, например отвечать на вопрос: «Это выглядит правильно?» или «Это можно использовать?». Для всего остального автоматизируйте.
Не помешает протестировать любую новую функциональность вручную, чтобы убедиться, что она соответствует требованиям, а затем добавить ее в пакет автоматизации для регрессии. (Или это слишком традиционно?)
В отличие от автоматического тестирования ручное тестирование может выполнять следующие функции:
Автоматическое тестирование, в отличие от ручного, может выполнять следующие функции:
Кроме того, сделать ошибку при автоматическом тестировании проще и с большей вероятностью, чем при ручном тестировании. Я рекомендую вам автоматизировать наиболее ценные функции, но тем не менее запускать тесты (по крайней мере, на работоспособность) вручную перед важным выпуском.