26 августа прошёл первый Avito Automation meetup. Говорили о проблемах управления тестами, векторах развития систем автоматизации тестирования, эффективности каждого из тестов, инструментах для тестирования iOS-приложений и запуске тестов в Continuous Integration.
В рамках встречи прозвучали доклады:
1. Векторы развития систем автоматизации тестирования. Дмитрий Химион (Avito)
2. Прокачиваем WebDriverAgent, или Как тестировать iOS-приложения после ядерного взрыва. Алексей Махов (Avito)
3. Проблемы управления тестами, или Что мешает создавать дешевые и полезные тесты при наличии искреннего желания это делать. Федор Зволинский (Yandex)
4. Запускаем тесты в Continuous Integration. Сергей Пак (JetBrains)
5. Добиваемся эффективности каждого из 9000+ UI-тестов. Максим Сахаров (Tutu.ru)
Меня зовут Дмитрий Химион, я руковожу отделом обеспечения качества в Avito. Cегодня я хочу рассказать про автоматизацию тестирования в рамках работы с микросервисной архитектурой. Что мы можем предложить разработке для того, чтобы облегчить контроль качества? Читайте под катом.
Вместо вступления
“An implementation should be conservative in its sending behavior, and liberal in its receiving behavior”.
Jonathan Bruce Postel, computer scientist
Что такое микросервисная архитектура?
Чтобы мой рассказ был полным, начнем с основ. Если упростить, микросервисная архитектура — это способ организации сервера приложений. Как он работает? По сути, это просто ответ сервис-ориентированной архитектуры на появление такой практики, как DevOps. Если в SOA не регламентированы размеры сервисов и то, что именно они должны делать, то в рамках микросервисной архитектуры есть некоторые умозрительные ограничения. Микросервис — это некоторая сущность, которая заключает в себе одну небольшую функциональность, которой она заведует и предоставляет внешним сервисам какие-то данные.
C ростом команд неизбежно растет количество фич, а вместе с тем и тестовая модель и количество тест-кейсов, которые необходимо проверять при регрессионном тестировании. При этом количество команд растет не просто так, в нашем случае бизнесу хочется релизиться все чаще и чаще, не потеряв в качестве.
То, как мы в Альфа-Лаборатории решали проблему поиска баланса между скоростью, бюджетом и качеством, мы и рассмотрим сегодня на примере Альфа-Мобайла. Забегая вперед, ВНИМАНИЕ, СПОЙЛЕР!!! наше решение доступно на github: библиотека colibri-ui и шаблон colibri-ui-template для быстрого старта.
К сожалению, нет магической формулы для разработки высококачественного программного обеспечения, но очевидно, что тестирование улучшает его качество, а автоматизация тестирования улучшает качество самого тестирования.
В данной статье мы рассмотрим один из самых популярных фреймворков для автоматизации тестирования с использованием BDD-подхода – Cucumber. Также посмотрим, как он работает и какие средства предоставляет.
Первоначально Cucumber был разработан Ruby-сообществом, но со временем был адаптирован и для других популярных языков программирования. В данной статье рассмотрим работу Cucumber на языке Java.
Процесс тестирования можно построить разными способами. Один из эффективных методов автоматизации процесса тестирования - это непрерывное тестирование в рамках непрерывной поставки ПО. Непрерывное тестирование позволяет стабилизировать и улучшить качество кода. Т.к. любое приложение начинается с разработки, то необходимо внедрять полноценное тестирование в циклы разработки.
Основная идея непрерывной поставки в том, чтобы построить конвейер (Deployment Pipeline), позволяющий каждому изменению в системе контроля версий попасть в боевое окружение стандартным и полностью автоматизированным способом.
Python библиотека pywinauto — это open source проект по автоматизации десктопных GUI приложений на Windows. За последние два года в ней появились новые крупные фичи:
Поддержка технологии MS UI Automation. Интерфейс прежний, и теперь поддерживаются: WinForms, WPF, Qt5, Windows Store (UWP) и так далее — почти все, что есть на Windows.
Система бэкендов/плагинов (сейчас их двое под капотом: дефолтный "win32" и новый "uia"). Дальше плавно двигаемся в сторону кросс-платформенности.
Win32 хуки для мыши и клавиатуры (hot keys в духе pyHook).
Также сделаем небольшой обзор того, что есть в open source для десктопной автоматизации (без претензий на серьезное сравнение).
Эта статья — частично расшифровка доклада с конференции SQA Days 20 в Минске (видеозапись и слайды), частично русская версия Getting Started Guide для pywinauto.
Для профессионалов в области обеспечения качества настали дивные времена, когда у них есть масса возможностей развивать свои навыки и стать мастерами автоматизации.
"Неважно, как все это называть – DevOps или Agile, для тестировщиков все это означает, что тестирование должно быть автоматизируемым и воспроизводимым", говорит Уэйн Ариола, директор по маркетингу и специалист по тестированию в компании Tricentis, занимающейся тестированием. "Временные циклы тестирования существенно уменьшились. У нас больше нет такой роскоши, как тестировать несколько недель в конце цикла разработки. Тестирование осуществляется параллельно с итеративной разработкой ПО, и оценка рискованности релиз-кандидата должна производиться на лету".
Что же это значит для специалистов-профессионалов, стремящихся найти достойную и хорошо оплачиваемую работу в ближайшие годы? В отличие от ранее высказанных мнений, что автоматизация DevOps переведет тестирование на поле разработки и лишит тестировщиков работы, организациям все еще очень нужны профессионалы тестирования.
Сегодня проблема ручного выполнения процессов тестирования является одной из актуальных из-за обнаружения многих ошибок на этапе внедрения.
В данной публикации предлагается подход к автоматизации тестирования OpenStack, который поможет увеличению качества и скорости разработки программного обеспечения на базе OpenStack, а также уменьшению времени внедрения IT продуктов.
В начале описывается сам процесс автоматизации со схемами и диаграммами. После описания процесса рассмотрены инструменты, которые предназначены для автоматизации тестирования OpenStack.
Построение процесса автоматизации тестирования OpenStack
Данный подход построен на основе непрерывного тестирования в рамках непрерывной поставки ПО. Непрерывное тестирование позволяет стабилизировать и улучшить качество кода. Т.к. любое приложение начинается с разработки, то необходимо внедрять полноценное тестирование в циклы разработки.
В этой статье я хочу поделиться рядом принципов, которые помогут вам добиться от вашей автоматизации скорости зайца и надежности черепахи.
Начнем со скорости. Что мы можем сделать, чтобы автоматизация ускоряла вам работу?
Принципскорости 1 – избегайтепадений
Падения тестов замедляют вам работу. Они требуют дебага и понимания, почему тест упал. Конечно же, тесты должны падать, если они натолкнулись на баг, но ваш труд замедлит вообще любое падение тестов.
Что же делать, если у вас на руках чересчур часто падающий набор тестов?
Первый шаг – это определить, как собрать данные о падениях. Какие данные вы можете получить из системы запуска тестов? Можно ли выкопать что-то в git-логах, сообщающее вам, как часто вам нужно менять определенные тесты? Как только данные у вас на руках, легко определить, какие тесты создают проблемы, и отправить их на рефакторинг. К тому же, когда способ легко получать информацию найден, вы будете контролировать процесс и в дальнейшем. Всегда стремитесь к тому, чтобы ваши тесты приносили пользу.