Качество ПО.ppt
- Количество слайдов: 29
Качество ПО Основные принципы и методы повышения качества Технология разработки ПО 1
Содержание Понятие качества ПО, критерии качества Понятие дефекта Стоимость исправления дефектов Эффективность поиска дефектов Основные принципы управления качеством Методы поиска дефектов Методы предотвращения дефектов Качество в итерационном процессе Стоимость качества Технология разработки ПО 2
Что такое качество ПО? Как вы понимаете термин качества ПО? Для чего мы используем этот термин? Насколько важно качество для пользователей, для разработчиков? Технология разработки ПО 3
Определение качества ПО - 1 (Общее) Качество – соответствие требованиям (ISO 9000) Качество ПО – степень, с которой система, компонент или процесс удовлетворяет спецификации требований (IEEE) Качество ПО – степень, с которой система, компонент или процесс удовлетворяет нуждам и ожиданиям пользователей или заказчиков (IEEE) Технология разработки ПО 4
Определение качества ПО - 2 Качество ПО – это степень соответствия явно определённым функциональным требованиям и требованиям производительности, явно документированным стандартам разработки, и неявным характеристикам, которые ожидаются от всех профессионально разработанных программных продуктов (Pressman) Технология разработки ПО 5
Определение качества ПО - 3 Качество программного продукта – это степень соответствия функциональных, технических, эксплуатационных характеристик разработанного программного продукта целям, которые были поставлены перед началом разработки этого продукта Технология разработки ПО 6
Критерии качества ПО Функциональность Качество пользовательского интерфейса Надёжность Производительность, потребление ресурсов, требования к внешней среде Качество информационной поддержки Сопровождаемость (тестируемость, внутреннее качество); + возможно, другие критерии Технология разработки ПО 7
Процесс разработки и качество ПО Технология разработки ПО 8
Обобщённое понятие дефекта - 1 Удобно было бы ввести и использовать некий обобщённый критерий качества вместо нескольких разрозненных критериев Таким критерием (но инверсным) является обобщённое понятие дефекта Любое отклонение от «идеального» продукта, от стандартов качества, которые определены (или подразумеваются) для проекта, есть дефект Технология разработки ПО 9
Обобщённое понятие дефекта - 2 Дефект – это всё, что следовало бы исправить Таким образом, будем называть дефектом любое отклонение от стандарта качества для любого вышеперечисленного критерия Борьба за качество ПО есть борьба с дефектами в разработке ПО Технология разработки ПО 10
Примеры дефектов в разработке ПО недостаток функциональности или лишняя функциональность неудобный интерфейс плохой дизайн или «грязный» код неприемлемая производительность некорректная работа программы ( «баг» ) орфографическая ошибка в документации Технология разработки ПО 11
Классификация дефектов Тип дефекта (определяется фазой разработки или активностью, на которой он был внесён); Критичность дефекта (насколько критично его наличие в ПП); Приоритет дефекта (насколько важно его исправить); Сложность дефекта (насколько трудоёмко его исправить); и др. Технология разработки ПО 12
Дефекты при водопадном ЖЦ Технология разработки ПО 13
Эффективность поиска дефектов - 1 Рассмотрим одну из фаз тестирования Эффективность поиска дефектов ЭПД% = Технология разработки ПО 14
Эффективность поиска дефектов - 2 ЭПД можно рассматривать как для отдельных фаз и активностей, так и для всего ЖЦ разработки. ЭПД отдельных фаз определяют ЭПД для всего жизненного цикла. Каждую фазу поиска дефектов можно рассматривать как некий фильтр, который удерживает некую часть дефектов, а весь жизненный цикл, как систему фильтров Технология разработки ПО 15
Стоимость исправления дефектов - 1 Средняя стоимость исправления дефектов в зависимости от того, где они были внесены и обнаружены [С. Макконнелл] Технология разработки ПО 16
Стоимость исправления дефектов - 2 Технология разработки ПО 17
Комплексный подход к управлению качеством Технология разработки ПО 18
Методы поиска дефектов Анализ и проверки Ручные Тестирование Ручной анализ артефактов Ручное тестирование Автоматическая Автомастатическая тические проверка Технология разработки ПО Автоматическое тестирование 19
Методы поиска дефектов – анализ и проверки Ручной анализ (обзор) разрабатываемых артефактов: n n n Персональные проверки (personal review); Формальные инспекции; Групповые обзоры (walkthrough); Парное программирование, групповое проектирование; и т. п. ; Автоматическая статическая проверка: n n n Компиляция; Автоматический статический анализ кода с помощью специальных анализаторов; Автоматическая проверка на соблюдение принятого кодстандарта и стиля; Технология разработки ПО 20
Методы поиска дефектов – тестирование Автоматизированное тестирование: n n n Модульное или блочное тестирование (unit testing); Автоматизированное функциональное (комплексное) тестирование; Автоматизированное тестирование графического интерфейса пользователя; Тестирование производительности; стресс-тестирование; Использование утверждений (asserts); и т. д. ; Ручное тестирование: n n n Ручное интеграционное тестирование; Ручное системное тестирование; Сравнительное тестирование; Верификация требований; Пошаговая трассировка; и т. д. Технология разработки ПО 21
ЭПД методов поиска дефектов Метод поиска ЭПД% Неформальный обзор дизайна (тех. проекта) 35% Тестирование новой функции (компонента) 30% Формальные инспекции дизайна (тех. проекта) 55% Интеграционное тестирование 35% Неформальный обзор кода (code review) 25% Регрессионное тестирование 25% Формальные инспекции кода 60% Системное тестирование 40% Моделирование и прототипирование 65% Бета-тестирование (<10 тестеров) 35% Юнит-тестирование 30% Бета-тестирование (>1000 тестеров) 75% Технология разработки ПО 22
Время поиска и устранения дефектов Source: Xerox Технология разработки ПО 23
Методы предотвращения дефектов Прототипирование Использование стандартов Компонентный подход Использование готовых проверенных решений и компонентов Рефакторинг кода Предварительная разработка тест-кейсов Регулярный анализ и устранение причин появления дефектов + ПРОФЕССИОНАЛИЗМ И ОПЫТ Технология разработки ПО 24
Качество при итерационном жизненном цикле Предположим, что мы вносим равное число дефектов на каждой итерации и ЭПД% = 50% для каждой итерации Общая ЭПД после % 1 -й итерации 50% 2 -й итерации 62. 5% 3 -й итерации 70. 8% 4 -й итерации 76. 6% 5 -й итерации 80. 6% Технология разработки ПО 25
Стоимость качества «Повышение качества системы снижает расходы на её разработку» [С. Макконнелл] Почему? Технология разработки ПО 26
Процесс управления качеством Осознанное систематическое применение методов повышения качества Постоянный контроль качества ПО Постоянный контроль эффективности методов Постоянный поиск способов усовершенствования Технология разработки ПО 27
Метрики качества ПО ЭПД% Плотность дефектов (на KLOC) = defects/size Леверидж скоростей поиска и устранения дефектов, DRL(X/Y) = (defects_X / time_phase_X) / (defects_Y / time_phase_Y) Среднее время между отказами (в минутах) MTBF = testing_time / testing_defects Сопровождаемость (отношение продуктивностей сопровождения и разработки нового кода) = (fixing_size/fixing_time) / (whole_size/whole_time) Кол-во переделок (in %) = 100 * rework_size / whole_size Покрытие юнит-тестами (в %) Покрытие инспекциями (в %) Технология разработки ПО 28
Что следует запомнить Качество ПО можно определить в терминах дефектов Качество продукта зависит от качества процесса разработки Ищите и исправляйте дефекты постоянно, начиная с самых ранних этапов Контролируйте качество Всегда думайте о том как повысить качество! Технология разработки ПО 29