Архитектура автоматизации: API-тесты

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

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

Контекст:

  • Участники: Программисты/тестировщики.
  • Продукт: API тестируемого продукта должен быть предоставлен.
  • Цели: Поиск эффективного пути создания мощных автоматизированных тестов.

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

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

Атрибуты качества:

  • Сопровождение и поддержка: Высокая. API-функции более стабильны нежели пользовательский интерфейс.
  • Проверка: Средняя. Тесты пишутся на том же языке программирования и в той же среде, что и модульные/API-тесты, а это означает, что многие сотрудники смогут разобраться в коде.
  • Целостность и зависимость: Средняя. Заметьте, что тестирование реального графического интерфейса пользователя невозможно полностью автоматизировать. Какие-то тесты все равно придется провести вручную.
  • Возможность повторного использования: Низкая. 

Следующий шаг:
Можно воспользоваться другими техниками и расширить API тестами, например до использования ключевых слов-действий. Разработчики API тестов могут воспользоваться программированием на основании тестов. Как только API тесты созданы, то можно подумать надо использованием и добавлением проверок и диагностик. Если пользовательский интерфейс строится поверх API, то вы можете использовать технику "Ограниченного использования графического интерфейса"