Для проверки работоспособности информационных систем и их соответствия требованиям заказчика проводятся различные виды тестирования:
- новые разработки обязательно проходят стадию функционального тестирования;
- перед внедрением новых информационных систем проводится процедура приемочного тестирования по согласованной программе и методике испытаний;
- корректность доработок существующих продуктов регулярно проверяется с помощью регрессионного тестирования;
- стабильность и надежность программных систем обеспечивается нагрузочным тестированием;
- системное и интеграционное тестирование подтверждают совместимость и работоспособность различных программных комплексов.
При проведении тестирования ПО наши специалисты работают с различными технологиями и продуктами крупных вендоров, к числу которых относятся:
- SAP;
- IBM;
- Microsoft;
- 1C;
- многие другие международные и отечественные производители программного обеспечения.
Стратегия тестирования включает следующие этапы по всем группам требований, планируемым к тестированию:
- Определение требований к системе.
- Анализ функций и подсистем с целью определения слабых мест, требующих исчерпывающего тестирования, то есть участков функциональности, где проявление дефектов наиболее вероятно.
- Определение стратегии выбора входных данных, определение случаев использования и т.д.
- Определение потребности в автоматизации процесса тестирования.
- Определение метода тестирования - указывается общий способ тестирования (подход к тестированию), при необходимости дается обоснование специальных методов тестирования (общее описание организации процесса тестирования, описание жизненного цикла дефекта в терминах унифицированных этапов жизни и т.д.).
- Определение критериев успешности тестов.
План тестирования
- Тестируемые требования - приводится перечень функций и подсистем, подлежащих тестированию с указанием тестируемых требований
- Не тестируемые требования - описываются требования, для которых не планируется проведение тестирования.
- Требования к среде тестирования - указываются общие требования к установке тестового стенда, инструментальным средствам, среде тестирования, требования к разработке дополнительных программных инструментов и пр.
- Требуемые ресурсы - указываются общие потребности в персонале с учетом уровня квалификации, необходимость обучения для проведения тестирования, требования к времени тестирования.
- Этапы тестирования - содержит описание графика (расписание) тестовых циклов в связи с этапами разработки и указанием необходимых видов тестирования.
- Критерии завершения тестирования - указываются критерии завершения тестирования на различных этапах тестирования.
Лучшие практики
Для организации процессов тестирования мы прибегаем к накопленному опыты и лучшим практикам в сфере выполнения проектов по разработке и модернизации программного обеспечения:
- Управление процессом создания программных продуктов – мы используем MS TFS для фиксации и мониторинга выявленных проблем, взаимодействия с другими участниками процесса, ведения базы знаний и артефактов.
- Тестовое окружение - мы используем тестовое окружение максимально подобное продуктивной системе.
- Smoke Tests - несколько быстрых тестовых кейсов для определения степени готовности новых релизов к полноценному тестированию.
- Определение зависимостей при выборе области тестирования – в соответствии с функциональными связями тестируемых изменений доопределяем остальные области системы для тестирования.
- Позитивное тестирование – end-to-end тестирование системы путём проверки всех бизнес-кейсов с использованием только корректных данных и действий.
- Негативное тестирование – end-to-end тестирование системы с намеренным вводом некорректных данных и определения поведения системы в ответ на нелогичные действия пользователя в системе.
- Регрессионное тестирование – набор тестовых кейсов, предназначенных для проверки ранее протестированных функций системы.
- Юзабилити тестирование – проверка GUI системы на простоту использования, удобство визуального восприятия.
Методологии создания программного обеспечения
Поиск, изучение и использование лучших технологий направлены на постоянное улучшение качества тестируемого продукта и обеспечение наших заказчиков стабильным и функциональным программным обеспечением. В своей работе мы руководствуемся современными методологиями и подходами к созданию программных продуктов:
- Применение принципов: Agile, Devops.
- Технологии управления жизненным циклом приложений: MS ALM.
План автоматизации
Для повышения эффективности широко применяется автоматизация различных этапов тестирования программного обеспечения. При этом используются специализированные продукты HP, такие как Load Runner, Quick Test Performer, Quality Center и другие инструменты.
Выбор и определение целесообразности используемого при тестировании инструмента автоматизации зависит от условий конкретного проекта и объектов тестирования, базовыми мероприятиями являются:
- Анализ целесообразности автоматизации (нужна ли она)
- Выявление объектов автоматизации (что можно автоматизировать)
- Выбор инструмента автоматизации (Selenium WebDriver, Apache JMeter, HP Load Runner,и т.д.)
- Написание тестов на основную архитектуру (в дальнейшем эти тесты будут использоваться для приема релиза)
- Написание более детальных тестов: критическая функциональность, проверка регрессий, end-to-end сценарии
- Выполнение авто-тестов, создание отчетов с детализацией шагов и результатов
- Поддержка авто-тестов (актуализация при изменениях в коде)
- Масштабирование, расширение тестового покрытия.