Upload
anton-rusanov
View
118
Download
0
Embed Size (px)
Citation preview
Методики повышения качества ПО
Характеристики качественного ПО
• Внешние
• Внутренние
Внешние характеристики
• Корректность
• Практичность
• Эффективность
• Надежность
Внешние характеристики
• Целостность
• Адаптируемость
• Правильность
• Живучесть
Внешние характеристики
это единственное, что волнует пользователей
Программисты думают иначе!
Внутренние характеристики
• Удобство сопровождения
• Гибкость
• Портируемость
• Возможность повторного использования
Внутренние характеристики
• Удобочитаемость
• Тестируемость
• Понятность
Одни характеристики влияют на другие
и наоборот
Методики повышения качества ПО
• Выбор целевых характеристик
• Явный контроль качества
• Итеративная разработка
• Code review
Методики повышения качества ПО
• Отдел тестирования
• Экстремальное программирование
Качество — одно из важнейших целей разработки ПО!
Организация процесса
• Контроль изменений. Сопротивление дестабилизации проекта.
• Прототипирование
Методики контроля качества ПО
• Code review
• Формальные инспекции кода и проекта
• Прототипирование
• Самостоятельная проверка кода
• Различное тестирование
• Бета-тесты (35%-75%!!!)
Методики контроля качества ПО
• Одна методика <= 40%-50%
• Например, юнит-тестирование 30%-35%
• Комбинация методик ~80%-90%
Исследование Гленфорда Майера
• Опыт 7-11 лет
• 15 ошибок
• Белый ящик, черный ящик, комбинация
Исследование Гленфорда Майера
• Найдено от 1 до 9 ошибок, в среднем 5
• Это же 1/3!
• Комбинация x2
Исследования NASA и Boeing
• Разные программисты находят разные дефекты
• Двое или больше разработчиков находят только каждую 5 ошибку
Используйте комбинации методик
XP
XP
• Позволяет устранить до 90% дефектов!
• Средний показатель по отрасли максимум 80%
XP
• Парное программирование — 35%
• Code review — 25%
• Самостоятельная проверка — 30%
XP
• Юнит-тестирование — 30%
• Интеграционное тестирование — 35%
• Регрессионное тестирование — 25%
Средняя величина — 90%!
Стоимость исправления дефектов
• Чем дольше дефект в системе, тем дороже его исправление.
• Дороже = время, деньги, ресурсы
• Чем раньше ошибка внедряется в приложение, тем сильнее она переплетается с другими частями
Стоимость исправления дефектов
• Раннее обнаружение ошибок = снижение стоимости разработки и поддержки
• Дефекты проникают в систему на всех этапах, от планирования и проектирования до релиза.
Главный закон контроля качества ПОПовышение качества системы снижает расходы на ее
разработку и поддержку
Главный закон контроля качества ПО
• Средняя производительность труда 10-50 строк
• Основное время убивается на поиск багов и отладку
• Меньше времени на отладку = повышение производительности труда
Устранение дефектов — самый дорогой и длительный
этап разработки ПО
Парное программированиевыглядит примерно так
Парное программирование
• Затраты выше на 10%-15%
• Сокращение стоимости разработки и поддержки на 45%
Парное программирование
• Code sharing
• Высокое качество кода
• Удобочитаемость
• Ускорение разработки
Некоторые факты о тестировании
Тестирование
• Разработчики тестируют хреново!
• Разработчики любят свой код. Мимими.
• Чистые/грязные тесты
• Необходимо ломать работу кода!
Тестирование
• Процесс незрелый: 5 чистых на 1 грязный
• Процесс зрелый: 5 грязных на 1 чистый
• За счет создания большего количества грязных тестов
Тестирование
• Средний показатель ошибок: 1-25 на 1000 строк
• Microsoft: 10-20 ошибок на внутреннем тестировании
• Microsoft: 0.5 ошибок в готовом продукте
Конец!