34
Управление требованиями и тестирование ПО Начальник отдела тестирования Якимович Алексей

Управление требованиями и тестирование ПО

Embed Size (px)

DESCRIPTION

7 лекция портала IT-JOB. Алексей Якимович, начальник отдела тестирования интернет-подразделения IBA

Citation preview

Page 1: Управление требованиями и тестирование ПО

Управление требованиями и тестирование ПО

Начальник отдела тестирования Якимович Алексей

Page 2: Управление требованиями и тестирование ПО

Введение

Требования тесно связаны с тестированием. В широком смысле тестирование - это любое действие, направленное на выявление и предотвращение дефектов в системе, где дефект- это отклонение от требований.

Таким образом, в дополнение к классическим методам тестирования, (таким как модульное, системное и т.п.), тестирование- это еще рецензирование и анализ требований.

Page 3: Управление требованиями и тестирование ПО

Содержание

1. Введение в общий процесс разработки и анализа требований2. Практические аспекты разработки требований3. Процесс рецензирования требований

Page 4: Управление требованиями и тестирование ПО

1. Введение в общий процесс разработки и анализа требований.

Page 5: Управление требованиями и тестирование ПО

V-модель разработки и тестирования

Page 6: Управление требованиями и тестирование ПО

Управление изменениями

При внесении изменения необходимо выполнить следующую работу:

1. Принять или отклонить изменение2. Согласовать изменение с заказчиком3. Организовать работы по переделке

Page 7: Управление требованиями и тестирование ПО

Создание и анализ связей между требованиями (1)

В контексте бизнеса связи показываются как:

• Стратегии бизнеса

конкретизируются как

• Задачи бизнеса

которые воплощаются как

• Организация бизнеса и бизнес процессов

Page 8: Управление требованиями и тестирование ПО

Создание и анализ связей между требованиями (2)

В контексте системного проектирования связи показываются как:

• Пользовательские требования (stakeholder requirements)

удовлетворяются

• Системные требования

которые разделяются на

• Подсистемы

которые реализуются как

• Компоненты

Page 9: Управление требованиями и тестирование ПО

Выгоды использования связей

• Большая уверенность в достижении целей – Всегда можем показать, как мы их достигнем.

• Возможность оценить влияние изменений.

• Возможность оценить вклад подрядчиков.

• Возможность контролировать ход работ.

• Возможность оценить выгоду от реализации.

Page 10: Управление требованиями и тестирование ПО

Создание и анализ связей между требованиями (3)

Стрелка указывает источник информации!

Page 11: Управление требованиями и тестирование ПО

Создание и анализ связей между требованиями (4)

Методы анализа связей требований

Методы анализа

Описание Поддерживаемый процесс

Анализ влияния Что будет если изменить это требование?

Управление изменениями

Анализ последствий

Нам это действительно нужно?

Анализ экономической целесообразности

Анализ покрытия

Все ли учтено? Проектирование, отчетность по прогрессу

Page 12: Управление требованиями и тестирование ПО

Создание и анализ связей между требованиями (6)

Page 13: Управление требованиями и тестирование ПО

Создание и анализ связей между требованиями (6)

Page 14: Управление требованиями и тестирование ПО

Требования в области проблем и в области решений(1)

Уровень

требований

Область Точка зрения

Цель

Пользовательские требования

Область проблем

Пользователь (представитель заинтересованной стороны)

Определяет - ЧТО пользователь желает достичь с помощью

создаваемой системы. Избегаем решений!

Системные требования

Область решения

Аналитик Абстрактно определяет – КАК система будет

удовлетворять пользовательским

требованиям.

Системные спецификации (архитектура

системы)

Область решения

Архитектор Определяет – КАК конкретная архитектура

системы будет удовлетворять системным

требованиям.

Page 15: Управление требованиями и тестирование ПО

Требования в области проблем и в области решений(2)

Отсутствие разделения между проблемами и решениями может привести к следующим негативным последствиям:

• Недостаточное понимание существующих проблем

