Ответ
Тестирование требований (или их анализ) — это процесс ранней проверки спецификаций для выявления дефектов до начала реализации. Его цель — снизить риски и стоимость изменений.
Основные задачи:
- Выявление неоднозначностей и противоречий. Например, требование «интерфейс должен быть быстрым» субъективно и требует конкретики (например, «время отклика < 2 секунд»).
- Проверка полноты и тестируемости. Каждое требование должно быть сформулировано так, чтобы для него можно было создать проверяемый тест.
- Валидация выполнимости и соответствия бизнес-целям.
Пример:
- Исходное требование: «Система должна обрабатывать 1000 запросов в секунду».
- Проверка (уточнение):
- Какой тип запросов (GET, POST)?
- При каком размере полезной нагрузки?
- Какое приемлемое время ответа (перцентиль 95)?
- В каких условиях (характеристики сервера, сеть)?
Практический результат: Уточнённое, измеримое требование, на основе которого можно строить тесты производительности, предотвращая недопонимание между командами.
Ответ 18+ 🔞
А, ну вот, опять про эту вашу бумажную магию. Тестирование требований, говорите? Это ж когда вы, блядь, пытаетесь понять, что от вас хотят, пока ещё не начали писать код, который потом придётся выкидывать нахуй.
По сути, это чтобы не было как в том анекдоте: «Сделайте красиво!» — «А что такое красиво?» — «Ну я сам увижу!». Вот чтобы этого пиздеца не было.
Зачем это, спрашивается, нужно?
- Поймать за жопу все эти «быстро» и «удобно». Ну типа, «интерфейс должен быть быстрым». Быстрый — это как, ёпта? Через секунду открывается или через пять? Пока не напишешь «время отклика < 2 секунды», все будут понимать под «быстро» разную хуйню. А потом окажется, что заказчик имел в виду полсекунды, а ты сделал за полторы, и ты уже мудак.
- Проверить, можно ли это вообще протестировать. Требование должно быть таким, чтобы к нему можно было приложить измеритель. «Система должна быть надёжной» — это пизда, а не требование. А вот «доступность 99.9%» — это уже что-то. Можно проверить, блядь.
- Убедиться, что это вообще можно сделать и оно кому-то надо. А то бывает такое требование вылезет — технически ебёж на три года, а бизнес-ценность с гулькин хуй. Нафига?
Вот смотри, реальный пример, как это бывает:
- Что сказал заказчик (типа требование): «Система должна обрабатывать 1000 запросов в секунду».
- Что должен спросить адекватный человек (это и есть анализ):
- Обрабатывать — это что, блядь, делать? Просто получить и сказать «ок»? Или там тяжёлая логика, база данных, расчёты? Какие запросы-то, GET, POST?
- А какого хрена полезная нагрузка в этих запросах? 1 килобайт или 100 мегабайт картинок? Это же, сука, две большие разницы!
- И что значит «обрабатывать»? Она должна их просто принять в очередь, или дать полноценный ответ? И за какое время этот ответ должен прилететь? За 10 миллисекунд или за 2 секунды? 95-й перцентиль какой?
- И на каком, прости господи, железе это должно крутиться? На моём стареньком ноуте или на серваке с золотыми процессорами?
И что в итоге? Вместо расплывчатой хуйни получается чёткое, измеримое требование. Типа: «На стенде с конфигурацией N (CPU, RAM) система должна обрабатывать 1000 GET-запросов в секунду с размером полезной нагрузки до 10 КБ, при этом время ответа (p95) не должно превышать 50 мс».
Вот тогда и тестировщикам есть что тестировать, и разработчикам понятно, к чему стремиться, и заказчик не придёт потом с криком «это не то, что я хотел!». Всем пиздато, одним словом. Профилактика ебалы.