Автоматизация — наиболее эффективный способ тестирования. В последние 10-15 лет такой подход широко применяется и попутно претерпевает изменения. Для автоматизации появилось множество новых инструментов. Также стали доступнее инструменты с открытым исходным кодом. Судя по всему, автоматизация — это надолго.
Содержание
Что автоматизировать?
Лучшие инструменты автоматизации — те, которые можно приспособить к конкретным условиям. Ведь задача в том, чтобы автоматически поддерживать процедуры тестирования. Интеграционное, функциональное и системное тестирование можно проводить одновременно с автоматизацией определенных процессов.
Обычно QA-отделы разрабатывают среду тестирования. При системном тестировании автоматизируется то, что связано с безопасностью и настройками. С помощью автоматизации тестирования проверяют и максимальную нагрузку, а также проводят регрессионное тестирование.
Автоматизация
Планирование, разработка, сборка, анализ, верификация, валидация и отчеты — эти этапы предусматривают следующую работу: трекинг дефектов, управление программным продуктом и системными настройками, а также подсчет метрик ПО. Все это взаимосвязанные этапы единого процесса. В этих условиях может использоваться частичная автоматизация, в зависимости от способа управления тестированием.
QA-отдел
Автоматизированное управление тестами позволяет отследить конфигурации тестовых модулей и подсчитать метрики тестирования ПО. В свою очередь, тестировщики смогут больше сосредоточиться на оценке рисков, разработке проекта и планировании.
Эффективность командной работы зависит еще и от того, придерживаются ли сотрудники рекомендаций.
- Анализ риска. Крайне важно снижать уровень риска во время тестирования.
- Функциональные требования дают возможность проводить тестирование параллельно с написанием кода.
- Проверки и инспекции. Повышают эффективность отладочных программ.
- Мультиплатформенное тестирование. Предусматривает изменение кода для эффективной работы на нескольких серверных платформах.
- Пробные релизы для ограниченного числа клиентов.
- Автоматизированный тест. Оценка проводится с помощью автоматизированного тест-менеджмента.
Все эти рекомендации относятся к этапу тестирования. Если рационально использовать имеющиеся ресурсы и проводить стратегическое планирование, тогда будут соблюдены принципы лучших практик.
Разработка тестов
Разработка тестов и тестовых данных — самая трудоемкая часть. Важно правильно выбрать функциональные особенности ПО, которые в дальнейшем будут проверяться. На этапе разработки тестов составляют условия тестирования в зависимости от требований, разрабатывают эффективные модули тестирования и метрики, описывают ожидаемое поведение. Данные, относящиеся к автоматизации, необходимо сравнивать с требованиями к ручному тестированию, чтобы проверить надежность автоматизированных процессов.
С помощью автоматизированного фреймворка разрабатывают скрипты для автоматизации и в то же время отслеживают и сохраняют результаты тестирования и сопутствующую документацию.
Планирование теста
Планирование начинается с обсуждения. В последовательном порядке рассматриваются примерно такие вопросы:
- Оценка рисков.
- Определение требований.
- Выбор приоритетных требований.
- Оценка существующих ресурсов.
- Составление плана тестирования.
- Передача проектов команде тестировщиков.
Проектирование архитектуры ПО
План тестирования содержит ответы на такие вопросы: кто, что, когда, где, как и как долго применительно к тестированию. Задачи тестирования распределяются между соответствующими инструментами, выбираются тесты, которые стоит автоматизировать.
Прогон теста
Здесь все обычно начинается с разработки теста. Пишутся тестовые скрипты, затем автоматизация их выполняет. Тесты составляют параллельно с разработкой ПО — так удобнее отслеживать процесс в целом.
Насколько тестирование должно быть ручным, автоматизированным или комбинированным зависит от трех вещей: доступные ресурсы, цели компании и квалификация тестировщиков.
Точность обнаружения дефектов зависит от того, насколько непосредственно тестируются программные функции. Условия эффективной оценки:
- Валидация данных
- Функциональность тестового кода
- Регрессионное тестирование
Верификация результатов
Результаты тестирования — это набор фактических данных, сопоставленных с ожидаемым результатом. Без установленного ориентира невозможно подтвердить точность результатов. Не будет критерия прохождения/непрохождения теста.
Отчетность
Составляется краткий отчет для руководства и клиентов, а также детальный отчет для отдела разработки.
Об обнаруженных дефектах делаются записи в обоих отчетах. Дефекты размещают в список по уровню опасности. Обычно по результатам тестирования принимают решение о выпуске программного продукта.
Фиксируются текущие результаты и прочие операции, которые отдельно отслеживают работу приложений.
Автоматизация
Автоматизация столь же важна, как и тестирование вручную. Планирование автоматизации включает следующее:
- Отслеживание и анализ покрытия кода, чтобы определить, какие области больше подвержены риску.
- Последовательные обновления, чтобы программный код не пострадал от дефектов.
- Непрерывная интеграция для быстрого поиска и устранения новых багов.
- Возможность запускать небольшие части тестового комплекса, чтобы сразу же предоставить результат разработчикам.
- Интегрированный пакет инструментов автоматизации, который бы могли использовать сотрудники, которые занимаются техническими и другими вопросами.
- Скрипты для автоматизации тестирования, которые можно использовать повторно для следующих операций:
- Дымовое тестирование.
- Организация теста.
- Надежность ПО и систем.
- Совместимость ПО и систем.
- Проверка свойств объекта.
- Проверка функциональности ПО и системы.
- Проверка производительности системы.
Жизненный цикл тестирования ПО
Все инструменты полностью интегрируются в жизненный цикл теста. Управление требованиями, управление эффективностью, прогон скриптов, управление дефектами — все это удобнее контролировать с помощью соответствующего инструмента и дополнений.
Факторы успеха
Инструментарий тестирования включает следующее:
- Инструмент фиксации дефектов.
- Компонент управления тестированиями.
- Инструмент управления конфигурацией.
- Интеграция с настольными инструментами.
- Тестирование того, что не зависит от разработки.
- Отчеты и записи
То, без чего успех был бы неполным:
- Автоматизированные инструменты и ресурсы, которые не зависят от набора ручных тестов.
- Специалисты по автоматизации с необходимыми знаниями и навыками.
- Сотрудничество между участниками команды и руководителями.
Факторы успеха:
- Автоматизация — центральная часть процесса тестирования.
- Фреймворк автоматизации тестирования, который разрабатывается отдельно от теста.
- Фреймворк тестирования, который не зависит ни от какого приложения.
Стратегические цели:
- Разработка стратегии для автоматизации и ручного тестирования.
- Составление теста и его реализация проводятся отдельно, это позволяет одновременно разрабатывать и тесты, и скрипты.
- Составление тест-кейсов .
- Разработка автоматизации регрессионного тестирования.
Сфера разработки приложений развивается очень быстро, появляются всевозможные новые подходы. Но вот тестирование (как отдельная часть процесса создания ПО) в части инноваций несколько отстает от разработки. По этой причине QA-отделы стремятся автоматизировать как можно больше процессов. Отсюда и высокий спрос на инженеров с соответствующими навыками. Преимущество такого подхода в том, что автоматизированные скрипты и полученные результаты более точны, они доступны для повторного использования и других задач.