• Невозможность определить границы (scope) системы, т.е. невозможно понять, какой функционал должен входить, а какой- нет

• Доминирование разработчиков в дискуссиях о системе, поскольку единственные известные требования формулируют в терминах реализации, а не в терминах проблем

• Невозможность нахождения наилучшего решения из-за ограничения свободы в выборе решения

Вывод: Нужно жестко отделять описания проблем от решений!

Page 16: Управление требованиями и тестирование ПО

Стратегия проверки(1)

Связи типа «удовлетворяет/удовлетворяется» отражают процесс получения производных требований из входящих требований.

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

Каждая проверка подразумевает следующие аспекты:

• тип проверки

• фаза, когда проверка осуществляется

• тестовый стенд для проверки

• критерий успеха

Page 17: Управление требованиями и тестирование ПО

Требования и тестирование

Page 18: Управление требованиями и тестирование ПО

Стратегия проверки(2)

Page 19: Управление требованиями и тестирование ПО

Простой метод анализа требований - CRUD

Для любого объекта должны быть известны ответы на следующие вопросы:

Create - Кто и как создает объект?

Read - Как и где можно прочитать информацию об объекте?

Update - Кто и как может изменить информацию об объекте?

Delete – Кто и как может удалить объект?

Page 20: Управление требованиями и тестирование ПО

Нефункциональные требования – FURPS+

Functionality - Feature set, Capabilities, Generality, Security

Usability - Human factors, Aesthetics, Consistency, Documentation

Reliability - Frequency/severity of failure, Recoverability, Predictability, Accuracy, Mean time to failure

Performance - Speed, Efficiency, Resource consumption, Throughput, Response time

Supportability - Testability, Extensibility, Adaptability, Maintainability, Compatibility, Configurability, Serviceability, Installability, Portability, Localizability+ Requirements for Design , Implementation, Interface, etc

“Плохой архитектор проектирует функциональные требования, а хороший- нефункциональные… “

Можно продолжить: “Плохой аналитик/тестировщик …..”))

Page 21: Управление требованиями и тестирование ПО

2. Практические аспекты разработки требований

.

Page 22: Управление требованиями и тестирование ПО

Требования к требованиям

Требования должны предоставлять следующие возможности:

• Однозначная идентификация

• Классификация - по важности, типу, срочности в реализации,….

• Статус с разных точек зрения – рецензирования, удовлетворения, проверки,..

• Анализировать каждое требование в контексте документа, т.е. в окружении других требований

• Нахождения требования по контексту, классификации и другим признакам

• Установления связей между требованиями

Page 23: Управление требованиями и тестирование ПО

Приложения для разработки требований

Базы Данных Текстовый Документ

Преимущества :

Легко Нумеровать, Классифицировать, Трассировать, Сортировать, Отслеживать изменения…

Качество отдельного требования высокое!

Преимущества :

Видение всего документа в целом.

Качество документа в целом высокое!

Недостаток:

Теряется целостность видения документа.

Качество всего документа низкое!!

Недостаток:

Неудобно нумеровать, классифицировать, и т.д

Качество отдельного требования низкое!

Примеры: Enterprise Architect, Rational Requisite Pro 6.0,…

MS Word)

Оптимальные приложения для работы с требования должны совмещать преимущества баз данных и текстовых документов! Например: Rational Requisite Pro 8.0, Telelogic Doors…

Page 24: Управление требованиями и тестирование ПО

Понятие «Ключевых требований»

Key User Requirement (KUR) или Key Performance Indicators (KPI)

Ключевое Требование подразумевает отрицательный ответ на вопрос:

На пользовательском уровне:

«Если решение не предполагает <эту> возможность (функцию, опцию, т.д.), стану ли я в этом случае ее приобретать?»

На системном уровне:

«Если система не обеспечивает <этого>, будет ли система все еще нужна мне?»

Ключевые требования позволяют держать в фокусе цели и задачи проекта.

Обсуждение/изменение ключевых требований должно происходить с большим вниманием и осторожностью.

Page 25: Управление требованиями и тестирование ПО

