Учебный центр ИТ УРАНСОФТ Учим, устраиваем, развиваем! Тестирование требований Software requirements specification, SRS Программные требования – Software Requirements – свойства программного обеспечения, которые должны быть надлежащим образом представлены в нём для решения конкретных практических задач. Данная область знаний касается вопросов извлечения (сбора), анализа, специфицирования и утверждения требований. SRS по К. Вигерсу Пример Требования к требованиям Корректность Недвусмысленность Полнота набора требований Непротиворечивость набора требований Проверяемость (тестопригодность) Трассируемость Понимаемость Корректность Вопрос: На сколько требование корректно или кто-то допустил ошибку при написании требования? Пример: Для стирания последнего знака используется клавиша [←] (клавиша со стрелкой) Описание: Ошибка в требовании. Правильно будет: «Для стирания последнего знака используется клавиша [Backspace] (клавиша со стрелкой и надписью Backspace)» Корректность Как находить? Знание предметной области, Трассировка требования вверх (бизнестребования), трассировка требований вниз (низкоуровневые требования — дизайн, макеты, детальное описание реализации). Поиск ошибок и нестыковок. «Peer review» – оценка «коллегами» – теми, кто занимается той же самой работой. Недвусмысленность Могут ли 2 различных человека понять требование по-разному? Пример: Сколько будет 2+2х2? 6 или 8? Описание: Отработка понятия «Подитог», как в случае (2+2)х2 или соблюдение «порядка выполнения мат. действий» Недвусмысленность Недвусмысленность Как находить? Проверять «ветвистость» требований: если есть условия или исключения — проверять, чтобы они все были описаны и не было «неописанных дыр», Избегать ветвлений или форматировать их в таблицы вариантов. «Peer review» – оценка коллегами. Полнота требований Насколько полным является набор требований? Если есть секция в SRS, определяющая функциональность модуля, то вся ли функциональность этого модуля покрыта требованиями? Нет ли дыр? Полнота требований Как находить? WBS требований сверху вниз, Все классы пользователей, Проверка пограничных значений, Повторы требований при продолжении сбора, Выход за рамки проекта, Низкий приоритет требования. Непротиворечивость набора Поиск требований, которые противоречат друг другу: 1. Это может быть очевидным, когда 2 требования явно говорят противоположные вещи, 2. но может быть и скрытым, где противоречивость не очевидна на первый взгляд. Непротиворечивость набора Как тестировать? Обращать внимания на общие формулировки в требованиях. Делить на категории и ревьювить их направленно на предмет противоречий. Выделять все требования, трассирующиеся на одно верхнеуровневое требование и анализировать такие наборы. Проверяемость Один из основных и самых важных критериев для тестировщиков. Возможно ли проверить это требование и убедиться, что оно выполняется? Пример: в случае возникновения критической ошибки калькулятор должен перезагрузиться. Пример 2: информация на экране должна отображаться в понятном пользователю виде Проверяемость Как тестировать? «Как я буду это проверять?». Детально анализировать, и, возможно, вносить правки в требование (уточнения, ограничения) Выявлять общие формулировки, требующие перебора неопределенного числа вариантов для проверки выполнения требования. (переформулировать требование или добавить список условий в SRS или более низкоуровневые документы.) Трассируемость Любое требование проходит путь от бизнесидеи до деталей реализации. Это может быть 3 уровня требований (product requirements, software requirements, detailed design document), может быть и больше. Трассируемость — это связь с требованием выше и требованием ниже. Кроме того трассируемость требования (функции) в различных документах. Понимаемость Могут ли все участники процесса понять, что требуется от системы по описанию требования? Пример: Калькулятор должен уметь выделять и начислять НДС. Деление на НОЛЬ Деление на НОЛЬ Курсы Урансофт (JAVA-01) Введение в Java (JAVA-02) Основы языка и web-разработки на Java (SQA-01) Основы тестирования ПО (SQA-02) Введение в профессию тестировщика (SA-01) Системный анализ в разработке ПО (SRS-01) Сбор требований к ПО Спасибо! Вопросы? +7 (812) 309-78-59, 438-16-88 Станислав КИМ