Жалобы на жизнь: процесс автоматизации тестирования |
04.09.2018 10:12 |
Автор: Энди Найт (Andy Knight) Оригинал статьи: https://automationpanda.com/2017/11/29/the-airing-of-grievances-test-automation-process/ Перевод: Ольга Алифанова Тест-автоматизация очень много для меня значит. Я выбрал эту специальность из множества доступных в поле разработки ПО. Когда я вижу, что она неверно применяется, или когда люди просто не понимают, что это такое – меня это бесит. У меня много вопросов к плохим процессам автоматизации, и сейчас вы узнаете об этом все! Говорить «Это просто тест-сценарии»Автоматизация тестирования – это не просто набор тест-сценариев. Это целый арсенал технологий, требующий дизайна, интеграции, и опыта. Разработка тест-автоматизации – это отдельная область. Когда вы говорите, что это всего лишь набор тест-сценариев – вы унижаете и оскорбляете ее. Это обесценивает те усилия, которых требует автоматизация, ведет к плохому масштабированию работы и отношениям «они против нас» между разработкой и QA. Не применять лучшие практики разработки ПО к автоматизацииТест-автоматизация – это разработка ПО, и к ней применимы все соответствующие практики. Пишите чистый, хорошо спроектированный код. Используйте контроль версий и код-ревью. Добавляйте комментарии и документируйте. Не ленитесь потому, что «это же просто тест-сценарии» - это неправильный подход! Болтать впустуюНе говорите, как важна автоматизация, если вы затем не уделяете ей ни времени, ни ресурсов. Не бросайте ее, как задачу, которую нужно выполнять только тогда, когда у вас осталось время после тестирования вручную. Сделайте ее приоритетом, иначе вы никогда ее не внедрите! Однажды я работал в Agile-команде, в которой стори, относящиеся к фреймворку автоматизации, никогда не включались в спринт, потому что были «недостаточно значимы, чтобы возиться». В результате, хотя компания наняла меня именно для автоматизации тестирования, я каждый спринт пытался урвать на нее время у ручного тестирования. Путать автоматизацию тестирования с автоматизацией деплояАвтоматизация тестирования – это автоматизация сценариев тестирования для функциональных тестов или тестов производительности. Автоматизация деплоя – это автоматизация распределения и установки билдов продукта. это разные вещи. Cucumber – это не Ansible. Навязывать 100% автоматизациюРяд людей полагает, что автоматизация полностью исключит нужду в каком-либо ручном тестировании. Это чистая ложь. Автоматизация и ручное тестирование – это взаимодополняющие вещи. Автоматизация должна заниматься детерминистическими сценариями, если это окупается, а ручные тестировщики – исследовательским тестированием, пользовательским опытом и тестами, которые слишком сложны для грамотной автоматизации. Навязывание 100% автоматизации приведет к тому, что команда будет концентрироваться на метриках, а не на качестве и эффективности. Снижать размеры отдела QA или вовсе его устранятьАвтоматизация тестирования не снижает нужду в тестировщиках, и тем более не устраняет ее полностью. Все ровно наоборот – она требует более продвинутых навыков по сравнению с олдскульными ручными тестировщиками. Нужда в роли тестировщика все еще есть, неважно, как отдельного человека или как совместной обязанности разработчиков. Просто выполняемая этой ролью работа больше сдвигается в техническую область. Говорить, что код продукта и код тестов должны писаться на одном и том же языкеЭто верно только для юнит-тестов, для прочих тестов это ложь. Любой язык общего назначения может быть использован для автоматизации тестов черного ящика. К примеру, тесты на Python можно прогонять для веб-приложения на Angular. Команда может использовать один и тот же язык для продукта и автотестов просто потому, что это проще, но это совершенно необязательно. Не классифицировать типы тестовНе все тесты одинаковы. Вы можете жонглировать кучей модных словечек: юнит, интеграционные, end-to-end, функциональные, тесты производительности, системные тесты, контрактные тесты, исследовательские, стресс-тесты, тесты границ, тесты долговечности, тесты «чтобы сломать», … Разным тестам нужны разные инструменты/фреймворки. Тесты также должны писаться на соответствующем уровне тест-пирамиды. Предполагать, что все тесты равнозначныПовторяю, не все тесты одинаковы, даже внутри одного и того же типа тестов. Тесты различаются по времени разработки, прогона и поддержки. Сравнивать людей или команды по количеству тестов неправильно. Не приоритезировать тесты для автоматизацииВремени на автоматизацию всего не хватит никогда. Выберите самые важные тесты, которые нужно автоматизировать в первую очередь: обычно это ключевые, высокоприоритетные фичи. Не тратьте время на незначительные тесты. Не запускать тесты регулярноАвтоматизированные тесты должны прогоняться как минимум раз в день, а в непрерывной интеграции – постоянно. В противном случае их полезность слишком низка, чтобы оправдать работу автоматизаторов. Однажды я работал в QA-команде, которая запускала автотесты максимум пару раз в течение двухлетнего релиза! Что за бессмысленная трата времени! Пользоваться HP Quality Center / ALMЭтот инструмент просто отстой, мать вашу. Не используйте его для автотестов. Приберегите деньги для разработки хорошей базы кода с грамотной документацией, и воспользуйтесь другими дашбордами (вроде Jenkins/Kibana) для отчетов о тестировании. |