Автоматизация тестирования
Системный подход к автоматизации тестирования
Автоматизация тестирования является важнейшей и неотъемлемой частью непрерывной интеграции и позволяет стабилизировать работу вашего продукта, сэкономив время и затраты на проверку его качества. Это наиболее эффективное решение для выявления ошибок на всех стадиях жизненного цикла программного обеспечения (ПО) и организации регрессионного тестирования.
Мы создаём автоматизированные тесты с 2011 года. За это время успешно завершили более 50 проектов по автоматизации тестирования, приобрели огромный опыт в данной сфере и выработали комплексный подход к автотестированию.
Наша компания применяет CI/CD (Continuous Integration/Continuous Deployment) на всех проектах. Созданные нами автотесты с самого начала встраиваются в CI/CD процессы и сразу же приносят пользу, оправдывая ваши вложения в автотестирование. Мы обеспечиваем высокий уровень организации тестирования с помощью профессионального менеджмента и гарантируем применение лучших практик управления автотестами и качеством продукта. В своей работе используем весь доступный инструментарий и эффективные подходы, связанные с автоматизацией. К примеру, Test Driven Development, который часто используется на Agile проектах. Наши автоматизаторы — большие поклонники Data Driven Testing. За время использования этого подхода накопили серьёзную компетенцию, которая позволяет эффективно и быстро покрывать и стабилизировать важнейшие части продукта.
Сотрудничая с нами, вы можете быть уверены, что над вашим проектом будут работать опытные инженеры с навыками проектирования. Во время разработки автотестов они способны создать нужные ООП модели (к примеру, для реализации PageObject паттерна, создания REST API тестов) и расширяемую архитектуру, стремятся оформить свои наработки в повторно используемые компоненты. Специалисты JazzTeam решают задачи по автоматизации тестирования любой сложности: создают Unit-тесты Java-классов и фреймворков, интеграционные тесты архитектурных слоёв приложения, тестируют сложные асинхронные длительные процессы приложений SOA и пользовательский интерфейс веб-приложений.
Мы создаём расширяемые автотесты с чёткой структурой, которые легко развивать и поддерживать, сопровождаем их качественной документацией и организуем процесс тест-менеджмента. Настраиваем CI/CD, чтобы наши заказчики могли самостоятельно управлять запуском автотестов.
В своей работе мы придерживаемся следующих этапов автотестирования.
Этапы автоматизированного тестирования
Анализ — Тест-менеджмент — CI/CD — Синхронизация с мануальным тестированием — Написание автотестов — Написание UI-тестов — Прогон автотестов (по расписанию и по требованию) — Релиз-менеджмент — Создание документации
Наши услуги по автоматизации тестирования
Высокая экспертиза в автоматизации тестирования
10+ лет опыта в автоматизации тестирования
Более 10 лет профессионально занимаемся автоматизацией тестирования (с момента основания компании).
Участие в масштабных долговременных проектах
В нашем портфолио — кейсы с 5000 и 8000 автотестов (большая часть из них запускается каждую ночь на Jenkins), предоставление сервиса по автоматизации тестирования постоянным заказчикам из Европы, США и России длительностью 5-6 лет.
10 созданных фреймворков
Разработали около 10 фреймворков для автоматизации тестирования с различными специализированными отчётами. Наши фреймворки позволяют создавать гибкие, поддерживаемые и расширяемые автотесты, благодаря чему команда заказчика может легко развивать автотестирование самостоятельно.
Собственный продукт автоматизации тестирования XML2Selenium
На базе Selenium WebDriver разработали собственный продукт для автоматизации тестирования XML2Selenium. Это расширяемая платформа на основе технологии Java для создания и контроля автоматизированных тестов. С помощью данного фреймворка даже QA-инженеры без опыта программирования могут создавать UI-тесты. Продукт интегрирован с JUnit, работает поверх Selenium.
Серьёзная экспертиза в R&D
Работаем с Selenium WebDriver более 10 лет, знаем все его возможности и особенности, благодаря чему быстро пишем стабильные автотесты и решаем сложные задачи.
Собственная образовательная программа
Создали собственную образовательную систему по автоматизации тестирования, включая учебники и продуманные практические задания, а также процесс обучения, максимально приближенный к условиям реального проекта. Мы накапливаем опыт и делимся им, используем референс-проекты, которые транслируют инженерам лучшие практики. Наши автоматизаторы внедряют на проектах CI/CD с помощью различных инструментов (Jenkins, Teamcity).
Лучшие практики проектирования и разработки из мира Java
Фокусируясь на Java-технологии при создании бэкендов (server-side), мы используем экспертный опыт и в других направлениях. В автотестировании постоянно применяем лучшие практики проектирования и разработки: используем ООП, паттерны, UML-диаграммы, обеспечиваем высокий уровень повторного использования и поддерживаемости кода, применяем рефакторинг и code review. Работая над SOA-проектом со сложной архитектурой, мы создали фреймворк для интеграционного тестирования, который позволил указывать сценарий обработки сообщений на каждом из многочисленных компонентов системы и сравнивать результат с эталонным значением, применив тем самым Data Driven Testing.
Как мы работаем
В автоматизации тестирования мы фокусируемся на эффективной связке инженерного мышления при создании автотестов, экспертного уровня владения CI/CD и профессионального тест-менеджмента. Такой подход позволяет комплексно решать сложные задачи и делиться собственной культурой использования лучших практик в разработке и тестировании.
Далее поясним, почему каждый элемент связки важен и как используемые подходы и методики приносят пользу нашим клиентам.
Мы всегда интегрируем созданные автотесты в процессы CI/CD. Такой подход обеспечивает бесперебойную работу продукта и предоставляет чёткую систему контроля стабильности различных версий. CI/CD положительно сказывается на качестве и стабильности кода продукта. Внедрённая практика постоянного написания Unit-тестов разработчиками также влияет на качество архитектуры проекта. Всё это позволяет экономить средства на разработку и тестирование ПО.
Мы внедряем CI/CD итеративно и безболезненно, эффективно преодолеваем выученную беспомощность и сопротивление команд. Реализуем полный цикл Continuous Integration с помощью Jenkins/Hudson (и любых других CI/CD инструментов), автоматизируем сборку проектов с помощью Maven. При необходимости для автоматизации развёртывания применяем Docker и другие контейнерные технологии.
Unit-тестирование — общепринятый стандарт современного программирования, обеспечивающий полноценную реализацию Continuous Integration. Использование сочетания Unit, интеграционного и UI-тестирования позволяет создавать для клиентов стабильные, поддерживаемые, масштабируемые продукты. Для Unit-тестирования в нашей компании используются фреймворки JUnit/TestNG и другие средства, включая Mockito, EasyMock. Мы имеем опыт разнообразных кастомизаций JUnit/TestNG, включая разработку собственных JUnit раннеров.
Data Driven Testing — метод построения архитектуры автотестов, основанный на сравнении набора входных параметров с эталонным результатом или состоянием. Благодаря внедрению DDT единожды написанный тест повторно используется для разных входных данных. Важное преимущество хорошо спроектированного DDT — возможность ввода входных значений и эталонного результата в удобном виде для всех ролей на проекте: инженеров, мануальных тестировщиков и даже Product Owners. Таким образом, передавая задачу по увеличению набора данных, к примеру, мануальному тестировщику, удаётся значительно удешевить процесс тестирования продукта. Мы на профессиональном уровне используем DDT с момента создания компании, поэтому обладаем огромным опытом и знаниями в работе с ним (прочтите нашу статью о DDT и убедитесь в этом сами).
Предоставляя сервис автоматизации тестирования, мы применяем стандартизированные процессы и продумываем всю инфраструктуру для создания и внедрения автотестов. Менеджеры JazzTeam глубоко погружаются в жизненный цикл вашего продукта и выбирают оптимальную тестовую стратегию, управляют процессом создания автотестов, а также с необходимой регулярностью предоставляют все нужные отчёты по количеству и качеству покрытых тест-кейсов, исправленных багов. На этапе поддержки тест-кейсов мы продолжаем мониторинг запуска тестов на Jenkins-сервере и анализируем полученный результат, тесно работаем с командой разработчиков и менеджеров заказчика. Таким образом мы обеспечиваем комплексное решение вопросов, связанных с тест-менеджментом.
Мы применяем обширный стек технологий для автоматизации тестирования и сможем подобрать нужные вам инструменты. При тестировании изолированных методов часто используем Mock-объекты. Для тестирования веб-интерфейсов применяем Selenium/WebDriver, Concordium, Karma, Jasmine. Нагрузочное тестирование проводим с помощью JMeter. Ознакомьтесь с используемыми нами инструментами и технологиями.
Проблемы с качеством на проекте? Мы готовы помочь!
Наша компания применяет автоматизацию тестирования на всех выполняемых проектах без исключения, это часть нашей культуры и технологических ценностей. Рассмотрим ситуации, когда без автоматизации тестирования не обойтись:
- На вашем проекте присутствует большое количество интеграций и нужно постоянно проверять, что все части системы работают без сбоев, включая неподконтрольные вам.
- Вы планируете работу над масштабным долгосрочным проектом с большим количеством бизнес-функций и намерены снизить затраты на тестирование в долгосрочной перспективе.
- Вы нацелены делать релизы продукта как можно чаще. К примеру, раз в неделю.
- Проектом занимается большая команда разработчиков и вы желаете получить максимальную самостоятельность каждого из них.
- Вы никак не можете стабилизировать уровень качества вашего продукта другими способами — ручным тестированием, управленческими мерами.
Любой из перечисленных факторов должен заставить вас задуматься о необходимости автоматизации тестирования.
Часто задаваемые вопросы
Интересные кейсы по автоматизации тестирования
Предлагаем ознакомиться с кейсами реализованных нами проектов. Каждый из них позволит понять, как внедрение автоматизации тестирования улучшает продукт и решает разнообразные проблемы с его качеством.
Контакты
Мы всегда рады общению с Вами!
Пожалуйста, воспользуйтесь одной из приведённых ниже возможностей для связи:
Email: zmicer@jazzteam.org
Skype: dzmitry_harachka
Менеджер по привлечению талантов: talent@jazzteam.org
Специалист по продажам: sales@jazzteam.org
Телефон для связи: +375 333 225 187