Тестирование программных продуктов (QA) при разработке ПО с использованием методологии Agile

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

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

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

При реализации практических задач, Agile используется не как самостоятельная методология, а с использованием таких практических методологий как Scrum, Extreme Programming и других, которые строятся на принципах Agile. При применении гибких методологий, процесс разработки ПО в нашей компании разбивается на серию коротких циклов - итераций. Продолжительность каждой итерации примерно 2 - 4 недели. Команда разработчиков нашей компании тесно общается с заказчиком на протяжении всего жизненного цикла разработки программного продукта. В конце каждой итерации заказчик получает определенную часть общей функциональности, полностью работоспособной как отдельный продукт. При этом, на каждом этапе разработки продукта наши специалисты обеспечивают качество программного продукта.

Для обеспечения качества продукта в гибких условиях реализации проекта мы применяем непрерывное тестирование на всем цикле его разработки, используем такие инструменты как JMeter, Selenium, и решаем следующие задачи:

  • функциональное тестирование новой функциональности или внесенных изменений;
  • регрессионное тестирование общей функциональности системы;
  • нагрузочное тестирование
  • стресс-тестирование.

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

Преимущества применения автоматизации тестирования:

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

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

Что же касается техники тестирования, мы используем максимально удобную и полезную как при автоматизированном, так и при ручном выполнении тестов. Такой техникой является использование таблиц принятия решений, применяемых при проверке бизнес-правил системы или в случае зависимости поведения системы от комбинации входных данных. При использовании этой техники автоматизированные тесты строятся для всех комбинаций условий, при выполнении которых необходимо выполнить только одно действие. Если же действий несколько, такой тест выполняется в ручном режиме, ведь автоматизация такого случая требует больше навыков и времени. В результате заказчик получает удобный, качественный продукт, максимально отвечающий его потребностям.

Если вас интересует услуга тестирования программного обеспечения или выделенная команда тестировщиков, мы готовы ответить на ваши вопросы - связаться с нами.