Слайд 1Технология разработки ПО
Качество ПО
Основные принципы и методы повышения качества
Слайд 2Технология разработки ПО
Содержание
Понятие качества ПО, критерии качества
Понятие дефекта
Стоимость исправления дефектов
Эффективность
поиска дефектов
Основные принципы управления качеством
Методы поиска дефектов
Методы предотвращения дефектов
Качество в
итерационном процессе
Стоимость качества
Слайд 3Технология разработки ПО
Что такое качество ПО?
Как вы понимаете термин качества
ПО?
Для чего мы используем этот термин?
Насколько важно качество для пользователей,
для разработчиков?
Слайд 4Технология разработки ПО
Определение качества ПО - 1
(Общее) Качество – соответствие
требованиям (ISO 9000)
Качество ПО – степень, с которой система, компонент
или процесс удовлетворяет спецификации требований (IEEE)
Качество ПО – степень, с которой система, компонент или процесс удовлетворяет нуждам и ожиданиям пользователей или заказчиков (IEEE)
Слайд 5Технология разработки ПО
Определение качества ПО - 2
Качество ПО – это
степень соответствия явно определённым функциональным требованиям и требованиям производительности, явно
документированным стандартам разработки, и неявным характеристикам, которые ожидаются от всех профессионально разработанных программных продуктов (Pressman)
Слайд 6Технология разработки ПО
Определение качества ПО - 3
Качество программного продукта –
это степень соответствия функциональных, технических, эксплуатационных характеристик разработанного программного продукта
целям, которые были поставлены перед началом разработки этого продукта
Слайд 7Технология разработки ПО
Критерии качества ПО
Функциональность
Качество пользовательского интерфейса
Надёжность
Производительность, потребление ресурсов, требования
к внешней среде
Качество информационной поддержки
Сопровождаемость (тестируемость, внутреннее качество);
+ возможно, другие
критерии
Слайд 8Технология разработки ПО
Процесс разработки и качество ПО
Слайд 9Технология разработки ПО
Обобщённое понятие дефекта - 1
Удобно было бы ввести
и использовать некий обобщённый критерий качества вместо нескольких разрозненных критериев
Таким
критерием (но инверсным) является обобщённое понятие дефекта
Любое отклонение от «идеального» продукта, от стандартов качества, которые определены (или подразумеваются) для проекта, есть дефект
Слайд 10Технология разработки ПО
Обобщённое понятие дефекта - 2
Дефект – это всё,
что следовало бы исправить
Таким образом, будем называть дефектом любое отклонение
от стандарта качества для любого вышеперечисленного критерия
Борьба за качество ПО есть борьба с дефектами в разработке ПО
Слайд 11Технология разработки ПО
Примеры дефектов в разработке ПО
недостаток функциональности или лишняя
функциональность
неудобный интерфейс
плохой дизайн или «грязный» код
неприемлемая производительность
некорректная работа программы
(«баг»)
орфографическая ошибка в документации
Слайд 12Технология разработки ПО
Классификация дефектов
Тип дефекта (определяется фазой разработки или активностью,
на которой он был внесён);
Критичность дефекта (насколько критично его наличие
в ПП);
Приоритет дефекта (насколько важно его исправить);
Сложность дефекта (насколько трудоёмко его исправить);
и др.
Слайд 13Технология разработки ПО
Дефекты при водопадном ЖЦ
Слайд 14Технология разработки ПО
Эффективность поиска дефектов - 1
Рассмотрим одну из фаз
тестирования
Эффективность
поиска дефектов ЭПД% =
Слайд 15Технология разработки ПО
Эффективность поиска дефектов - 2
ЭПД можно рассматривать как
для отдельных фаз и активностей, так и для всего ЖЦ
разработки.
ЭПД отдельных фаз определяют ЭПД для всего жизненного цикла.
Каждую фазу поиска дефектов можно рассматривать как некий фильтр, который удерживает некую часть дефектов, а весь жизненный цикл, как систему фильтров
Слайд 16Технология разработки ПО
Стоимость исправления дефектов - 1
Средняя стоимость исправления дефектов
в зависимости от того, где они были внесены и обнаружены
[С.Макконнелл]
Слайд 17Технология разработки ПО
Стоимость исправления дефектов - 2
Слайд 18Технология разработки ПО
Комплексный подход к управлению качеством
Слайд 19Технология разработки ПО
Методы поиска дефектов
Слайд 20Технология разработки ПО
Методы поиска дефектов – анализ и проверки
Ручной анализ
(обзор) разрабатываемых артефактов:
Персональные проверки (personal review);
Формальные инспекции;
Групповые обзоры (walkthrough);
Парное программирование,
групповое проектирование;
и т.п.;
Автоматическая статическая проверка:
Компиляция;
Автоматический статический анализ кода с помощью специальных анализаторов;
Автоматическая проверка на соблюдение принятого код-стандарта и стиля;
Слайд 21Технология разработки ПО
Методы поиска дефектов – тестирование
Автоматизированное тестирование:
Модульное или блочное
тестирование (unit testing);
Автоматизированное функциональное (комплексное) тестирование;
Автоматизированное тестирование графического интерфейса пользователя;
Тестирование
производительности; стресс-тестирование;
Использование утверждений (asserts);
и т.д.;
Ручное тестирование:
Ручное интеграционное тестирование;
Ручное системное тестирование;
Сравнительное тестирование;
Верификация требований;
Пошаговая трассировка;
и т.д.
Слайд 22Технология разработки ПО
ЭПД методов поиска дефектов
Слайд 23Технология разработки ПО
Время поиска и
устранения дефектов
Source: Xerox
Слайд 24Технология разработки ПО
Методы предотвращения дефектов
Прототипирование
Использование стандартов
Компонентный подход
Использование готовых проверенных
решений и компонентов
Рефакторинг кода
Предварительная разработка тест-кейсов
Регулярный анализ и устранение причин
появления дефектов
+ ПРОФЕССИОНАЛИЗМ И ОПЫТ
Слайд 25Технология разработки ПО
Качество при итерационном жизненном цикле
Предположим, что мы
вносим равное число дефектов на каждой итерации и ЭПД% =
50% для каждой итерации
Слайд 26Технология разработки ПО
Стоимость качества
«Повышение качества системы снижает расходы на её
разработку» [С.Макконнелл]
Почему?
Слайд 27Технология разработки ПО
Процесс управления качеством
Осознанное систематическое применение методов повышения
качества
Постоянный контроль качества ПО
Постоянный контроль эффективности методов
Постоянный поиск способов усовершенствования
Слайд 28Технология разработки ПО
Метрики качества ПО
ЭПД%
Плотность дефектов (на 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
Покрытие юнит-тестами (в %)
Покрытие инспекциями (в %)
Слайд 29Технология разработки ПО
Что следует запомнить
Качество ПО можно определить в терминах
дефектов
Качество продукта зависит от качества процесса разработки
Ищите и исправляйте дефекты
постоянно, начиная с самых ранних этапов
Контролируйте качество
Всегда думайте о том как повысить качество!