Разделы портала

Онлайн-тренинги

.
Как можно и нельзя автоматизировать
26.11.2018 12:30

Автор: Катрин Кавли (Katrine Kavli)

Оригинал статьи

Перевод: Ольга Алифанова

О, благословенная страна тест-автоматизации, сберегающая столько денег, времени и сил! Мы беремся за автоматизацию, чтобы повысить эффективность и частоту проверок, однако большая часть усилий в области автотестов пропадает впустую. Это плохо, если учитывать, что правильно внедренные автотесты очень выгодны.

В проекте по начислению пенсии мы внедряли решение по автоматическому приему, отказу или постановку в очередь на ручную обработку уведомлений о состоянии здоровья – в зависимости от четырех разных оценок. Пока оно внедрялось, я сделала автоматизированный набор тестов, управляемый через данные, проверяющий все возможные комбинации и диапазоны оценок.

Финальный тест был запущен спустя месяц разработки и занял десять минут. Вообще-то пять, но менеджер проекта не верила своим ушам и заставила меня прогнать его повторно.

Этот проект отлично подходил для автотестов, но не все проекты так же хороши. Я собрала ряд рекомендаций для тех, кто раздумывает над внедрением автотестов.

Нельзя

Автоматизировать все ручные тесты

Ручные тесты прекрасны – они находят проблемы, о которых вы даже не помышляли. Но ручной подход к тестированию не всегда можно напрямую перенести на автоматизированные проверки. Возможно, стоит создать новые сценарии специально для автоматизации.

Делать автотесты задачей одного-единственного человека

Когда вы только начинаете, найм консультанта по автоматизации – хорошая мысль, однако убедитесь, что соответствующие знания доступны всем участникам проекта. В один прекрасный день консультант или ключевой исполнитель покинет вас, и разбираться с тест-набором придется всем остальным.

Автоматизировать все на свете

Сценарий автоматизируется не просто так – на это есть причины, его автоматизация каким-то образом ценна для проекта. Начните с рутинных задач, которые все равно выполняются ежедневно – и вы сразу увидите первую, мгновенную выгоду от усилий по автоматизации.

Автоматизировать, просто чтобы автоматизировать

Подумайте, что вам нужно, и что нужно прямо сейчас. Если вы настроены на 80-100% автоматизацию во всех проектах просто потому, что "это круто и так хочет генеральный директор, или "это хорошо звучит на собраниях совета директоров", то вы попусту тратите время и деньги.

Покупать лидирующий по рынку, наилучший инструмент автоматизации

Найдите инструмент, который подходит под ваши задачи, и убедитесь, что он действительно делает то, что обещает. Не поддавайтесь на уговоры продавцов купить дорогостоящую программу, которая очень крута прямо сейчас в этом конкретном проекте или на этой конкретной платформе. И не заставляйте другие проекты использовать инструмент, если он им не нужен.

Думать в терминах "прошел" и "упал"

У вас будут упавшие кейсы. Это не значит, что там есть ошибка. Не воспринимайте упавший тест как сигнал о баге – вам нужно разобраться, ПОЧЕМУ тест упал. Также подумайте, действительно ли категории "прошел/упал" подходят для отчетности об автотестах? Возможно, стоит подумать о другой классификации, которая лучше опишет происходящее?

Запускать все подряд каждый божий раз

Подумайте о цели прогона ваших тестов. Если вам не нужно тестировать отдельную область – не делайте этого, тестируйте только ту функциональность, которая в этом нуждается. Прочее тестирование – это лишняя трата времени и сил, которая замусорит ваш отчет ненужными данными. Конечно, некоторые проверки могут гоняться постоянно, но убедитесь в том, что это оправданные меры.

Забывать тестировать собственные тесты

Привыкайте к идее тестировать свои тесты. Автоматизированный тест-сценарий не должен выпускаться в мир, пока вы не увидели, как он несколько раз упал. Запускайте тест в обстоятельствах, когда он безусловно упадет, чтобы учесть это, когда он будет выпущен в релиз.

Недооценивать усилия по поддержке автоматизированного набора тестов

Автоматизированный тест-сьют – не та штука, которую сделал и забыл, а она бегает себе там. Ваша система постоянно меняется, и тест-набор нужно обновлять и пополнять беспрестанно. Не сваливайте эту ответственность на единственного тех-тестировщика в вашей компании.

Нужно

Дробить тесты на независимые сценарии

Куда легче определить, где гнездятся проблемы и ошибки, если ваш тест-набор состоит из кратких, конкретных тест-сценариев. Не пытайтесь впихнуть все в один сценарий. Очень, ОЧЕНЬ трудно разобраться, что же пошло не так, если вам надо докопаться до всего на свете, проверяющегося в вашем тесте. Пусть тесты будут краткими и простыми.

Сделать автоматизацию задачей всей команды проекта

Почему бы не дать возможность всем, а не только тестировщикам, влиять на набор автотестов? Разработчики, менеджеры проекта, продакт-оунеры – всем им есть что сказать на предмет автоматизированного тестирования, и они могут принести ему пользу.

Донести информацию о результатах автоматизированного тестирования до всех – и подумать, кто получает эти результаты

Предоставьте разную информацию разным людям в проекте. Разработчику нужна специфическая информация о прогоне автотестов, и она безразлична менеджеру проекта. Опросите всех заинтересованных лиц, выясните, какая информация им требуется.

Начинать с простых вещей и пополнять тест-сьюты по ходу дела

Начните с того, что вам необходимо, и следуйте по воркфлоу проекта. Проекты постоянно меняются – не надо тратить время, силы и деньги на то, что не будет использовано или изменится в последний момент. Создавайте набор тестов по кусочкам, шаг за шагом.

Заставить ваш фреймворк работать на износ

Вы приобрели дорогую программу, настроили ее и потратили время на создание и обновление наборов тестов. Пользуйтесь этим! Создайте набор, который может прогоняться часто И при этом ценен для проекта! Набор автотестов, который не запускается – это пустая трата денег.

Учитывать проектные и организационные изменения

Найдите программу, которая способна расти вместе с вашими проектами и вашей организацией, и выясните, что вы можете – и не можете – с ней делать. Если она вам не подходит, отбросьте ее. Нет смысла тратить силы и время на неподходящие вам ресурсы.

Разгрузить ручных тестировщиков

Думайте о наборе автотестов как о помощи мануальным тестировщикам. Освободите их от нудных повторяющихся задач, пусть они делают то, в чем они звезды – тестируют, а не тупо следуют сценариям.

Сделать запуск тестом простым и быстрым

Настройка и старт набора автотестов должна быть простой задачей и давать мгновенную обратную связь. Если ваш тест-набор замедлен или очень сложен, люди просто не будут заморачиваться с запуском.

Постоянно обновлять тест-набор

Если меняется ваш код – меняются автотесты, и это ваше золотое правило. Оно верно для ВСЕХ изменений базы кода. Правки багов, внедрение фич – все это ведет к изменениям тест-набора.

И, напоследок (но не менее важное)…

Не надо слепо принимать на веру то, что говорят в интернете

ВЫ знаете .что вам нужно, и ВЫ решаете, применимы ли эти советы именно к вашим тестам.

Удачной автоматизации!

Обсудить в форуме