Качественные требования к ПО | часть 3

Photo by Axel Holen on Unsplash

Как можно определить (и улучшить) качество требований?

В части 2 мы разобрались откуда берутся требования, узнали что они отличаются (в зависимости от их уровня), и разобрали типы требований.

Осталось понять – что же такое качественное требование, и какими свойствами оно должно обладать, чтоб всем было максимально удобно с ним работать.

Свойства качественных требований

Качественными можно называть требования, которые соответствует перечисленным ниже свойствам:

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

Писать качественные требования, будучи не знакомым с этими характеристиками— не возможно. Для того, чтоб было проще — можно создать чек-лист с перечнем всех свойств и перепроверять себя по нему.

По началу — будут ошибки и это нормально. Исправляя их вы будете учиться и каждый раз писать все лучше и лучше :)

Такой чек-лист поможет вам:

  • в ходе тестирования требований, если нужно будет это сделать
  • в работе с требованиями, в случае если вы придете на проект, где они уже были написаны и протестированы ранее

Это завершающая статья о требованиях, самая короткая, но как по мне — самая важная! Надеюсь после прочтения у всех появилось базовое понимание что такое требования, зачем они нужны и как и ними можно работать :)

Но не забывайте — это ведь только начало!

В интернете есть множество интересных статей, книг, приложений для работы с требованиями — не бойтесь изучать это тему :) Она очень интересная!

Удачи! :)

🔥 Интересуешься тестированием и хочешь получать актуальную информацию?

👉 Присоединяйся к 3,000+ тестировщикам в Телеграм!

Тебе не хватает практики по тестированию?
👉 Получи практическое задание!

Хочешь расти быстрей, как профессионал?
👉 Оставляй заявку на менторство!

--

--

QA Lead. Love Ukraine, my Family, Javascript and Quality Products.

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Andrii Ievtukhov

Andrii Ievtukhov

QA Lead. Love Ukraine, my Family, Javascript and Quality Products.