Как тестировать без требований
Сарварова Руфина
GDC Services, Казань
Требования не были плохими..
Их просто не так поняли
•
75% считают, что их проекты всегда или обычно "обречены с самого
начала."
•
80% признают, что они переделывают работу половину своего времени
•
78% считают, что требования бизнеса не синхронизированы с
требованиями проекта и бизнес-заинтересованные стороны должны
принимать более активное участие и участие в процессе требования.
•
Нечеткие бизнес-цели: только 55% считают, что бизнес-цели своих
проектов ясны им.
•
Менее 20% считают, что требования проекта соответствуют потребностям
бизнеса.
•
Только 23% заявляют, что все довольны по завершению проекта
Что такое требования?
Требования определяют цель
• Требования определяют потребности (проблемы)
• Требования определяют решение
• Требования определяют ограничения связанные с решением или
проектом по его реализации
Требования и тестирование
Тестирование системы:
– Приемочное тестирование
– Функциональное тестирование
– Нагрузочное тестирование и измерение производительности
– Модульное тестирование
Тестирование требований:
– Проверки (review)
– Формальные инспекции
– Анализ требований с помощью моделирования
– Согласования
Роль требований
Требования
заинтересованных
сторон
Системные
требования
Требования к
подсистемам
Требования
для
компонентов
Модульные тесты
Интеграционные
тесты
Системные тесты
Приемочные тесты
Определение результата для
заинтересованных сторон, приёмка продукта
Определение того, что система
должна делать, проверка системы
Оптимизация затрат/пользы,
проверка взаимодействия
подсистем
Определение реализации
требований, проверка компонентов
Роль требований
«Анализируйте требования для определения риска
связанного с тем, что конечный продукт не будет
работать правильно в его предполагаемой среде
использования» – CMMI, Guidelines for Process
Integration and Product Improvement, Chrissis, Konrad,
Shrum.
04.07.2010
Сложность
Исследования
Lean, Agile
Жесткая
формализация
требований
Требования?
Зачем?
Идеальные требования
для аналитика
Для программиста
Для тестировщика
Роль аналитика
В роли аналитика должно выступать незаинтересованное лицо
обладающее:
• умением эффективно взаимодействовать с заказчиками и
поставщиками;
• высоким уровнем знаний в предметной области;
• ясно и четко излагать мысли (письменно);
• структурным и процессным мышлением
• умением работать в команде
• аккуратностью, позволяющей добиться высокой степени
точности фиксирования информации и принятых решений
• высокой организованностью и мотивацией
Мы, не испытываем головной боли, мы
только её переносчики
Область проблем
Область решений
Ошибки
• Нечеткое определение границ проекта, что приводит к
затягиванию сроков проекта, перерасходу бюджета за счет
включения в продукт второстепенных возможностей.
• Недостаточно четко определенные группы пользователей
продукта
• В каждой группе не выделены представители, наиболее
заинтересованные в продукте, готовые продуктивно
сотрудничать с командой разработчиков
• Попытка с первого раза максимально детализировать и
проанализировать все требования
Систематизация заинтересованных
сторон (Митчел)
Власть
Легитимность
Срочность/
Интерес
1
2
3
4
5
6
7
Высокий уровень абстракции
Потребности
Возможности
Функции системы
Язык заказчика
Сформулировать требования
1.
Определить ключевые заинтересованные лица (CYA)
2.
Сформулировать проблему
3.
Сформулировать возможности продукта
4.
Документирование (описать в виде диаграмм, UC).
А как насчёт нефункциональных?
•
Типы нефункциональных требований:
•
Окружение
•
Физические
•
Интерфейсные
•
Ограничения
•
Факторы качества (эмерджетные свойства)
Нефункциональные требования
Проверка нефункциональных
требований
•
Могут быть измерены.
•
Могут быть протестированы.
•
Могут быть выделены (т.е. связаны) с архитектурой системы.
Оценка и проверка требований
•
Является ли требование полным?
•
Является ли требование ясным?
•
Является ли требование выполнимым?
•
Является ли план тестирования и тесты понятным и приемлемыми?
Управление требованиями
Кейс1
требование1
от ЗЛ1
требование2
от ЗЛ2
требование3
от ЗЛ3
Кейс 2
“нужно чтобы отчёты открывались быстрей!”
“нужно отрефакторить функционал Х”
Заключение
●
Требования имеют огромное влияние на успех
проекта
●
Проверенные методы и высокая дисциплина при
разработке требований позволяет получить
надежную основу для разработки системы
●
Знания, аккуратность, опыт и командная работа
позволят вам «почувствовать разницу»
Формирование требований из хотелок заказчика