В Компания в которых я работал никогда не сталкивался с тестированием.
Как я понял что это незаменимая вещь для больших проектов с непрерывной интеграцией.
Описание проекта:
1.Контент в виде огромного дерева, каждый узел контента переведен на несколько языков
2.Много различных форм которые отправляют емейлы с некой присоединенной инфой в зависимости от страницы с которой была отправка.
3.Регистрация пользователя, редактирование профиля и видимость дополнительных плюшек сайта если залогинен
4.импорт продуктов. Админ скармливает xml и на сайт импортируется огромное число продуктов некторорые из которых иногда теряются либо теряется пару атрибутов продукта.
Как увеличить качество этого дела и сократить время обнаружения багов?
Мои мысли:
1. Выборка из бд нескольких случайных узлов, открытие их браузером и проверка на 404
2.как заполнить и отправить форму понятно а как проверить что пришло то что надо ?
3. Заполнение формы регистрации. Логин. Проба редактирования профиля. Дальше что? Делать запрос в бд и смотреть коректность изменений?
4. После импорта все продукты проверить не реально. Можно лишь проверить их количество в бд и сумму атрибутов. Дальше можно выборочно открыть несколько страниц с продуктами и проверить вывод основных полей и отсутствие картинок 404.
Поправьте меня
Вообще абстрактно когда я сейчас это пишу возникают сомнения относительно профита в отношении первых 3х пунктов. Ведь в основном получается что программист сделав функционал и проверив его, через некоторое время получает баг, что если поставить гдето комбинацию определенных символов или сделать какуюто странную последовательность действий, то чтото работает не правильно.
Т.е. если он напишет тесты для этого, то с большой вероятностью он покроет нормальное поведение пользователя и снова получит баг возникающий при не тривиальном поведении которое невозможно предугадать
Чтоб сократить время обнаружения бага у тебя тесты должны быть на весь функционал, что у тебя написан. Те 90%+ unit
Чтоб проверить, как все компоненты взаимодействуют тебе нужно написать функциональные тесты - их можно писать в таком стиле как в "Мои мысли", но лучше описывать типичное поведение условного пользователя
- зашел на сайт
- клинул
- получил