39
Методики повышения качества ПО

Разработка качественного ПО

Embed Size (px)

Citation preview

Page 1: Разработка качественного ПО

Методики повышения качества ПО

Page 2: Разработка качественного ПО

Характеристики качественного ПО

• Внешние

• Внутренние

Page 3: Разработка качественного ПО

Внешние характеристики

• Корректность

• Практичность

• Эффективность

• Надежность

Page 4: Разработка качественного ПО

Внешние характеристики

• Целостность

• Адаптируемость

• Правильность

• Живучесть

Page 5: Разработка качественного ПО

Внешние характеристики

это единственное, что волнует пользователей

Page 6: Разработка качественного ПО

Программисты думают иначе!

Page 7: Разработка качественного ПО

Внутренние характеристики

• Удобство сопровождения

• Гибкость

• Портируемость

• Возможность повторного использования

Page 8: Разработка качественного ПО

Внутренние характеристики

• Удобочитаемость

• Тестируемость

• Понятность

Page 9: Разработка качественного ПО

Одни характеристики влияют на другие

и наоборот

Page 10: Разработка качественного ПО
Page 11: Разработка качественного ПО

Методики повышения качества ПО

• Выбор целевых характеристик

• Явный контроль качества

• Итеративная разработка

• Code review

Page 12: Разработка качественного ПО

Методики повышения качества ПО

• Отдел тестирования

• Экстремальное программирование

Page 13: Разработка качественного ПО

Качество — одно из важнейших целей разработки ПО!

Page 14: Разработка качественного ПО

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

• Контроль изменений. Сопротивление дестабилизации проекта.

• Прототипирование

Page 15: Разработка качественного ПО

Методики контроля качества ПО

• Code review

• Формальные инспекции кода и проекта

• Прототипирование

• Самостоятельная проверка кода

• Различное тестирование

• Бета-тесты (35%-75%!!!)

Page 16: Разработка качественного ПО

Методики контроля качества ПО

• Одна методика <= 40%-50%

• Например, юнит-тестирование 30%-35%

• Комбинация методик ~80%-90%

Page 17: Разработка качественного ПО

Исследование Гленфорда Майера

• Опыт 7-11 лет

• 15 ошибок

• Белый ящик, черный ящик, комбинация

Page 18: Разработка качественного ПО

Исследование Гленфорда Майера

• Найдено от 1 до 9 ошибок, в среднем 5

• Это же 1/3!

• Комбинация x2

Page 19: Разработка качественного ПО

Исследования NASA и Boeing

• Разные программисты находят разные дефекты

• Двое или больше разработчиков находят только каждую 5 ошибку

Page 20: Разработка качественного ПО

Используйте комбинации методик

Page 21: Разработка качественного ПО

XP

Page 22: Разработка качественного ПО

XP

• Позволяет устранить до 90% дефектов!

• Средний показатель по отрасли максимум 80%

Page 23: Разработка качественного ПО

XP

• Парное программирование — 35%

• Code review — 25%

• Самостоятельная проверка — 30%

Page 24: Разработка качественного ПО

XP

• Юнит-тестирование — 30%

• Интеграционное тестирование — 35%

• Регрессионное тестирование — 25%

Page 25: Разработка качественного ПО

Средняя величина — 90%!

Page 26: Разработка качественного ПО

Стоимость исправления дефектов

• Чем дольше дефект в системе, тем дороже его исправление.

• Дороже = время, деньги, ресурсы

• Чем раньше ошибка внедряется в приложение, тем сильнее она переплетается с другими частями

Page 27: Разработка качественного ПО

Стоимость исправления дефектов

• Раннее обнаружение ошибок = снижение стоимости разработки и поддержки

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

Page 28: Разработка качественного ПО

Главный закон контроля качества ПОПовышение качества системы снижает расходы на ее

разработку и поддержку

Page 29: Разработка качественного ПО

Главный закон контроля качества ПО

• Средняя производительность труда 10-50 строк

• Основное время убивается на поиск багов и отладку

• Меньше времени на отладку = повышение производительности труда

Page 30: Разработка качественного ПО

Устранение дефектов — самый дорогой и длительный

этап разработки ПО

Page 31: Разработка качественного ПО
Page 32: Разработка качественного ПО

Парное программированиевыглядит примерно так

Page 33: Разработка качественного ПО

Парное программирование

• Затраты выше на 10%-15%

• Сокращение стоимости разработки и поддержки на 45%

Page 34: Разработка качественного ПО

Парное программирование

• Code sharing

• Высокое качество кода

• Удобочитаемость

• Ускорение разработки

Page 35: Разработка качественного ПО

Некоторые факты о тестировании

Page 36: Разработка качественного ПО

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

• Разработчики тестируют хреново!

• Разработчики любят свой код. Мимими.

• Чистые/грязные тесты

• Необходимо ломать работу кода!

Page 37: Разработка качественного ПО

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

• Процесс незрелый: 5 чистых на 1 грязный

• Процесс зрелый: 5 грязных на 1 чистый

• За счет создания большего количества грязных тестов

Page 38: Разработка качественного ПО

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

• Средний показатель ошибок: 1-25 на 1000 строк

• Microsoft: 10-20 ошибок на внутреннем тестировании

• Microsoft: 0.5 ошибок в готовом продукте

Page 39: Разработка качественного ПО

Конец!