Автоматизация — наиболее эффективный способ тестирования. В последние 10-15 лет такой подход широко применяется и попутно претерпевает изменения. Для автоматизации появилось множество новых инструментов. Также стали доступнее инструменты с открытым исходным кодом. Судя по всему, автоматизация — это надолго.

Что автоматизировать?

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

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

Что включает в себя автоматизация?

Автоматизация

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

QA-отдел

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

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

  • Анализ риска. Крайне важно снижать уровень риска во время тестирования.
  • Функциональные требования дают возможность проводить тестирование параллельно с написанием кода.
  • Проверки и инспекции. Повышают эффективность отладочных программ.
  • Мультиплатформенное тестирование. Предусматривает изменение кода для эффективной работы на нескольких серверных платформах.
  • Пробные релизы для ограниченного числа клиентов.
  • Автоматизированный тест. Оценка проводится с помощью автоматизированного тест-менеджмента.

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

Разработка тестов

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

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

Планирование теста

Планирование начинается с обсуждения. В последовательном порядке рассматриваются примерно такие вопросы:

  • Оценка рисков.
  • Определение требований.
  • Выбор приоритетных требований.
  • Оценка существующих ресурсов.
  • Составление плана тестирования.
  • Передача проектов команде тестировщиков.

Как осуществляется проектирование архитектуры ПО?

Проектирование архитектуры ПО

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

Прогон теста

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

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

Точность обнаружения дефектов зависит от того, насколько непосредственно тестируются программные функции. Условия эффективной оценки:

  1. Валидация данных
  2. Функциональность тестового кода
  3. Регрессионное тестирование

Верификация результатов

Результаты тестирования — это набор фактических данных, сопоставленных с ожидаемым результатом. Без установленного ориентира невозможно подтвердить точность результатов. Не будет критерия прохождения/непрохождения теста.

Отчетность

Составляется краткий отчет для руководства и клиентов, а также детальный отчет для отдела разработки.

Об обнаруженных дефектах делаются записи в обоих отчетах. Дефекты размещают в список по уровню опасности. Обычно по результатам тестирования принимают решение о выпуске программного продукта.

Фиксируются текущие результаты и прочие операции, которые отдельно отслеживают работу приложений.

Автоматизация

Автоматизация столь же важна, как и тестирование вручную. Планирование автоматизации включает следующее:

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

Из чего состоит жизненный цикл тестирования ПО?Жизненный цикл тестирования ПО

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

Факторы успеха

Инструментарий тестирования включает следующее:

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

То, без чего успех был бы неполным:

  • Автоматизированные инструменты и ресурсы, которые не зависят от набора ручных тестов.
  • Специалисты по автоматизации с необходимыми знаниями и навыками.
  • Сотрудничество между участниками команды и руководителями.

Факторы успеха:

  • Автоматизация — центральная часть процесса тестирования.
  • Фреймворк автоматизации тестирования, который разрабатывается отдельно от теста.
  • Фреймворк тестирования, который не зависит ни от какого приложения.

Стратегические цели:

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

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