Архитектура автоматизации: Фреймворк (framework)

Проблема: Как можно создать много тестов без написания большого количества программного кода?

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

Контекст:

  • Сотрудники: Тестировщики/программисты; специалисты по инструментам для тестирования.
  • Продукт: GUI, API, CLI или модульные интерфейсы.
  • Цели:
    • автоматизировать тесты, которые понадобятся на протяжении всего жизненного цикла продукта;
    • автоматизировать тесты, которые спланированы заранее;
    • обеспечить максимальную гибкость подхода к автоматизации и его поддержку.

Стратегия тестирования:

  • Создание тестов: Тесты пишутся вручную, используя повторения действий через Сapture&Playback, если есть возможность. Тестируемый продукт уже должен быть рабочим и стабильным перед написанием тестов.
  • Выполнение тестов: Фреймворк автоматизации предоставляет среду для запуска написанных тестов.
  • Оценка результатов тестов:
    • Ожидаемые результаты тестов прописываются в коде теста во время его создания, или
    • Фреймворк может подхватить их для последующего сравнения во время первого запуска тестов и записать, как ожидаемый результат.

Атрибуты качества:
Сопровождение и поддержка:

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

Возможность пересмотра:

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

Целостность и зависимость:

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

Возможность повторного использования:

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

Следующий шаг:
Разработанные сценарии могут быть фундаментом для различных архитектур, включая скрипты на основе данных, таблицы на основе пользовательского интерфейса, ключевые слова-действия, программирование на основе тестов, API-тесты, ограниченное использование графического интерфейса, использование оракула, «Автоматизированная обезьянка».

Структуру разработки сценариев можно расширить, используя Window Maps, Task Libraries, Widget Support Libraries (Error recovery System). Использование стандартизированного скриптового языка может очень помочь в этом шаблоне.