En

JazzTeam Software Development Company

Agile Java Development

Автоматизация тестирования

Системный подход к автоматизации тестирования

Автоматизация тестирования является важнейшей и неотъемлемой частью непрерывной интеграции и позволяет стабилизировать работу вашего продукта, сэкономив время и затраты на проверку его качества. Это наиболее эффективное решение для выявления ошибок на всех стадиях жизненного цикла программного обеспечения (ПО) и организации регрессионного тестирования.

Мы создаём автоматизированные тесты с 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-тестов — Прогон автотестов (по расписанию и по требованию) — Релиз-менеджмент — Создание документации

Наши услуги по автоматизации тестирования

Тестирование веб-приложений (веб-интерфейсов). Чаще всего мы используем стабильную, надёжную платформу Selenium/WebDriver, однако не ограничиваемся данным инструментом и способны использовать другие фреймворки: REST Assured, Appium, Cucumber, Robot Framework.

Unit-тестирование REST API, классов, компонентов, фреймворков, приложений и сервисов, написанных на Java, с использованием JUnit/TestNG (в том числе, с применением других Java технологий и библиотек). Комплексная работа над стабилизацией любых частей приложений. Использование Data Driven Testing для автоматизации «узких» и неустойчивых частей системы. Создание фреймворков и архитектур для обеспечения более расширяемого и устойчивого тестирования вашего продукта.

Интеграционное тестирование. В рамках услуги мы проводим аудит, консультирование и технологические исследования с целью выбора подходящих инструментов, создаём специализированные фреймворки. Таким образом, с помощью высокого уровня проектирования, мы эффективно решаем проблемы проектов заказчиков (к примеру, имеющих сложную SOA-архитектуру) и успешно проводим интеграционное тестирование масштабных продуктов с большим количеством подсистем. Услуга также включает составление тест-плана, создание тест-кейсов, выполнение тестов после интеграции модулей, выявление ошибок и повторное тестирование после их исправления (регрессионное тестирование). Мы обладаем серьёзным опытом и решаем сложные задачи в области интеграционного тестирования, применяя лучшие подходы и практики Java.

Создание инфраструктуры запуска тестов (CI/CD и DevOps), включая настройку конфигурации CI-серверов (обычно мы используем Jenkins) на вашем или наших серверах.

 

Тест-менеджмент: планирование (в том числе, выбор оптимальной инфраструктуры и фреймворков), согласование тестовой стратегии и тест-планов, управление разработкой тестов, ведение регрессионной стратегии, предоставление отчётов заказчикам, участие в управлении релизами продукта.

Консультирование по внедрению автоматизации тестирования на вашем проекте. На этапе планирования или внедрения автоматизации тестирования у заказчиков могут появляться сложности, вопросы, возникать дополнительные риски. Вне зависимости от вида оказываемых услуг в таких случаях мы всегда обсуждаем, решаем проблемы заказчиков и передаём свой опыт. Однако бывают ситуации, когда заказчикам требуется сервис профессионального консультирования. Консультации могут сочетаться с коучингом и нахождением специалистов нашей компании в офисе заказчика для более глубокого аудита и передачи опыта. В наиболее сложных ситуациях или по инициативе топ-менеджеров бизнеса заказчиков к решению сложных вопросов на проекте подключается CEO нашей компании Дмитрий Горячко (оказывающий также услуги IT-консультирования в качества независимого эксперта, zmicer.consulting).

Мы всегда подстраиваемся под нужды клиента и совместно вырабатываем оптимальный вариант сотрудничества:

  • Работа в рамках одной услуги (продукт нуждается только в автоматизации тестирования).
  • Оказываем несколько видов услуг (нужна автоматизация тестирования и внедрение CI/CD).
  • Предлагаем полный комплекс услуг (вы хотите заказать проект с нуля, включая консалтинг, менеджмент, разработку, тестирование, внедрение CI/CD).

*Если мы сотрудничаем в рамках разработки продукта, наш сервис по автоматизации тестирования включён в предоставляемую услугу.

Вам выгоднее заказать услугу автоматизации тестирования у нас, чем поручить задачу своей команде разработки. Автоматизация тестирования — сложный процесс, при отсутствии у специалистов необходимого опыта и квалификации он потребует внушительных временных и денежных затрат. К тому же, перекладывая нетипичную задачу на свою команду, вы не можете быть уверены, что получите гарантированно успешный результат. Немаловажным преимуществом передачи автоматизации тестирования сторонней команде является объективность и непредвзятая оценка качества вашего продукта.

Обращаясь к нам, вы получаете не только качественные автотесты, но и комплексное решение вопросов, связанных с тест-менеджментом, релиз-менеджментом и внедрением CI/CD.

