Главная идея

Все функциональные тесты создаются в виде DirAAP.
Распространяются и обновляются, как git или как app соответствующей платформы.
Тесты ставятся рядом с рабочим продуктом.
Желательно, ставиться и обновляться той же схемой, что и основной продукт.
Колво объектов в тестовой БД должно быть в 10 раз больше от реальных условий.
Обязательно проводим тесты ускоренного или сдвигаемого времени, для отлова ошибок перехода через 00 часов или 1 число месяца или 1 ое число года.
Тестовые виртуалки есть у каждого разработчика.
Есть тестовая вирталка для тестировании ветки testing где есть все коммиты всех разработчиков.

TODO причесать.

- тесты делятся на группы тестов (test_se_auto, test_api, test_cabinet и прочие)
- тесты деляется на быстрые (fast) и медленные (slow); рекомендуется соответствующие тесты располагать в подкаталогах <группа_тестов>/fast/ и <группа_тестов>/slow/
- придерживаемся directory as service, максимально все, необходимое для работы теста, должно располагаться внутри каталога с группой тестов; ислючения: устанавливаемые приложения (jenkins, firefox, selenium) - ставятся прямо в систему и конфигурируются скриптами, возможно использование общих библиотек для разных групп тестов
- в каждоый группе тестов в корне должно быть 2 файла: slow_test.sh и fast_test.sh, которыми запускается группа тестов; должны быть bash-скриптами, по-умолчанию содержат 1 строку с запуском внутреннего фреймворка/обходчика тестов данной группы тестов

Правила тестов:
- если тесту нужно запустить скрипт изнутри чрута (например, asr_billing), то он копирует нужный скрипт внутрь перед запуском и запускает
- для быстрых тестов действует ограничение: максимум 1 минута на выполнение для одной группы тестов; чтобы 1 прогон занимал минут 5-10, а разработчик попил чай/проверил почту, но сильно не отвлекся

Апп:
- тесты поставляются в аппе /app/tests_$PROFILE
- собирается и ставится с makedistro и или updater
- является directory-app и одновременно чрутом(для селениум файрфокс и тп)
- конфигурируются в /app/test_CRB-Billing/cfg/config
- запускаются /app/test_CRB-Billing/service fast_test и /app/test/service slow_test
- в аппе содержатся тесты для всех продуктов, располагаются:
/app/test_CRB-Billing/test_group1/fast/
/app/test_CRB-Billing/test_group2/fast/
/app/test_CRB-Reductor/test_group1/fast/
/app/test_CRB-Reductor/test_group1/slow/
/app/test_CRB-Reductor/test_group2/fast/
- если для аппа нужно будет устанавливать приложения (jenkins, selenium), скрипт запуска тестов должен будет это делать сам, makedistro в апп приложения не устанавливает, в аппе только скрипты запуска тестов и сами тесты - весь енвайромент должен поставляться в чруте в готовом виде, на хост ничего не ставим

Главный обходчик:
- запускается из крона и или руками
- конфигурируется через config
- для запуска тестовых групп использует jenkins (как сделано в makedistro)
- несет ответственность за блокировку/разблокирочку обновления

Тестовая сборка, бранч test:
- в него мержатся все бранчи разработчиков
- на него настроена виртуалка с тестированием

/app/tests_CRB-Reductor/service
/app/tests_CRB-Reductor/src.list
 
/app/tests_CRB-Reductor/tests_reductor/.git
/app/tests_CRB-Reductor/tests_reductor/fast_test
/app/tests_CRB-Reductor/tests_reductor/fast/
/app/tests_CRB-Reductor/tests_reductor/slow_test
/app/tests_CRB-Reductor/tests_reductor/slow/
 
/app/tests_CRB-Reductor/tests_reductor_satellite/.git
/app/tests_CRB-Reductor/tests_reductor_satellite/slow_test
/app/tests_CRB-Reductor/tests_reductor_satellite/slow/
 
/app/tests_CRB-Reductor/tests_bgp_blackhole/.git
/app/tests_CRB-Reductor/tests_bgp_blackhole/fast/
/app/tests_CRB-Reductor/tests_bgp_blackhole/fast_test
/app/tests_CRB-Reductor/tests_bgp_blackhole/slow/
/app/tests_CRB-Reductor/tests_bgp_blackhole/slow_test

Дополнение1

/app/tests_crb-billing5 тоесть имя профиля /app/tests_$PROFILE
внутри есть полный енвайромент-чрут для запуска firefox selenium и тд
тесты в виде каталогов с .git подкаталогом чтоб можно было сразу разрабатывать и править
/app/tests_crb-billing5 является и чрутом и не чрутом, чтоб можно было от корня запускать
Отдельный профайл tests_crb-billing5, в идеале он имеет туже версию что и продукт, и лежит в апдейтерАХ на мейкдитрах(в будущем на update5) как продукт, и ставится с апдейтера тулзой можно в стиле rsync.

TODO обновить эту статью по данным совещания

http://wika.carbonsoft.ru/проект_reductor:тестирование:инструкции:autotests-and-ci

~~OWNERAPPROVE~~