Файл: Обеспечения Базовый курс (3е издание) Версия книги 2 от 17. 04. 2023.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 870
Скачиваний: 31
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Свойства качественных требований
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 48/301
• Требованию выставлены неверные значения приоритета по критериям важ- ности и/или срочности.
• Требование устарело, но не было переработано или удалено.
Способы обнаружения проблем
Способы устранения проблем
Постоянный (периодический) пере- смотр требований (желательно – с участием заказчика) позволяет за- метить фрагменты, потерявшие ак- туальность или ставшие низкоприо- ритетными.
Переработка требований (с устране- нием фрагментов, потерявших акту- альность) и переработка фрагмен- тов, у которых изменился приоритет
(часто изменение приоритета ведёт и к изменению формулировки требо- вания).
Прослеживаемость (traceability
93
,
94
). Прослеживаемость бывает вертикаль- ной (vertical traceability
95
) и горизонтальной (horizontal traceability
96
). Вертикальная позволяет соотносить между собой требования на различных уровнях требований, горизонтальная позволяет соотносить требование с тест-планом, тест-кейсами, ар- хитектурными решениями и т.д.
Для обеспечения прослеживаемости часто используются специальные ин- струменты по управлению требованиями (requirements management tool
97
) и/или матрицы прослеживаемости (traceability matrix
98
).
Типичные проблемы с прослеживаемостью:
• Требования не пронумерованы, не структурированы, не имеют оглавления, не имеют работающих перекрёстных ссылок.
• При разработке требований не были использованы инструменты и техники управления требованиями.
• Набор требований неполный, носит обрывочный характер с явными «пробе- лами».
Способы обнаружения проблем
Способы устранения проблем
Нарушения прослеживаемости ста- новятся заметны в процессе работы с требованиями, как только у нас возникают остающиеся без ответа вопросы вида «откуда взялось это требование?», «где описаны сопут- ствующие (связанные) требова- ния?», «на что это влияет?».
Переработка требований.
Воз- можно, придётся даже менять струк- туру набора требований, но всё точно начнётся с расстановки мно- жества перекрёстных ссылок, позво- ляющих осуществлять быструю и прозрачную навигацию по набору требований.
93
Traceability. The ability to identify related items in documentation and software, such as requirements with associated tests.
[ISTQB Glossary]
94
A traceable requirement can be linked both backward to its origin and forward to derived requirements, design elements, code that implements it, and tests that verify its implementation. [
«Software Requirements (3rd edition)», Karl Wiegers and Joy Beatty]
95
Vertical traceability. The tracing of requirements through the layers of development documentation to components. [ISTQB Glos- sary]
96
Horizontal traceability. The tracing of requirements for a test level through the layers of test documentation (e.g. test plan, test design specification, test case specification and test procedure specification or test script). [ISTQB Glossary]
97
Requirements management tool. A tool that supports the recording of requirements, requirements attributes (e.g. priority, knowledge responsible) and annotation, and facilitates traceability through layers of requirements and requirements change management. Some requirements management tools also provide facilities for static analysis, such as consistency checking and violations to predefined requirements rules. [ISTQB Glossary]
98
Traceability matrix. A two-dimensional table, which correlates two entities (e.g., requirements and test cases). The table allows tracing back and forth the links of one entity to the other, thus enabling the determination of coverage achieved and the assess- ment of impact of proposed changes. [ISTQB Glossary]
Свойства качественных требований
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 49/301
Модифицируемость (modifiability
99
). Это свойство характеризует простоту внесения изменений в отдельные требования и в набор требований. Можно гово- рить о наличии модифицируемости в том случае, если при доработке требований искомую информацию легко найти, а её изменение не приводит к нарушению иных описанных в этом перечне свойств.
Типичные проблемы с модифицируемостью:
• Требования неатомарны (см. «атомарность») и непрослеживаемы (см. «про- слеживаемость»), а потому их изменение с высокой вероятностью порождает противоречивость (см. «непротиворечивость»).
• Требования изначально противоречивы (см. «непротиворечивость»). В такой ситуации внесение изменений (не связанных с устранением противоречиво- сти) только усугубляет ситуацию, увеличивая противоречивость и снижая прослеживаемость.
• Требования представлены в неудобной для обработки форме (например, не использованы инструменты управления требованиями, и в итоге команде приходится работать с десятками огромных текстовых документов).
Способы обнаружения проблем
Способы устранения проблем
Если при внесении изменений в набор требований, мы сталкиваемся с проблемами, характерными для ситуации потери прослеживаемо- сти, значит – мы обнаружили про- блему с модифицируемостью.
Также модифицируемость ухудша- ется при наличии практически лю- бой из рассмотренных в данном раз- деле проблем с требованиями.
Переработка требований с перво- степенной целью повысить их про- слеживаемость.
Параллельно можно устранять иные обнаружен- ные проблемы.
Проранжированность по важности, стабильности, срочности (ranked
100
for importance, stability, priority
). Важность характеризует зависимость успеха про- екта от успеха реализации требования. Стабильность характеризует вероятность того, что в обозримом будущем в требование не будет внесено никаких изменений.
Срочность определяет распределение во времени усилий проектной команды по реализации того или иного требования.
Типичные проблемы с проранжированностью состоят в её отсутствии или не- верной реализации и приводят к следующим последствиям.
• Проблемы с проранжированностью по важности повышают риск неверного распределения усилий проектной команды, направления усилий на второ- степенные задачи и конечного провала проекта из-за неспособности про- дукта выполнять ключевые задачи с соблюдением ключевых условий.
• Проблемы с проранжированностью по стабильности повышают риск выпол- нения бессмысленной работы по совершенствованию, реализации и тести- рованию требований, которые в самое ближайшее время могут претерпеть кардинальные изменения (вплоть до полной утраты актуальности).
99
To facilitate modifiability, avoid stating requirements redundantly. Repeating a requirement in multiple places where it logically belongs makes the document easier to read but harder to maintain. The multiple instances of the requirement all have to be modified at the same time to avoid generating inconsistencies. Cross-reference related items in the SRS to help keep them synchronized when making changes. [
«Software Requirements (3rd edition)», Karl Wiegers and Joy Beatty]
100
Prioritize business requirements according to which are most important to achieving the desired value. Assign an implementation priority to each functional requirement, user requirement, use case flow, or feature to indicate how essential it is to a particular product release. [
«Software Requirements (3rd edition)», Karl Wiegers and Joy Beatty]
Свойства качественных требований
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 50/301
• Проблемы с проранжированностью по срочности повышают риск нарушения желаемой заказчиком последовательности реализации функциональности и ввода этой функциональности в эксплуатацию.
Способы обнаружения проблем
Способы устранения проблем
Как и в случае с актуальностью и обяза- тельностью требований, здесь лучшим способом обнаружения недоработок яв- ляется постоянный (периодический) пе- ресмотр требований (желательно – с участием заказчика), в процессе кото- рого можно обнаружить неверные значе- ния показателей срочности, важности и стабильности обсуждаемых требований.
Прямо в процессе обсуждения требований с заказчиком (во время пересмотра требований) стоит вносить правки в значе- ния показателей срочности, важности и стабильности об- суждаемых требований.
1 2 3 4 5 6 7 8 9 ... 38
Корректность (correctness
101
) и проверяемость (verifiability
102
). Фактически эти свойства вытекают из соблюдения всех вышеперечисленных (или можно ска- зать, что они не выполняются, если нарушено хотя бы одно из вышеперечислен- ных). В дополнение можно отметить, что проверяемость подразумевает возмож- ность создания объективного тест-кейса (тест-кейсов), однозначно показывающего, что требование реализовано верно и поведение приложения в точности соответ- ствует требованию.
К типичным проблемам с корректностью также можно отнести:
• опечатки (особенно опасны опечатки в аббревиатурах, превращающие одну осмысленную аббревиатуру в другую также осмысленную, но не имеющую отношения к некоему контексту; такие опечатки крайне сложно заметить);
• наличие неаргументированных требований к дизайну и архитектуре;
• плохое оформление текста и сопутствующей графической информации, грамматические, пунктуационные и иные ошибки в тексте;
• неверный уровень детализации (например, слишком глубокая детализация требования на уровне бизнес-требований или недостаточная детализация на уровне требований к продукту);
• требования к пользователю, а не к приложению (например: «пользователь должен быть в состоянии отправить сообщение» — увы, мы не можем влиять на состояние пользователя).
Способы обнаружения проблем
Способы устранения проблем
Поскольку здесь мы имеем дело с
«интегральной» проблемой, обнару- живается она с использованием ра- нее описанных способов. Отдель- ных уникальных методик здесь нет.
Внесение в требования необходи- мых изменений – от элементарной правки обнаруженной опечатки, до глобальной переработки всего набора требований.
Хорошее краткое руководство по написанию качественных требований представлено в статье «Writing Good Requirements — The Big Ten
Rules
»
103 101
Each requirement must accurately describe a capability that will meet some stakeholder’s need and must clearly describe the functionality to be built. [
«Software Requirements (3rd edition)», Karl Wiegers and Joy Beatty]
102
If a requirement isn’t verifiable, deciding whether it was correctly implemented becomes a matter of opinion, not objective analysis.
Requirements that are incomplete, inconsistent, infeasible, or ambiguous are also unverifiable. [
«Software Requirements (3rd edition)
», Karl Wiegers and Joy Beatty]
103
«Writing Good Requirements — The Big Ten Rules», Tyner Blain [
http://tynerblain.com/blog/2006/05/25/writing-good-require- ments-the-big-ten-rules/
]
Техники тестирования требований
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 51/301
2.2.6.
Техники тестирования требований
Тестирование документации и требований относится к разряду нефункцио- нального тестирования (non-functional testing
104
). Основные техники такого тестиро- вания в контексте требований таковы.
Взаимный просмотр (peer review
105
). Взаимный просмотр («рецензирова- ние») является одной из наиболее активно используемых техник тестирования тре- бований и может быть представлен в одной из трёх следующих форм (по мере нарастания его сложности и цены):
• Беглый просмотр (walkthrough
106
) может выражаться как в показе автором своей работы коллегам с целью создания общего понимания и получения обратной связи, так и в простом обмене результатами работы между двумя и более авторами с тем, чтобы коллега высказал свои вопросы и замечания.
Это самый быстрый, дешёвый и часто используемый вид просмотра.
Для запоминания: аналог беглого просмотра — это ситуация, когда вы в школе с одноклассниками проверяли перед сдачей сочинения друг друга, чтобы найти описки и ошибки.
• Технический просмотр (technical review
107
) выполняется группой специали- стов. В идеальной ситуации каждый специалист должен представлять свою область знаний. Тестируемый продукт не может считаться достаточно каче- ственным, пока хотя бы у одного просматривающего остаются замечания.
Для запоминания: аналог технического просмотра — это ситуация, когда не- кий договор визирует юридический отдел, бухгалтерия и т.д.
• Формальная инспекция (inspection
108
) представляет собой структурирован- ный, систематизированный и документируемый подход к анализу документа- ции. Для его выполнения привлекается большое количество специалистов, само выполнение занимает достаточно много времени, и потому этот вари- ант просмотра используется достаточно редко (как правило, при получении на сопровождение и доработку проекта, созданием которого ранее занима- лась другая компания).
Для запоминания: аналог формальной инспекции — это ситуация генераль- ной уборки квартиры (включая содержимое всех шкафов, холодильника, кла- довки и т.д.).
Вопросы. Следующей очевидной техникой тестирования и повышения каче- ства требований является (повторное) использование техник выявления требова- ний, а также (как отдельный вид деятельности) — задавание вопросов. Если хоть что-то в требованиях вызывает у вас непонимание или подозрение — задавайте вопросы. Можно спросить представителей заказчика, можно обратиться к справоч- ной информации. По многим вопросам можно обратиться к более опытным колле- гам при условии, что у них имеется соответствующая информация, ранее получен- ная от заказчика. Главное, чтобы ваш вопрос был сформулирован таким образом, чтобы полученный ответ позволил улучшить требования.
104
Non-functional testing. Testing the attributes of a component or system that do not relate to functionality, e.g. reliability, efficiency, usability, maintainability and portability. [ISTQB Glossary]
105
Peer review. A review of a software work product by colleagues of the producer of the product for the purpose of identifying defects and improvements. Examples are inspection, technical review and walkthrough. [ISTQB Glossary]
106
Walkthrough. A step-by-step presentation by the author of a document in order to gather information and to establish a common understanding of its content. [ISTQB Glossary]
107
Technical review. A peer group discussion activity that focuses on achieving consensus on the technical approach to be taken.
[ISTQB Glossary]
108
Inspection. A type of peer review that relies on visual examination of documents to detect defects, e.g. violations of development standards and non-conformance to higher level documentation. The most formal review technique and therefore always based on a documented procedure. [ISTQB Glossary]
Техники тестирования требований
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 52/301
Поскольку здесь начинающие тестировщики допускают уйму ошибок, рас- смотрим подробнее. В таблице 2.2.a приведено несколько плохо сформулирован- ных требований, а также примеров плохих и хороших вопросов. Плохие вопросы провоцируют на бездумные ответы, не содержащие полезной информации.
Таблица 2.2.a — Пример плохих и хороших вопросов к требованиям
Плохое требование
Плохие вопросы
Хорошие вопросы
«Приложение должно быстро запускаться».
«Насколько быстро?» (На это вы рискуете получить ответы в стиле «очень быстро», «макси- мально быстро», «нууу… просто быстро»).
«А если не получится быстро?»
(Этим вы рискуете просто уди- вить или даже разозлить заказ- чика.)
«Всегда?» («Да, всегда». Хм, а вы ожидали другого ответа?)
«Каково максимально допусти- мое время запуска приложения, на каком оборудовании и при ка- кой загруженности этого обору- дования операционной системой и другими приложениями? На до- стижение каких целей влияет скорость запуска приложения?
Допускается ли фоновая за- грузка отдельных компонентов приложения? Что является кри- терием того, что приложение за- кончило запуск?»
«Опционально должен поддерживаться экспорт документов в формат
».
«Любых документов?» (Ответы
«да, любых» или «нет, только от- крытых» вам всё равно не помо- гут.)
«В PDF какой версии должен производиться экспорт?» (Сам по себе вопрос хорош, но он не даёт понять, что имелось в виду под «опционально».)
«Зачем?» («Нужно!» Именно так хочется ответить, если вопрос не раскрыт полностью.)
«Насколько возможность экс- порта в PDF важна? Как часто, кем и с какой целью она будет ис- пользоваться? Является ли PDF единственным допустимым фор- матом для этих целей или есть альтернативы? Допускается ли использование внешних утилит
(например, виртуальных PDF- принтеров) для экспорта доку- ментов в PDF?»
«Если дата события не указана, она выбирается автоматически».
«А если указана?» (То она ука- зана. Логично, не так ли?)
«А если дату невозможно вы- брать автоматически?» (Сам во- прос интересен, но без поясне- ния причин невозможности зву- чит как издёвка.)
«А если у события нет даты?»
(Тут автор вопроса, скорее всего, хотел уточнить, обязательно ли это поле для заполнения. Но из самого требования видно, что обязательно: если оно не запол- нено человеком, его должен за- полнить компьютер.)
«Возможно, имелось в виду, что дата генерируется автоматиче- ски, а не выбирается? Если да, то по какому алгоритму она гене- рируется? Если нет, то из какого набора выбирается дата и как ге- нерируется этот набор? P.S. Воз- можно, стоит использовать теку- щую дату?»
Тест-кейсы и чек-листы. Мы помним, что хорошее требование является проверяемым, а значит, должны существовать объективные способы определения того, верно ли реализовано требование. Продумывание чек-листов или даже пол- ноценных тест-кейсов в процессе анализа требований позволяет нам определить, насколько требование проверяемо. Если вы можете быстро придумать несколько пунктов чек-листа, это ещё не признак того, что с требованием всё хорошо (напри- мер, оно может противоречить каким-то другим требованиям). Но если никаких идей по тестированию требования в голову не приходит — это тревожный знак.