Codeception — фреймворк для тестирования с широкими возможностями

Codeception — фреймворк для тестирования с широкими возможностями

Сегодня на выбор QA-специалистам и разработчикам предлагаются различные инструменты тестирования web-приложений с тем или иным функционалом. Но среди всего разнообразия внимания заслуживает Codeception — универсальный PHP фреймворк для тестирования отдельных элементов приложений и автоматизированного комплексного тестирования. Фреймворк удобен для имитации поведения посетителя сайта путем симуляции поведенческих факторов и его взаимодействия с интерфейсом. Codeception разработан на основе движка хорошо известного фреймворка PHPUnit, так что разработчики без проблем могут портировать свои существующие модульные unit-тесты из PHPUnit в новый инструментарий.

В основе Codeception заложены также компоненты из Symfony2, позволяющие писать функциональные тесты (TestGuy) для выполнения в Symfony, Symfony2, Zend Framework, Goutte и Selenium. Благодаря компонентам из Mink, QA-специалист получает возможность писать и выполнять приемочные тесты (WebGuy).

Среди прочих полезных модулей имеются компоненты для тестирования REST API, хранилища данных (MySQL, PostgreSQL, MongoDB). Таким образом, Codeception дает возможность писать все виды тестов в одном стиле и быть уверенным в работоспособности кода.

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

Преимущество Codeception также в создании среды — подготовки базы данных посредством модуля Db и ее очистки между тестами. Использование KISS и DRY принципов позволит писать аккуратные, стабильные, гибкие и практичные в сопровождении тесты на платформе этого фреймворка. К тому же, обращение к приложению напрямую позволит существенно повысить скорость выполнения тестов.