Как тестировать без требований Сарварова Руфина 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 “нужно чтобы отчёты открывались быстрей!” “нужно отрефакторить функционал Х”
Заключение Требования имеют огромное влияние на успех проекта Проверенные методы и высокая дисциплина при разработке требований позволяет получить надежную основу для разработки системы Знания, аккуратность, опыт и командная работа позволят вам «почувствовать разницу»