Автоматизация тестирования позволяет значительно ускорить выпуск программного продукта и сократить стоимость тестовой итерации.
В современном мире скорость выпуска программных продуктов на рынок является неотъемлемой частью конкурентной борьбы. Поэтому ИТ-менеджеры стремятся ограничить время тестирования – ведь тесты, особенно регрессионные, часто занимают много времени.
Перфоманс Лаб обладает значительным опытом автоматизации тестирования и предлагает следующие услуги.
Чем раньше начинается тестирование, тем быстрее продукт попадет в реальную эксплуатацию. Поэтому мы рекомендуем начинать запуски автоматизированных тестов на самых ранних стадиях разработки.
В ходе разработки программисты создают большое количество взаимосвязанного кода и, конечно, делают ошибки. Кто-то больше, кто-то меньше, но пока роботы не научились программировать, никто не застрахован от ошибок. К таким ошибкам относятся опечатки, копирование кода из других источников, программисты могут забыть переименовать какие-то переменные, перепутать названия классов, таблиц, файлов. Чем раньше эти дефекты будут устранены, тем быстрее вы сможете выпустить продукт. К сожалению, мы слишком часто находим эти дефекты уже на фазе функционального тестирования, когда для локализации проблемного кода программист тратит на порядок больше времени, чем в ходе разработки.
Юнит-тесты создаются для тестирования кода. Объектом тестирования являются классы и методы, разработанные программистом. Преимуществом юнит-тестов является высокая скорость исполнения – как правило весь набор тестов выполняется несколько секунд. Поэтому программисты могут выполнять их так часто, как требуется, например, перед каждым коммитом.
Специалисты Перфоманс Лаб владеют такими инструментами как JUnit, PHPUnit, TestNG, PyTest и участвуют в проектах разработки, создавая и поддерживая качественные юнит-тесты.
Поскольку юнит-тесты не дают разработчику информации о корректности работы бизнес-процессов, необходимо проводить внутреннее приемочное тестирование. Технологии автоматизации приемочных тестов для разработчиков активно развиваются. Одним из популярных современных подходов является Behavior-Driven Testing (BDD), когда тесты моделируют поведение пользователей продукта. Для автоматизации BDD-тестирования применяются такие инструменты как Cucumber, Calabash, Codeception, Behat и многие другие. Такие тесты выполняются дольше, чем юнит-тесты, но не критически долго. Поэтому их также можно выполнять перед коммитами, или во время ночных сборок, если применяется процесс непрерывной интеграции.
Перфоманс Лаб занимается созданием качественных приемочных тестов, которые позволят разработчикам, после любого изменения кода, убедиться в работоспособности ключевых бизнес-процессов программного продукта.
Наш опыт говорит о том, что автоматизация тестирования на этапе разработки существенно повышает качество продукта, снижает затраты на тестирование на более поздних фазах, а также способствует улучшению имиджа разработчиков.
После окончания разработки наступает фаза тестирования. Новую функциональность как правило тестируют вручную, а регрессионные тесты часто имеет смысл автоматизировать. Это позволяет в разы сократить время, увеличить тестовое покрытие, минимизировать влияние человеческого фактора на качество тестирования, а также для сократить стоимость тестовой итерации.
Перфоманс Лаб предлагает следующие услуги.
В таких проектах ключевое значение имеет правильный выбор инструмента. Инструмент должен соответствовать технологии, на которой построен графический интерфейс. Например, Selenium хорошо подходит для тестирования приложений с веб-интерфейсом, а Appium для мобильных приложений.
Специалисты по автоматизации тестирования Перфоманс Лаб постоянно обновляют пул используемых инструментов, а также разрабатывают собственные. Наиболее популярными инструментами являются TestComplete, Selenium, Soap UI, Appium, RFT, QTP/UFT, UI Automator.
В небольших проектах, достаточно выбрать подходящий инструмент, записать автоматизированные скрипты, подготовить тестовые данные и провести тестирование. Такой подход мы рекомендуем применять при небольшом количестве тестов – 10-30 скриптов. В крупных проектах по автоматизации следует задуматься о создании отказоустойчивого фреймворка.
В небольших проектах выполнение авто-тестов легко контролировать вручную. Если, например, произойдет сбой в работе скрипта из-за сетевой ошибки или непредвиденного поведения тестируемого приложения, то специалист это может заметить и перезапустить скрипт. В крупных проектах, где количество тестов измеряется сотнями или даже тысячами, ручной контроль практически невозможен. Возникают задачи параллельного запуска тестов, применения нескольких технологий и инструментов автоматизации одновременно, обработка исключительных ситуаций, расширенное протоколирование и множество других задач.
В таких ситуациях мы рекомендуем разработать отказоустойчивый фреймворк – систему управления автоматизированным тестированием. Разработка фреймворка требуют более серьезного отношения к автоматизации, в том числе наличие стратегии автоматизации тестирования, выбора наиболее подходящего подхода. Так, Model Based Framework подходит для тестирования высоко-критичных систем с повышенными требованиями к полноте тестового покрытия. Data-Driven и Object Based Framework – лучше подходят для традиционных задач с ограниченным набором тестов.
С 2008 года мы внедряем надежные решения для автоматизации тестирования, которые продолжают работать после изменений тестируемого ПО, не требуя значительных затрат на поддержку.
Выбирая нас, наши клиенты получают доступ к множеству готовых решений для автоматизации тестирования, например, IBM Jazz Adapter, AutoTest logger, MBT Framework, Android Tester, MD5-генератор.
Современные команды DevOps активно применяют автоматизированное тестирование в процессе Continuous Delivery. У нас тоже есть такой опыт, и мы предлагаем свои услуги по автоматизации:
Опытные ИТ-специалисты не понаслышке знают о том, что даже очень хорошо протестированный продукт после внедрения в продуктивную среду может оказаться неработоспособным. Поэтому, хорошей практикой является запуск имеющихся регрессионных тестов в промышленной среде. В наши проектах мы применяем метод CRUD для разделения авто-тестов на группы (CRUD – это аббревиатура – Create/Read/Update/Delete). В продуктивной среде чаще всего возможно выполнение только R-тестов, то есть тех, которые не изменяют никакие данные. Не смотря на это ограничение, иногда, автоматизированное тестирование в продуктивной среде является критически важным этапом выпуска продукта.
Узнайте как мы помогли банку из ТОП-10 автоматизировать тестирование