Показаны сообщения с ярлыком functional testing. Показать все сообщения
Показаны сообщения с ярлыком functional testing. Показать все сообщения

понедельник, 22 июля 2013 г.

Facebook возобновил работу над php-webdriver

Недавно лазил по репозиторию facebook на гитхабе и обратил внимание на их старый репозиторий с php-webdriver.
Последнее обновление репозитория состоялось 4 дня назад, и это после двухлетнего перерыва.
Как написано в репозитории клиент для вебдрайвера был полностью переписан с нуля, и предоставляет api наиболее близкий к Java и С#.

К сожалению этого репозитория пока что нет в composer. Но надеюсь он скоро появится и можно будет смигрировать все тесты на него.

ссылки:
php-webdriver

другие версии php-webdriver
NearSoft PHPWebdriver
adam goucher

также другие имплементации можно найти в composer

четверг, 20 июня 2013 г.

Заметка о фикстурах: добро это или зло?

Что такое фикстуры?

Автоматические тесты необходимо выполнять неоднократно. Мы хотели бы выполнять
тесты в некоторых известных состояниях для гарантии повторяемости процесса
тестирования. Эти состояния называются фикстуры. Например, для тестирования
функции создания записи в приложении блога, каждый раз, когда мы выполняем
тесты, таблицы, хранящие соответствующие данные о записях (например, таблицы
Post, Comment), должны быть восстановлены к некоторому фиксированому
состоянию.

Данное определение взято из документации фреймворка Yii. Я с ним полностью согласен и считаю что от смены языка и смены фреймворка данное определение не изменится.

Добро?

Сначала кратко расскажу о плюсах использования фикстур:
  1. Всегда есть возможность откатить систему к идеальному состоянию
  2. Возможность хранить и использовать большой объем тестовых данных
  3. Ожидаемое поведение тестов на наборе данных
Казалось бы теперь можно отказаться от генерации в функциональных тестах нужных сущностей( т. е. например не создавать новый пост напрямую в браузере, а загрузить его в базу из фикстуры), база работает очень быстро.

Зло?

Теперь о минусах:

  1. Невозможно запускать тесты в параллельном режиме так как могут возникать локи в базе данных при накатывании фикстур
  2. При огромном количестве фикстур их поддержка может занимать продолжительное время
  3. При сильно связанной базе может иногда проблематично накатить ограниченный набор фикстур( приходится накатывать их все, а это занимает продолжительное время)

Выводы

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

Перед использованием фикстур в ваших авто-тестах стоит неоднократно подумать.