Культура нашей компании развивает и укрепляет в каждом сотруднике проактивную позицию. Работая над проектами, мы предлагаем новые идеи и решения, которые приносят дополнительную ценность клиентам, а также консультируем по вызывающим затруднения вопросам. Результатом такого сотрудничества с нами становится грамотно выстроенный процесс автоматизации тестирования, а также предоставление необходимой информационной поддержки. Наши специалисты готовы стать менторами для вашей команды, чтобы помочь применить рекомендуемые практики.

Грамотный менеджмент — важная составляющая нашей услуги по автоматизации тестирования. Мы придерживаемся разработанной нами культуры управления проектами, используем стандартизированные и формализованные процессы. Наши менеджеры контролируют статус проекта, координируют действия команды, повышают производительность путём постоянной фасилитации, несут ответственность за все коммуникации и гармонично вливаются в экосистему вашей компании. Узнайте больше о нашем видении роли профессионального менеджера на вашем проекте.

В компании JazzTeam при оказании всех сервисов мы используем гибкие подходы: опираемся на философию Agile, выстраиваем процессы по методологии Scrum, используем в ежедневной работе практики и приёмы экстремального программирования (eXtreme Programming). Тем самым заказчику гарантируется прозрачность взаимодействия и возможность активного включения в процесс разработки продукта. Сотрудничая с нами, вы сами выбираете степень вовлечённости в проект: от получения развёрнутых статусов по проекту от наших менеджеров до участия в ежедневных стендапах со всей командой и ретроспективах в конце итерации.

Профессиональный подход к своей работе позволяет нам стабильно делать качественные поставки ПО, добиваться целей в заявленные сроки и поддерживать продуктивность команды на высоком уровне на протяжении всего проекта.

Высокая экспертиза в автоматизации тестирования

Как мы работаем

В автоматизации тестирования мы фокусируемся на эффективной связке инженерного мышления при создании автотестов, экспертного уровня владения CI/CD и профессионального тест-менеджмента. Такой подход позволяет комплексно решать сложные задачи и делиться собственной культурой использования лучших практик в разработке и тестировании.

Relationship_Diagramm

Диаграмма взаимосвязи CI/CD, DDT, тест-менеджмента

Далее поясним, почему каждый элемент связки важен и как используемые подходы и методики приносят пользу нашим клиентам.

Мы всегда интегрируем созданные автотесты в процессы 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. Ознакомьтесь с используемыми нами инструментами и технологиями.

Проблемы с качеством на проекте? Мы готовы помочь!

Наша компания применяет автоматизацию тестирования на всех выполняемых проектах без исключения, это часть нашей культуры и технологических ценностей. Рассмотрим ситуации, когда без автоматизации тестирования не обойтись:

  • На вашем проекте присутствует большое количество интеграций и нужно постоянно проверять, что все части системы работают без сбоев, включая неподконтрольные вам.
  • Вы планируете работу над масштабным долгосрочным проектом с большим количеством бизнес-функций и намерены снизить затраты на тестирование в долгосрочной перспективе.
  • Вы нацелены делать релизы продукта как можно чаще. К примеру, раз в неделю.
  • Проектом занимается большая команда разработчиков и вы желаете получить максимальную самостоятельность каждого из них.
  • Вы никак не можете стабилизировать уровень качества вашего продукта другими способами — ручным тестированием, управленческими мерами.

Любой из перечисленных факторов должен заставить вас задуматься о необходимости автоматизации тестирования.

Часто задаваемые вопросы

На проекте постоянно воспроизводятся одни и те же или похожие баги?
У вас проект с большим codebase, который нуждается в рефакторинге?
У вас развивающийся продукт с большим количеством багов?
Не знаете, какие тест-кейсы из ручного тестирования нужно автоматизировать?

Интересные кейсы по автоматизации тестирования

Предлагаем ознакомиться с кейсами реализованных нами проектов. Каждый из них позволит понять, как внедрение автоматизации тестирования улучшает продукт и решает разнообразные проблемы с его качеством.

Контакты

Мы всегда рады общению с Вами!

Пожалуйста, воспользуйтесь одной из приведённых ниже возможностей для связи:

Дмитрий Горячко, CEO & Founder
Email: zmicer@jazzteam.org
Skype: dzmitry_harachka

Менеджер по привлечению талантов: talent@jazzteam.org

Специалист по продажам: sales@jazzteam.org

Телефон для связи: +375 333 225 187

Мессенджеры для связи:

Свяжитесь с нами

    Имя *

    Название компании

    Email *

    Телефон

    Чем мы можем Вам помочь? *

    * Обязательные поля для заполнения