Руководство по стратегии тест-автоматизации |
04.05.2023 16:41 |
Автор: Юлия Поттингер (Julia Pottinger) Автоматизация тестирования все шире внедряется в компаниях для решения проблем и сокращения сроков вывода продукта на рынок. Однако усилия по внедрению автоматизации не должны быть бессистемными и должны окупать затраты на нее – команде нужно совместно проработать стратегию тест-автоматизации. Стратегия тест-автоматизации определяет инструменты и фреймворки, которые будут использоваться для создания многоразовых автоматизированных сценариев, а также то, как эти сценарии будут создаваться и поддерживаться. Она наиболее эффективна, если поддерживается всей командой, так как именно команде предстоит воплощать ее в жизнь. Тест-автоматизация может дать хорошую доходность – выход на рынок ускорится, а тесты станут быстрее и надежнее. Однако это требует времени и сил, и не стоит бросаться в создание автоматизированных сценариев, не проработав стратегию тест-автоматизации. Ваша стратегия должна определить, как вы будете заниматься тест-автоматизацией, кто будет ее писать, когда вы будете ее запускать, и какими окружениями пользоваться. Она дает полные ответы на все "что", "зачем", "когда", "как" и "где" для ваших автотестов. Давайте разберемся, в чем же эти "что", "зачем", "когда", "как" и "где" заключаются. "Зачем" – цельСоздавая стратегию тест-автоматизации, начинать надо с ответа на вопрос, зачем. Зачем вам нужны автоматизированные тесты? Какой цели вы хотите достичь, создавая автоматизированные скрипты? Целей может быть и несколько. Возможно, вам нужно, чтобы продукт быстрее выходил на рынок. Этого можно достичь при помощи автоматизации тестирования. Другими целями тест-автоматизации могут быть:
Эти, а также множество других возможных причин – цели вашей тест-автоматизации. Цель поможет вам определиться с инструментами, техниками, членами команды и применяемыми технологиями. Эта цель будет направлять все, что вы включаете в свою стратегию автоматизации. «Кто»Скрипты тест-автоматизации сами себя не напишут. Вам понадобится команда, которая будет их писать, запускать, проверять падения, обновлять скрипты, создавать отчеты, поддерживать тесты, писать регрессионные тесты, и т. д. Все это очень важно, и для этого нужна специализированная команда. Наличие правильного соотношения ручных тестировщиков и инженеров-автоматизаторов, поддерживающих баланс между автоматизированным и тестируемым в каждом спринте, поможет предотвратить выгорание команды и добиться поставленных перед автоматизацией целей. Думая, кто войдет в команду, вам нужно подумать вот о чем:
Наличие правильного коллектива с необходимыми знаниями и навыками положительно повлияет на стратегию тест-автоматизации. «Что»Решение, что именно автоматизировать, позволяет вам сосредоточиться на ключевых областях, которые принесут наибольшую выгоду. Если вы броситесь в омут головой, не планируя, что будете автоматизировать на каком уровне пирамиды тест-автоматизации, то с шансами зря потратите кучу времени и прочих ресурсов. Определяя, что автоматизировать, думайте о своей цели и сверяйте с ней то, что планируете покрывать автотестами. К примеру, если вы хотите автоматизировать регрессионные тесты, приоритезируйте и автоматизируйте регресс-набор, который уже существует на проде. Если вы хотите автоматизировать новые фичи в ходе спринта, то рассмотрите их и попробуйте определить, какие можно автоматизировать. У меня есть основное правило принятия решения, что автоматизировать. Вот его краткое описание:
Такие автоматизированные тест-кейсы должны быть спроектированы так, чтобы их можно было повторно использовать и поддерживать. Они должны быть внятными, простыми для понимания и приоритезированными – тогда процесс создания и поддержки тест-автоматизации пойдет гладко. «Как»Теперь вам нужен ответ на следующий вопрос – как вы будете запускать ваши автоматизированные тесты. Вам нужно подобрать инструменты и фреймворки, которые подойдут для ваших проектных задач. Выбирая инструменты, обращайте внимание вот на что:
Чтобы оценить и выбрать правильные инструменты и фреймворки, создайте таблицу всех фич, которые будут автоматизироваться, а также обязательный набор инструментов, и сравните их между собой, чтобы понять, какой лучше сработает. Я бы также предложила провести апробацию двух лучших инструментов, чтобы убедиться, что они комфортны в использовании, способны создавать как базовую автоматизацию, так и автоматизацию граничных случаев, и их легко поддерживать. Возможно, этот этап отнимет у вас максимум времени и сил на исследования – потратьте это время, чтобы тщательно оценить каждый инструмент и потребности своего проекта тест-автоматизации. «Где и когда»И, наконец, для выверенной стратегии тест-автоматизации нужно подумать, где и когда. Я очень советую обзавестись специальным тест-окружением, в котором запускаются автотесты. Это позволит вам манипулировать данными, получая разные сценарии для проверки. Вам нужно подумать об усилиях, требуемых для создания такого окружения, и составить план его внедрения. Я бы также предложила запускать тесты на проде. Такие тесты, однако, нужно грамотно пометить или проставить им тэги. Тэги для тестов, запускающихся на проде, нужны для того, чтобы контролировать эти конкретные тесты. К примеру, вам не нужно тестировать все оформление заказа от и до на проде или выполнять определенные запросы на удаление к вашему API или базе данных. Разработайте план запуска ваших тестов. Ответьте на эти вопросы и составьте план:
Убедитесь, что подумали обо всех этих деталях – тогда ваша стратегия тест-автоматизации будет стабильной. -- Учтите, что ваша команда должна от и до понимать тест-стратегию. Я бы предложила использовать ментальную карту для набросков того, что будет включать ваша стратегия. Это может быть живым документом, на который вы и ваша команда будете опираться, обновляя его, обсуждая различные моменты, касающиеся инструментов, технологий, типов тестов и цель проекта автоматизации. Помните, что автотесты должны быть поддерживаемыми, и это займет время. Убедитесь, что у команды достаточно времени на приоритезацию областей, нуждающихся в автоматизации, создание скриптов, их прогон и оценку, создание отчетов, поддержку проекта; а также что команда обладает достаточными знаниями для осуществления этих видов деятельности. Следовательно, если команда нуждается в обучении, предоставьте им необходимое обучение и поддержку. |