Элементарные связи

UR1: Водитель должен иметь возможность проехать на автомобиле

по местности категории 4А

SR1: Автомобиль должен иметь полный привод

SR2: Автомобиль должен иметь дорожный клиренс не менее 25 см

SR3: Автомобиль должен иметь вес не более 1.5

Page 26: Управление требованиями и тестирование ПО

Расширенные связи с аргументом удовлетворения

Расширенные связи

& - и (conjunction)– для реализации аргумента удовлетворения нужно выполнение всех требований

or - или (disjunction) – для реализации аргумента удовлетворения нужно выполнение любого из требований

= - требование может быть «спущено» без изменений на более низкие уровни

UR1: Водитель должен иметь возможность проехать на автомобиле

по местности категории 4АSR1: Автомобиль должен иметь

полный привод

SR2: Автомобиль должен иметь дорожный клиренс не менее 25 см

SR3: Автомобиль должен иметь вес не более 1.5

Местность категории 4А предполагает наличие жидкой грязи, что потребует наличие

ограничений по весу, клиренсу, и мощности двигателя

&

DK 5: Почва местности категории 4А может выдержать автомобиль с осевой

нагрузкой 0,5т

Page 27: Управление требованиями и тестирование ПО

Классификация Требований

Первичная классификация – место в контексте документа.

Множественная вторичная классификация по следующим группам: Идентификация, Характеристики, Приоритет/Важность, Источник и владелец, Контекст, Процессы и Статусы, …

Введение классификации с начала работы с требованиями не требует больших трудозатрат.

Классификация упрощает анализ требований на непротиворечивость, полноту, связанность и согласованность.

Page 28: Управление требованиями и тестирование ПО

Baselines

Baseline – это фиксирование состояния требований в какой-либо момент времени, например, когда заказчик отрецензировал требования, перед началом фазы разработки, т.п.

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

Page 29: Управление требованиями и тестирование ПО

Рецензирование требований

На что обращать внимание:

1. Хаос – требование должно быть сконцентрировано на самом важном

2. «Лазейки» - например фраза «если это необходимо»

3. Более одного требования в одном параграфе (союз И знак!)

4. Рассуждения

5. Размытые понятия и слова – напр.- часто, нормально, типично, т.п.

6. Неопределенные термины – удобный, универсальный, гибкий

7. Желаемое выдано за требуемое – напр. 100% надежный, приятный для пользователей, безопасный, обрабатывать неожиданные сбои, не должен никогда ломаться, и тп

Page 30: Управление требованиями и тестирование ПО

3. Процесс рецензирования требований

.

Page 31: Управление требованиями и тестирование ПО

Процесс рецензирования

Moderator

Author

Inspector

Reader

Verifier

Peer Review Coordinator

Создает Документ

Планирует Рецензиро

вание

Оценка готовности

Готов?НЕТ

СозданиеДокумента

Подготовка к рецензировани

ю

Рецензирует документ

ДА

Проводится встреча где принимаютс

я или не принимаются замечания к документу

Рецензирование

Исправление документа

Проверяетсявнесение изменений

Сбор статистики

Вносится данные в систему качества

Document to review

Plan of review

Inspector Checklist

Inspection Summary

Report

Встреча

Исправляется документ

Final Document

Page 32: Управление требованиями и тестирование ПО

1. Не допускается рецензирование черновиков документов.

2. Обсуждение замечаний на общем собрании – не более 2х минут.

3. Инспектор следит за готовностью документа к рецензированию.

4. В рецензировании может участвовать заказчик + вся команда исполнителей! + приглашенные эксперты.

5. Обязательная проверка внесения изменений.

6. Не нужно изобретать велосипед. Процедура хорошо прописана и известна -www.processimpact.com/reviews_book/.

7. Можно использовать ПО для организации процесса рецензирования, но лучше иметь еще и личные встречи.

Рецензирование документации

Page 33: Управление требованиями и тестирование ПО

Вопросы

?

Page 34: Управление требованиями и тестирование ПО

Контактная информация

[email protected]