Upload
borgeir-ingvarsson
View
6.831
Download
1
Embed Size (px)
DESCRIPTION
Tenets of Taoism in test automation.
Citation preview
ДАО И А
ВТОМАТИ
ЗАЦИЯ
ТЕСТИ
РОВАНИЯ
АВ
ТО
Р:
CA
PT A
I N C
HA
OS
УЧЕНИЕ ЛАО-ЦЗЫ
Основоположник Дао автоматизации, Лао-цзы, учил:
• Если можешь не автоматизировать – не автоматизируй.
• Хороший автотест – тот, который не нужно писать.
• Падает один тест – напрягается вся команда. Падает сто тестов – напрягается один автоматизатор.
• Одна фича покрыта пятью автотестами. Другая фича покрыта пятьюдесятью. Какая протестирована лучше? Никакая, но у второй солиднее тест-репорт.
• Есть красный автотест и есть зеленый автотест. Но лишь переход от одного к другому приносит и пользу, и достижение.
УЧЕНИЕ ВОРОБЬЯ ЛОХМАТИКА
А вот, что говорит по этому поводу другой известный апологет Дао автоматизации, воробей Лохматик:
• Чирик-чирик!
СТУПЕНИ ДАО АВТОМАТИЗАТОРА
Все мы были когда-то начинающими автоматизаторами.
(Кто не был – вон из аудитории! У нас тут своя
тусовка!)Следовательно, каждый из нас находится на одной из ступеней совершенствования себя как автоматизатора.
СТУПЕНИ ДАО АВТОМАТИЗАТОРА
1. «Я ничего не знаю об автоматизации. Это типа нажимаешь кнопку и уходишь заниматься своими делами, да?»
2. «Ух ты, скажите, и в магазине можно так же стенку приподнять? Сейчас заавтоматим что-нибудь эдакое!»
3. «Я охуенно крут. В автоматизации я как рыба в воде. Возможно автоматизировать все!»
4. «Автоматизация - дорогое удовольствие. Но в нашем распоряжении масса тулов и подходов. Побольше тестов, хороших и разных!»
5. «Это проще протестировать руками. И это тоже. А это проверять вообще смысла нет».
ПЕРВАЯ СТУПЕНЬ ДАО
Люди на этой ступени, как правило, не шибко соображают, что к чему. Подавляющее большинство остается здесь на всю жизнь.
• «Я вообще-то не технический человек. Программирование – это не мое».
• «Не доверяю я этим автоматизаторам с их скриптами. Мне проще пройти сценарий руками, чем разбираться в этих глупых тест-репортах».
• «Ой, а на чем это лучше заавтоматить, на WebDriver или на Java?»
ВТОРАЯ СТУПЕНЬ ДАО
На этой ступени часто встречаются бывшие ручные тестировщики, а также девелоперы, которых по тем или иным причинам подписали заниматься автоматизацией.
ВТОРАЯ СТУПЕНЬ ДАО
• «Ого, тут можно записывать свои действия, а потом их воспроизводить! Надо срочно добавить новый скилл в CV!»
• «Этот xpath на три строчки не может быть неверным, я его записал через Selenium IDE».
• «Ура, я выучил новый паттерн Singleton! Куда бы его теперь впихнуть?»
• «Да, я захардкодал эти урлы в тесте, но это временное решение. Да, этому коммиту уже скоро год, я просто был занят другими вещами».
• «Я девелопер со стажем! Я знаю NServiceBus и BizTalk как свои пять пальцев, что для меня эта ваша автоматизация! Ну и что с того, что здесь Ruby, а не C#? throw – оно и в Африке throw, не так ли?»
ЛИРИЧЕСКОЕ ОТСТУПЛЕНИЕ
Честно говоря, судя по описанию, на ступенях 1 и 2 находятся какие-то бестолковые личности.
Не знаю как вы, лично я начал сразу с третьей.
ТРЕТЬЯ СТУПЕНЬ ДАО
Ах, эти третьеступенчатые деньки.
• «Язык программирования? Инструмент автоматизации? Непринципиально, освоим!»
• «Автоматизировать UI, Web-сервисы, API? Да без проблем!»
• «DOM, Flex, нативные интерфейсы, Swing, Siebel, что-то еще? Какая к черту разница? прикрутим JavaScript, AutoIt, распознавание изображений!»
• «Я знаю кучу паттернов и намерен применить их все!»
• «Мои тесты будут работать на всех комбинациях браузеров, ОС и аппликейшн-серверов без каких-либо дополнительных телодвижений!»
ТРЕТЬЯ СТУПЕНЬ ДАО
• «Мы создадим фреймворк, который будет поддерживать data-driven, keyword-driven и behavior-driven подходы, причем одновременно!»
• «Мы принесем людям свет! Мы заколбасим универсальный проектонезависимый фреймворк, который потом будем матчить матчерами, декорировать декораторами и плагинить плагинами! И все это будет доступно каждому желающему!»
• «Мы обеспечим любую требуемую степень покрытия, которая во всяком случае будет не ниже 100%! Мы заавтоматим все: от нажатия на среднюю кнопку мыши до эмуляции отключения питания в серверной!»
ТРЕТЬЯ СТУПЕНЬ ДАО
Примерно так выглядит автоматизатор на третьей ступени Дао. Куча зерна символизирует написанные им автотесты.
ЧЕТВЕРТАЯ СТУПЕНЬ ДАО
А вот так выглядит он же, перейдя на четвертую ступень.
ЧЕТВЕРТАЯ СТУПЕНЬ ДАО
Это сложный период в становлении автоматизатора. Многие ломаются, кто-то уходит в запой.
• «Что-то больно до хера у нас получилось тестов, да и выполняются они несколько дней».
• «Господи, как разгрести все эти репорты?! А они все прибывают и прибывают!»
• «Все заавтоматить к концу спринта не успею, но это никого не парит. Фича в любом случае уйдет в релиз».
ЧЕТВЕРТАЯ СТУПЕНЬ ДАО
• «Разобьем-ка мы всю кучу тестов на кучки поменьше и будем гонять не все сразу, а поочередно. Количество автотестов – наша основная метрика, и избавляться от них мы не можем!»
• «Распараллелим нашу регрессию на 10 потоков, так что вместо 72 часов она будет работать всего 13. Это, между прочим, на 80% быстрее, чем прежде!»
• «Сейчас забацаем CI-сервер с фермой удаленных агентов и кастомной веб-мордой, и любой желающий сможет одним нажатием кнопки запустить билд автоматизации, а потом получить красивый репорт с графиками и пай-чартами».
ПЯТАЯ СТУПЕНЬ ДАО
Это апогей становления личности как автоматизатора. Такие люди – на вес золота. Цените их!
• «Да, это можно автоматизировать, но тест получится нестабильный и выполняться будет минут десять. Стоит ли игра свеч?»
• «Что проверяет этот тест? На это вообще были хоть какие-нибудь требования, или вы просто наворачиваете тест-кейсы ради количества?»
• «UI-тесты будут долгими. Backend-тесты будут непонятными для не-технарей. Выбирайте».
• «Слой абстракции этот не нужен тебе. Зачем паттерн здесь всобачил ты?»
• «На QTP пишите сами».
ПЯТАЯ СТУПЕНЬ ДАО
Как же выглядит этот автоматизатор, достигший пятой стадии просветления? А вот как:
ЧТО ДАЛЬШЕ?
Существует еще и шестая ступень: «Ищу работу».
Но ее мы здесь рассматривать
не будем.
ЛАО-ЦЗЫ УЧИТ
«Девелопер сражается с косяками требований, технологии и легаси-кода. Автоматизатор сражается с косяками требований, технологии, легаси-кода, тест-кейсов, серверного окружения, клиентского окружения и инструмента автоматизации. Пожалейте автоматизатора. Ему и так в жизни не повезло».
ВОПРОСЫ?