Качественные требования к ПО | часть 3
--
Как можно определить (и улучшить) качество требований?
В части 2 мы разобрались откуда берутся требования, узнали что они отличаются (в зависимости от их уровня), и разобрали типы требований.
Осталось понять – что же такое качественное требование, и какими свойствами оно должно обладать, чтоб всем было максимально удобно с ним работать.
Свойства качественных требований
Качественными можно называть требования, которые соответствует перечисленным ниже свойствам:
- Завершенность (completeness). Требование содержит полный набор информации для его однозначного понимания. В нем не должно встречаться «очевидных», «и так всем понятных», «само собой разумеющееся» фраз, «размытых» формулировок (и т.п., и т.д., и других…, ну и в том же духе).
- Атомарность (atomicity). Требование является атомарным, если его не можно разбить на отдельные требования, и оно описывает только одну функцию.
- Последовательность (consistency). Требование не должно противоречить самому себе (да-да, и так бывает) или другим требованиям.
- Недвусмысленность (clearness). Требование не должно содержать жаргона, неочевидных аббревиатур, расплывчатых формулировок. (Кстати, для улучшение этой характеристики есть хорошая практика – вести словарь проекта. Тогда понятий «клиент», «пользователь», «кастомер», «юзер» – пропадут, и появиться одно, однозначное – «студент», (если сервис предназначен для них) и все будут понимать друг друга с первого раза и 100% однозначно)
- Выполнимость (feasibility). Требование должно быть реализуемым в рамках бюджета и срока разработки проекта. (Построить самолет для 150 человек за 2 недели – не возможно)
- Обязательность (obligatoriness). Если требование не обязательное – его просто нужно выкинуть. НО если требование нужное, но не критичное – ему просто присваивают меньший приоритет.
- Актуальность (up-to-date). Если требование не актуально (например описанный функционал убрали с проекта) – его нужно удалить.
- Прослеживаемость (traceability). Бывает вертикальной – показывает связь с требованиями других уровней, или горизонтальной – показывает связь с тест-планом, тест-кейсами. Для обеспечения этой характеристики часто применяются специальные инструменты (requirements management tool) но даже без них у требования должны быть как минимум: уникальный номер, оглавление, валидные ссылки на другие требования / тест-кейсы.
- Модифицируемость (modifiability). Исправление / внесение правок в требования должно быть простой операцией. Если с этим возникают проблемы – значит требование изначально не соответствует описанным характеристикам, и это нужно исправлять.
- Важность (importance). Показывает на сколько требование важно для успеха проекта.
- Стабильность (stability). Описывает вероятность правок в будущем. (Лично – никогда не встречал. Интересно, кто в команде может адекватно оценить будущее, астрологи??)
- Срочность (priority). Показывает на сколько срочно должно быть реализовано требование (самое важное – делаем в первую очередь)
- Проверяемость (verifiability). Показывает, что можно создать тест-кейс, который однозначно покажет, что требование реализовано верно.
Писать качественные требования, будучи не знакомым с этими характеристиками— не возможно. Для того, чтоб было проще — можно создать чек-лист с перечнем всех свойств и перепроверять себя по нему.
По началу — будут ошибки и это нормально. Исправляя их вы будете учиться и каждый раз писать все лучше и лучше :)
Такой чек-лист поможет вам:
- в ходе тестирования требований, если нужно будет это сделать
- в работе с требованиями, в случае если вы придете на проект, где они уже были написаны и протестированы ранее
Это завершающая статья о требованиях, самая короткая, но как по мне — самая важная! Надеюсь после прочтения у всех появилось базовое понимание что такое требования, зачем они нужны и как и ними можно работать :)
Но не забывайте — это ведь только начало!
В интернете есть множество интересных статей, книг, приложений для работы с требованиями — не бойтесь изучать это тему :) Она очень интересная!
Удачи! :)
🔥 Интересуешься тестированием и хочешь получать актуальную информацию?
👉 Присоединяйся к 3,000+ тестировщикам в Телеграм!
Тебе не хватает практики по тестированию?
👉 Получи практическое задание!
Хочешь расти быстрей, как профессионал?
👉 Оставляй заявку на менторство!