Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Совершенный код. Мастер-класс - Макконнелл С.

Макконнелл С. Совершенный код. Мастер-класс — М.: Русская редакция, 2005. — 896 c.
ISBN: 5-469-00822-3
Скачать (прямая ссылка): soversheniykodmasterklass2005.djvu
Предыдущая << 1 .. 220 221 222 223 224 225 < 226 > 227 228 229 230 231 232 .. 426 >> Следующая

деле это просто предсказуемый результат использования кон-
кретного набора методик устранения дефектов. Эффективность
других комбинаций методик может оказаться такой же или даже
более высокой, поэтому выбор кон-
ГЛАВА 20 Качество ПО 465
кретных методик устранения дефектов, позволяющих достичь
желаемого уровня качества, является одним из аспектов
эффективного планирования проекта.
Табл. 20-3. Эффективность обнаружения дефектов, характерная
для экстремального программирования
Методика
устранения
Минимальная
Типичная
Максимальна
я
дефектов
эффективнос
ть
эффективнос
ть
эффективнос
ть
Неформальные
обзоры
25%
35%
40%
проекта (парное
программи



рование)



Неформальные
обзоры кода
20%
25%
35%
(парное
программирование)



Самостоятельная
20%
40%
60%
проверка кода



Блочное
тестирование
15%
30%
50%
Интеграционное
25%
35%
40%
тестирование



Регрессивное
тестирование
15%
25%
30%
Общая
эффективность
-74%
-90%
-97%
устранения
дефектов



Стоимость нахождения дефектов
Некоторые методики обнаружения дефектов дороже других.
Наиболее экономичные при прочих равных условиях имеют
наименьшую стоимость в расчете на один обнаруженный дефект.
Равенством прочих условий пренебрегать нельзя, поскольку
стоимость методики в расчете на один дефект зависит от общего
числа обнаруженных дефектов, этапа обнаружения каждого дефекта
и других факторов, не связанных с экономическими аспектами
конкретной методики.
Как правило, эксперименты показывают, что инспекции
обходятся дешев- ж ле, чем тестирование. В исследовании,
проведенном в Лаборатории проектирования ПО, было обнаружено,
что при чтении кода число дефектов, находимых в час, было
примерно на 80% более высоким, чем при тестировании (Basili
and Selby, 1987). В другой организации поиск дефектов
проектирования с использованием блочного тестирования был
вшестеро дороже, чем при использовании инспекций (Ackerman,
Buchwald, and Lewski, 1989). Более позднее исследование,
проведенное в IBM, показало, что на обнаружение каждой ошибки
разработчики тратили 3,5 человеко-часа в случае инспекций кода
и 15-25 в случае тестирования (Kaplan, 1995).
Стоимость исправления дефектов
Стоимость нахождения дефектов - только одна часть уравнения.
Другой частью является стоимость их исправления. На первый
взгляд, методика обнаружения дефектов не играет роли:
стоимость их исправления всегда будет одинаковой.
Это неверно, потому что чем дольше дефект остается в системе,
тем больше средств придется потратить на его устранение.
Следовательно, методика, способствующая раннему обнаружению
ошибок, снижает стоимость их исправления. Еще важнее
466
ЧАСТЬ V Усовершенствование кода
Перекрестная ссылка 0 "шеи- то' что одни методики - такие как
инспекции - позволявши стоимости исправления ют определить и
симптомы, и причины дефектов за один
дефектов or срока ш присут- этап; другие - например,
тестирование - указывают на
стш 8 шетеае т. раздай "Об- симптомы дефекта, но требуют
выполнения дополнитель-
ращениекданньм" раздела 3*1 НО? работы для диагностики и
устранения его причины. В
Сам** ошибки более подробно -
обсуждаются " разделе 22.4. итоге одноэтапные методики оказываются
гораздо более
дешевыми, чем двухэтапные.
В одном из подразделений Microsoft обнаружили, что при
использовании инспекции кода - одноэтапной методики - на
нахождение и исправление дефекта уходит 3 часа, тогда как при
использовании тестирования - двухэтапной методики - на это
требуется 12 часов (Moore, 1992). Кол- лофелло и Вудфилд
сообщили, что при разработке программы из 700 ООО строк, над
которой работало более 400 программистов, обзоры кода имели
гораздо более высокую экономическую эффективность, чем
тестирование: прибыль на инвестированный капитал была равной
1,38 и 0,17 соответственно (Collofello and Woodfield, 1989).
Суть сказанного в том, что эффективная программа контроля
качества должна включать комбинацию методик, применяемых на
всех стадиях разработки. Для достижения высокого качества ПО
можно использовать следующую комбинацию:
¦ формальные инспекции всех требований, всех аспектов
архитектуры и всех проектов критических частей системы;
¦ моделирование или прототипирование;
¦ чтение или инспекции кода;
¦ тестирование выполнения программы.
20.4. Когда выполнять контроль качества ПО?
Как было отмечено в главе 3, чем раньше ошибка внедряет-
качества яредаарйтетшхдей- ся в приложение, тем сильнее она
переплетается с другими
етвий-нтритр'Мрвдйтт частями приложения и тем больше
средств придется потра-
трабований и разработки арм- тить на ее устранение. Дефект в
требованиях может вылить-
тектуры - в этой книге не рас- ся в один или несколько
дефектов в проекте, которые могут
сматривается* Информацию по привести к появлению множества
дефектов в коде. Ошибка
этш шш можно найти в ты- ^
т указанных е разделе "До- в требованиях может привести к
Предыдущая << 1 .. 220 221 222 223 224 225 < 226 > 227 228 229 230 231 232 .. 426 >> Следующая