Перевод статьи «Top 10 Test Automation Strategies And Best Practices»
В этой статье мы рассмотрим лучшие практики и стратегии автоматизации тестирования.
Эти стратегии взяты из моего собственного опыта, а также из литературы таких гуру тестирования, как Джеймс Бах и Джем Канер.
Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
1. Наймите специалиста по автоматизации
Не просите своих ручных тестировщиков заниматься автоматизацией тестирования. Если вы все же хотите, чтобы они работали с автоматизацией, освободите их от ручного тестирования. Автоматизация тестирования – это полноценная работа, требующая отдельных специалистов.
Я рекомендую создать команду по автоматизации тестирования, включающую как минимум одного Automation Architect. Можно также нанять нескольких инженеров по автоматизации, которые будут работать под руководством Automation Architect. Количество инженеров зависит от масштаба разрабатываемого вами продукта.
2. Инструмент автоматизации важен, но он не является решением всех проблем
Некоторые тестировщики заблуждаются, когда думают, что если они выберут правильный инструмент, то смогут легко автоматизировать все, что угодно. Однако инструменты для автоматизации не решают все проблемы. Они лишь упрощают процесс. Вам также необходимы опытные специалисты для успешной автоматизации.
Инструменты автоматизации часто вызывают ошибки при взаимодействии с какими-то сложными объектами в приложении. Опытные специалисты могут найти способы обойти эти проблемы и продолжить процесс автоматизации. Без квалифицированных специалистов автоматизация не будет успешной, даже с хорошим инструментом.
3. Выберите инструмент автоматизации, с которым ваши специалисты уже знакомы
Если ваши специалисты владеют C#, и ваше приложение также разработано на C#, то нет смысла выбирать инструмент, который не поддерживает C# для написания скриптов.
Изучение языка – это процесс, требующий времени. Выбирайте простые инструменты, для освоения которых вам не придется тратить слишком много времени.
4. Изучите тестируемое приложение
Выбор инструмента во многом зависит от технологий, используемых в вашем проекте. Прежде чем приступить к автоматизации, тщательно изучите свое приложение.
Если это веб-приложение, узнайте, какие браузеры оно поддерживает. Изучите технологии, используемые в нем. Если это десктоп приложение, узнайте, на каком языке оно написано. Какие сторонние элементы управления используются в приложении. Это поможет вам облегчить выбор инструмента и сам процесс автоматизации.
5. Хорошая автоматизация требует хороших ручных тест-кейсов
Тщательно разработанные ручные тест-кейсы помогают нам избежать автоматизации таких случаев, которые легко автоматизировать, но которые не помогают находить баги в приложении.
Вот цитата из книги “Lessons Learned in Software Testing”:
"Автоматизация без разработки хороших тест-кейсов не будет иметь большую ценность".
Всегда рекомендуется сначала писать тест-кейсы вручную. Определите все предварительные условия и тестовые данные. Четко опишите шаги и укажите ожидаемые результаты для каждого шага. Цель каждого тест-кейса должна быть ясной, и все тест-кейсы должны быть независимыми друг от друга. Инженеры по автоматизации должны хотя бы раз запустить тес-кейс вручную. Для этого общайтесь с ручными тестировщиками и задавайте им вопросы.
Эта деятельность помогает выявить ошибки еще до написания сценария автоматизации. Эксперты утверждают, что большинство ошибок выявляется на этапе разработки автоматизации, а не на этапе ее выполнения.
6. Выявление возможностей с помощью автоматизации
Если вам предоставили ручной тест-кейс для автоматизации, не стоит просто автоматизировать его таким, какой он есть. Вместо этого найдите дополнительные возможности для автоматизации, чтобы увеличить тестовое покрытие и рассмотреть как можно больше тестовых сценариев.
Например, если нужно автоматизировать вход на веб-страницу, создайте разные сценарии, такие как неправильный пароль, пустой пароль, некорректное имя пользователя и т. д. Запишите все возможные сценарии вместе с ожидаемыми результатами в файл Excel, который будет использоваться в качестве источника данных для вашего тест-кейса. Теперь этот ручной тест-кейс после автоматизации может проверить все возможные сценарии за один раз.
Всегда ищите сложные сценарии, которые трудно выполнить вручную, но можно автоматизировать. Например, сценарии нагрузочного тестирования, показатели тестирования производительности, одни и те же тесты в разных средах с разными конфигурациями, утечки памяти и т.д. Все это – сложные сценарии для ручных тестировщиков.
7. Вы не можете автоматизировать все
Автоматизация означает часто выполнение небольшого количества тестов. Начните с малого: автоматизируйте в первую очередь smoke тесты. Затем перейдите к сценариям тестирования сборки. Далее автоматизируйте часто выполняемые тесты, а затем те тесты, которые занимают много времени. Убедитесь, что каждый автоматизированный тест помогает экономить время ручных тестировщиков, чтобы они могли сосредоточиться на более важных задачах.
Автоматизация не должна заменять ручных тестировщиков. Она и не сможет их заменить. Ее цель – освободить ручных тестировщиков от рутинной работы, чтобы они могли полностью сосредоточиться на поиске новых сценариев тестирования и ошибок в приложении.
Автоматизируйте тесты, которые позволят сэкономить время для тестирования, а также тесты, которые сложно выполнить вручную. Если вы это сделали, задача автоматизации выполнена.
8.Избегайте автоматизации GUI, когда есть альтернатива
Автоматизация GUI всегда сложнее, чем другие типы автоматизированных тестов. Если возникает ситуация, когда вы можете достичь своей цели, не автоматизируя GUI, а используя другие методы, то лучше всего избежать автоматизации GUI.
Например, вы хотите протестировать установку приложения. Цель – проверить, установилось ли приложение или нет в определенной среде. Один из подходов – запустить установку и несколько раз нажать на кнопку “Далее” с помощью вашего средства автоматизации. Это может отнимать много времени и вызывать трудности в случае изменения пользовательского интерфейса. Другой подход заключается в установке приложения с помощью пакетного файла. Приложение будет установлено без отображения графического интерфейса. Установка приложения будет выполнена за меньшее время и более надежным способом.
9. Используйте автоматизацию и для других целей
Автоматизация – это фантастическая вещь. С ее помощью можно добиться таких вещей, о которых вы обычно не задумываетесь. Автоматизация – это не просто программирование ручных тестов. Вы можете использовать автоматизацию для упрощения различных операций во время тестирования.
Например, вы можете использовать автоматизацию для создания основных данных и настройки конфигураций для ручных тестировщиков. Таким образом, они могут начать тестирование намного раньше.
Я могу привести один пример из своей компании. Мы хотели перейти с нашего инструмента управления тест-кейсами на другой инструмент. Мы использовали “Test Director” и хотели перейти на TFS (Team Foundation Server). У нас было около 4000 ручных тест-кейсов и ошибок в Test Director. Перенести их вручную в TFS могло занять около месяца. По этой причине мой менеджер попросил меня попробовать автоматизацию.
Я покопался в этих инструментах и выяснил, что Test Director использует SQL-сервер в качестве хранилища. Для TFS я нашел инструмент, который может читать тест-кейсы и ошибки из файла Excel, если они записаны в определенном формате, и вставлять их в TFS. Таким образом, я написал SQL-запрос для получения всех тест-кейсов и ошибок и записал их в файл Excel в определенном формате. Затем я использовал инструмент, который считывал все тест-кейсы и ошибки из файла Excel и вставлял их в TFS. Весь процесс занял всего 3 часа. Мой менеджер был очень доволен.
10. Автоматизация – это разработка программного обеспечения
Если вы разрабатываете качественное программное обеспечение, оно нуждается в лучших практиках. Для написания качественного кода нужен ревью, фреймворк или шаблон проектирования, которому нужно следовать.
Автоматизация – это, по сути, разработка программного обеспечения. Таким образом, все лучшие практики, которым вы следуете при разработке программного обеспечения, должны применяться и при автоматизации. Должна существовать определенная структура автоматизации, проводиться ревью кода. Если вы будете относиться к автоматизации как к разработке программного обеспечения, то автоматизация будет выполнена успешно.
Заключение
Автоматизация тестирования – это интересная и полезная работа. Правильное выполнение этой работы приносит пользу не только вам, но и вашей компании.
Каждый день, работая над автоматизацией тестирования и ее методами, я нахожу новые и интересные задачи, которые необходимо решить. В этой статье я рассказал о том, что может встретиться на пути автоматизации тестирования.