Перевод статьи подготовлен в преддверии старта курса «Python QA Engineer».
Прежде чем спрашивать: «Что автоматизировать?», нужно ответить на такой вопрос: «Рационально ли вообще автоматизировать что-либо в рамках текущего проекта?». Если ответ положительный (что означает, что у вас есть все необходимые ресурсы для обеспечения автоматизации, такие как квалифицированные QA-специалисты, достаточно времени, денег и т.д.) необходимо создать план, основываясь на требованиях тестируемого объекта, для которого и будут разрабатываться автоматизированные тесты. При создании такого документа должно быть четкое понимание того, что именно вы хотите автоматизировать, как и какие средства автоматизации выбрать. Сейчас мы не будем вдаваться в подробности того, как именно тестировать ту или иную функцию, поскольку нас интересует, где, по нашему мнению, должна быть реализована автоматизация.
Конечно, приведенный ниже список далеко не полный, да и детализированный список тестов для проверки каждой функции кажется бессмысленной затеей. Наша задача выбрать в проекте те части, которые нужно автоматизировать в первую очередь:
Какие типы тестов не нужно включать в автоматизированное тестирование? Давайте перечислим ситуации, в которых тест-кейсы автоматизировать не нужно:
Для повышения эффективности автоматизированного тестирования, особое внимание следует уделять тест-кейсам. Необходимо выделить те из них, которые ориентированы на тестирование следующих аспектов:
Именно от автоматизации такого функционала можно получить больше всего пользы!
Прежде чем спрашивать: «Что автоматизировать?», нужно ответить на такой вопрос: «Рационально ли вообще автоматизировать что-либо в рамках текущего проекта?». Если ответ положительный (что означает, что у вас есть все необходимые ресурсы для обеспечения автоматизации, такие как квалифицированные QA-специалисты, достаточно времени, денег и т.д.) необходимо создать план, основываясь на требованиях тестируемого объекта, для которого и будут разрабатываться автоматизированные тесты. При создании такого документа должно быть четкое понимание того, что именно вы хотите автоматизировать, как и какие средства автоматизации выбрать. Сейчас мы не будем вдаваться в подробности того, как именно тестировать ту или иную функцию, поскольку нас интересует, где, по нашему мнению, должна быть реализована автоматизация.
Конечно, приведенный ниже список далеко не полный, да и детализированный список тестов для проверки каждой функции кажется бессмысленной затеей. Наша задача выбрать в проекте те части, которые нужно автоматизировать в первую очередь:
- Часто используемый функционал, где достаточно высок риск ошибок. Автоматизированное тестирование ключевых функциональных точек сократит время на поиск ошибок и, соответственно, время необходимое на их устранение, тоже сократится.
- Типичные часто выполняемые операции, связанные с обработкой данных. Например, формы, в которых количество полей, подлежащих заполнению, достаточно велико. Цель здесь в том, чтобы автоматизировать ввод данных в нужное поле и проверить правильность выполнения задачи после получения результата.
- Сообщения о валидации. Нужно автоматизировать отправку неверных данных соответствующим полям и протестировать корректность работы проверки данных и сообщения об ошибках.
- Комплексное тестирование поведения всей системы как целостного объекта (сквозное тестирование).
- Проверка данных, требующих точных математических расчетов (бухгалтерское или аналитическое программное обеспечение).
- Проверка корректности отображаемых результатов поиска в ответ на запрос по данным (проверка корректности поиска данных).
- Валидация поиска данных.
Что не автоматизировать?
Какие типы тестов не нужно включать в автоматизированное тестирование? Давайте перечислим ситуации, в которых тест-кейсы автоматизировать не нужно:
- Юзабилити-тесты, требующие ручного вмешательства для проверки на наличие ошибок или отклонение от ожидаемого поведения;
- Тест-кейсы, которые включают в себя установку или не требуют повторного выполнения функции (тем не менее, тесты, которые подразумевают ввод данных в том, автоматизировать необходимо);
- Избегайте автоматизации тестов, которые могут привести к непредсказуемым результатам (например, новые функции, временные тесты, проверка на истечение срока службы).
- UX-тесты, которые включают в себя проверку поведения объектов на экранах различных размеров.
Для повышения эффективности автоматизированного тестирования, особое внимание следует уделять тест-кейсам. Необходимо выделить те из них, которые ориентированы на тестирование следующих аспектов:
- Операции создания/чтения/обновления/удаления (CRUD-операции). Самый простой пример – пользовательский интерфейс. Ввод, просмотр и редактирование данных пользователя, удаление информации.
- Стандартные сценарии использования приложения. Примером может служить работа с почтовым клиентом: авторизация, просмотр писем, навигация по полученным письмам, создание новых и их отправка, выход из системы. Эта сквозная последовательность проверяет полный спектр действий и манипуляций. Преимущество таких сценариев заключается в том, что в конце теста система возвращается в исходное состояние (ну или близко к нему), что означает, что влияние на результаты других тестов уменьшается.
- Другие кейсы, когда по каким-то причинам не подходит ручное тестирование. Например, проверка структуры файлов, созданных системой.
Именно от автоматизации такого функционала можно получить больше всего пользы!
Читать ещё:
amarao
Очень однобокие советы, рассчитанные на какую-то специфичный вид ПО. Какой именно мне не видно, но подозрительно попахивает десктопными приложениями.
Вот, например, вы пишите "Тест-кейсы, которые включают в себя установку или не требуют повторного выполнения функции", или "Избегайте автоматизации тестов, которые могут привести к непредсказуемым результатам (например, новые функции, временные тесты, проверка на истечение срока службы)".
А вот у меня на работе 90% тестов проверяют установку, проверки на истечение сроков, версию ПО и прочую ерунду такого же характера.
Почему? Потому что у нас тестируется инфраструктурный код. Который эти самые версии делает, следит за лицензиями/сертификатами и т.д. И разумеется, у нас пристально проверяется, что всё это работает.