Как можно и нельзя автоматизировать |
26.11.2018 12:30 |
Автор: Катрин Кавли (Katrine Kavli) Перевод: Ольга Алифанова О, благословенная страна тест-автоматизации, сберегающая столько денег, времени и сил! Мы беремся за автоматизацию, чтобы повысить эффективность и частоту проверок, однако большая часть усилий в области автотестов пропадает впустую. Это плохо, если учитывать, что правильно внедренные автотесты очень выгодны. В проекте по начислению пенсии мы внедряли решение по автоматическому приему, отказу или постановку в очередь на ручную обработку уведомлений о состоянии здоровья – в зависимости от четырех разных оценок. Пока оно внедрялось, я сделала автоматизированный набор тестов, управляемый через данные, проверяющий все возможные комбинации и диапазоны оценок. Финальный тест был запущен спустя месяц разработки и занял десять минут. Вообще-то пять, но менеджер проекта не верила своим ушам и заставила меня прогнать его повторно. Этот проект отлично подходил для автотестов, но не все проекты так же хороши. Я собрала ряд рекомендаций для тех, кто раздумывает над внедрением автотестов. НельзяАвтоматизировать все ручные тестыРучные тесты прекрасны – они находят проблемы, о которых вы даже не помышляли. Но ручной подход к тестированию не всегда можно напрямую перенести на автоматизированные проверки. Возможно, стоит создать новые сценарии специально для автоматизации. Делать автотесты задачей одного-единственного человекаКогда вы только начинаете, найм консультанта по автоматизации – хорошая мысль, однако убедитесь, что соответствующие знания доступны всем участникам проекта. В один прекрасный день консультант или ключевой исполнитель покинет вас, и разбираться с тест-набором придется всем остальным. Автоматизировать все на светеСценарий автоматизируется не просто так – на это есть причины, его автоматизация каким-то образом ценна для проекта. Начните с рутинных задач, которые все равно выполняются ежедневно – и вы сразу увидите первую, мгновенную выгоду от усилий по автоматизации. Автоматизировать, просто чтобы автоматизироватьПодумайте, что вам нужно, и что нужно прямо сейчас. Если вы настроены на 80-100% автоматизацию во всех проектах просто потому, что "это круто и так хочет генеральный директор, или "это хорошо звучит на собраниях совета директоров", то вы попусту тратите время и деньги. Покупать лидирующий по рынку, наилучший инструмент автоматизацииНайдите инструмент, который подходит под ваши задачи, и убедитесь, что он действительно делает то, что обещает. Не поддавайтесь на уговоры продавцов купить дорогостоящую программу, которая очень крута прямо сейчас в этом конкретном проекте или на этой конкретной платформе. И не заставляйте другие проекты использовать инструмент, если он им не нужен. Думать в терминах "прошел" и "упал"У вас будут упавшие кейсы. Это не значит, что там есть ошибка. Не воспринимайте упавший тест как сигнал о баге – вам нужно разобраться, ПОЧЕМУ тест упал. Также подумайте, действительно ли категории "прошел/упал" подходят для отчетности об автотестах? Возможно, стоит подумать о другой классификации, которая лучше опишет происходящее? Запускать все подряд каждый божий разПодумайте о цели прогона ваших тестов. Если вам не нужно тестировать отдельную область – не делайте этого, тестируйте только ту функциональность, которая в этом нуждается. Прочее тестирование – это лишняя трата времени и сил, которая замусорит ваш отчет ненужными данными. Конечно, некоторые проверки могут гоняться постоянно, но убедитесь в том, что это оправданные меры. Забывать тестировать собственные тестыПривыкайте к идее тестировать свои тесты. Автоматизированный тест-сценарий не должен выпускаться в мир, пока вы не увидели, как он несколько раз упал. Запускайте тест в обстоятельствах, когда он безусловно упадет, чтобы учесть это, когда он будет выпущен в релиз. Недооценивать усилия по поддержке автоматизированного набора тестовАвтоматизированный тест-сьют – не та штука, которую сделал и забыл, а она бегает себе там. Ваша система постоянно меняется, и тест-набор нужно обновлять и пополнять беспрестанно. Не сваливайте эту ответственность на единственного тех-тестировщика в вашей компании. НужноДробить тесты на независимые сценарииКуда легче определить, где гнездятся проблемы и ошибки, если ваш тест-набор состоит из кратких, конкретных тест-сценариев. Не пытайтесь впихнуть все в один сценарий. Очень, ОЧЕНЬ трудно разобраться, что же пошло не так, если вам надо докопаться до всего на свете, проверяющегося в вашем тесте. Пусть тесты будут краткими и простыми. Сделать автоматизацию задачей всей команды проектаПочему бы не дать возможность всем, а не только тестировщикам, влиять на набор автотестов? Разработчики, менеджеры проекта, продакт-оунеры – всем им есть что сказать на предмет автоматизированного тестирования, и они могут принести ему пользу. Донести информацию о результатах автоматизированного тестирования до всех – и подумать, кто получает эти результатыПредоставьте разную информацию разным людям в проекте. Разработчику нужна специфическая информация о прогоне автотестов, и она безразлична менеджеру проекта. Опросите всех заинтересованных лиц, выясните, какая информация им требуется. Начинать с простых вещей и пополнять тест-сьюты по ходу делаНачните с того, что вам необходимо, и следуйте по воркфлоу проекта. Проекты постоянно меняются – не надо тратить время, силы и деньги на то, что не будет использовано или изменится в последний момент. Создавайте набор тестов по кусочкам, шаг за шагом. Заставить ваш фреймворк работать на износВы приобрели дорогую программу, настроили ее и потратили время на создание и обновление наборов тестов. Пользуйтесь этим! Создайте набор, который может прогоняться часто И при этом ценен для проекта! Набор автотестов, который не запускается – это пустая трата денег. Учитывать проектные и организационные измененияНайдите программу, которая способна расти вместе с вашими проектами и вашей организацией, и выясните, что вы можете – и не можете – с ней делать. Если она вам не подходит, отбросьте ее. Нет смысла тратить силы и время на неподходящие вам ресурсы. Разгрузить ручных тестировщиковДумайте о наборе автотестов как о помощи мануальным тестировщикам. Освободите их от нудных повторяющихся задач, пусть они делают то, в чем они звезды – тестируют, а не тупо следуют сценариям. Сделать запуск тестом простым и быстрымНастройка и старт набора автотестов должна быть простой задачей и давать мгновенную обратную связь. Если ваш тест-набор замедлен или очень сложен, люди просто не будут заморачиваться с запуском. Постоянно обновлять тест-наборЕсли меняется ваш код – меняются автотесты, и это ваше золотое правило. Оно верно для ВСЕХ изменений базы кода. Правки багов, внедрение фич – все это ведет к изменениям тест-набора. И, напоследок (но не менее важное)…Не надо слепо принимать на веру то, что говорят в интернетеВЫ знаете .что вам нужно, и ВЫ решаете, применимы ли эти советы именно к вашим тестам. Удачной автоматизации! |