Автоматизация тестирования является важной и не неотъемлемой частью разработки современного ПО, но без правильного подхода нередко случается, что написание автотестов занимает слишком много времени, а их поддержка может требовать больше затрат чем просто ручная регрессия. Почему же так происходит и как этого избежать? В этой презентации, базируясь на своем опыте работы во множестве проектов, я хочу рассказать об основных ошибках и проблемах, с которыми приходится сталкиваться автоматизаторам и что нужно сделать чтобы их избежать (на примере фреймворка для автоматизации JDI)
Приближается масштабная юбилейная 20-ая международная конференция для специалистов в области обеспечения качества - SQA Days, которая в этот раз пройдёт в Минске. В этом году мне удалось войти в Программный комитет конференции и принять участие в отборе докладов и подготовке докладчиков.
Как говорится в официальном пресс-релизе: “Доклады, представленные на конференции, прошли не просто серьезный, а можно сказать, суровый отбор.” т.е. большое количество выступлений пришлось отсеять или серьёзно переформатировать.
Одна из тем, на которую было подано целых четыре заявки можно собирательно назвать - “Как делать правильную автоматизацию”. Во многих из докладов рассказывалось про конкретный опыт, набитые шишки, сотни пройденных граблей! Но, как писали в советских методичках, закаленного инженера такие преграды не устрашат.
Чтобы не потерять полезный опыт и изложить сообществу практические советы коллег, было решено написать эту статью.
Нынче вместо нас потеют роботы – я имею в виду автоматизацию, но "роботы" куда круче звучат. Они запускают автоматизированные проверки, деплоят билды в прод, создают тестовые данные, подготавливают оборудование и окружения, и так далее, и тому подобное. Мы обожаем инструменты за ту пользу, которую большинство из них приносит в мир.
Однако поговорить я хочу об автоматизированных проверках. Они могут куда больше, нежели тупо сообщать "Пройдено/Не пройдено", если вы их как следует попросите. Я расскажу о четырех фокусах, которыми пользовался я, и о том, как они мне помогли.
Занимаетесь автоматизированным тестированием уже давно или только задумались над автоматизацией своего проекта? В любом случае вам будет интересно посмотреть видеозаписи следующих докладов, прозвучавших на конференции SQA Days 19:
Оценка методологии автоматизации - MBT, Дмитрий Химион, Performance Lab, Москва, Россия
Как мы приручили демона или процесс тестирования демонов в Badoo, Anton Volkov, Badoo, Москва, Россия
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery, Oleg Nenashev, CloudBees, Inc., Neuenburg, Швейцария
Игры с огнём: знакомимся с BDD и Cucumber фреймворком BDDfire, Vladislav Romanenko, Intellectsoft, Минск, Беларусь
Непонимание того, что автоматизация не в состоянии заменить тестирование – это одна из самых больших проблем индустрии тестирования на сегодняшний день. Майкл Болтон, Джеймс Бах и другие лидеры отрасли вложили много труда в развенчание этого мифа, но я все еще вижу, как он силен в ряде компаний. Ему подвержен не только менеджмент, разработчики и другие участники проектных команд, но и сами тестировщики/автоматизаторы в этих организациях.
Многие тестировщики считают, что они обязаны научиться автоматизировать, чтобы не потерять работу. Люди, считающие себя экспертами по тестированию, тоже верят в это и пропагандируют этот подход в обсуждениях в Интернете.
Я читал статью Майкла и Джеймса, которая объясняет, в чем разница между "тестированием" и "проверками", а также то, как школа контекстно-управляемого тестирования рассматривает автоматизацию. Мне нравится статья, и я пытался познакомить с ней компании, страдающие от вышеописанной проблемы – но эти проблемы никуда не делись. Когда я интересовался, прочитали ли люди статью, они обычно отвечали, что она "слишком длинная", или что им не нравится термин "проверка" (многие автоматизаторы рассматривают этот термин как уничижительный для своей работы – они относятся к нему примерно так же, как я к "ручному тестированию").
Как же помочь людям понять, о чем я говорю, как упростить мои объяснения?
Вопрос применения автоматизированного тестирования очень популярен среди специалистов нашей области. Когда необходимо автоматизировать и почему? Сегодняшняя подборка посвящена именно этой теме. Ниже вы найдете видеозаписи нескольких блиц докладов с конференции SQA Days 19, в которых участники делились опытом применения автоматизации на собственных проектах.
Ниже представлены записи следующих докладов:
Автоматизация тестирования ролей и привилегий, Serhii Ivashchenko, X1 Group, Харьков, Украина
GUI-автоматизация в Telerik Test Studio, Мария Афанасьева, T-Systems, Санкт-Петербург, Россия
Полуавтоматизация third-party API или избавляемся от лишних зависимостей, Елена Бычкова, Mail.ru Group, Москва, Россия
Тестирование в изоляции: Играем в драконий покер, Eugeny Govako, OOO "Deutsche Bank Technology Center", Санкт-Петербург, Россия
То, что в мире существует код – это здорово, потому что благодаря этому у тестировщиков есть работа. Несмотря на наши тесные взаимоотношения с ним в повседневном труде, многие тестировщики выстраивают их дисфункционально. Почему это происходит? Как это изменить?
Страх
Не только в тестировании, но и вне его код пугает многих людей. Вот выдержка из отчета Национального центра статистики образования:
…59% людей, начавших обучение на программе бакалавриата в области компьютерных и информационных наук в 2003-2004 годах или бросили обучение, не получив степень (31%), или переключились на другую область (28%) к 2009 году.
Навряд ли все они забросили образование, чтобы ринуться основывать Фейсбук или Майкрософт – а ведь они выбирали эту профессию сознательно. Программирование для многих выглядит как набор магических рун, которые, будучи разложенными в правильном порядке, заставляют швабры и ведра весело летать, как в Диснеевских мультиках. Конечно, здорово, когда швабры и ведра летают сами по себе, и это безусловно поможет в уборке, но если вы не контролируете магию, которая ими управляет – вы начинаете бояться ее.
У многих стекленеют глаза, когда речь заходит о коде – они думают, что ничего в нем не поймут в любом случае, поэтому сразу же отключаются от разговора, когда он еще толком и не начинался. Даже если им удается преодолеть свои первоначальные страхи и они начинают учиться программировать, за каждым углом их поджидают пробы, ошибки и разочарования, только усиливающие ужас.
"Делаешь что-то неоднократно – автоматизируй это" – довольно частая присказка. Тестирование ПО, при котором зачастую приходится многократно выполнять одинаковые действия – отличное поле деятельности для автоматизации. В современном мире разработки ПО, учитывая использование микросервисов и методологию непрерывной разработки, мы стремимся к быстрому, частому внедрению новой функциональности. Важность автоматизации в связи с этим растет, но связанные с ней проблемы все еще не решены. Вот мой список пяти самых распространенных ошибок, которые совершаются при автоматизации приемочных тестов.