Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тестирование программного обеспечения. Фундамен...docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
935.81 Кб
Скачать

Глава 3: Типы тестов ... 55

Ну а теперь, познакомившись с основными исполнителями, давайте перейдем к обзору самого процесса.

Обзор стадий разработки

Процесс разработки программного продукта можно разделить на не­сколько стадий. Сначала его придумывают, затем создают, анализируют результат, устраняют его недостатки, затем продукт попадает к пользова­телям, которые его эксплуатируют, а сотрудники отдела маркетинга ком­пании анализируют пользовательский спрос. Когда продукт займет свое место на рынке, разработчики придумывают, как его усовершенствовать, вносят изменения и т.д. Могут быть выпущены десятки новых версий, после чего продукт наконец устареет и будет заменен принципиально но­вым. Весь этот нелегкий жизненный путь продукта, начиная от появления у авторов самой первой идеи и заканчивая его уходом со сцены, мы назы­ваем жизненным циклом (life cycle).

В жизненном цикле продукта множество этапов. Обычно их описыва­ют последовательно, как если бы они шли строго друг за другом — закан­чивается один и начинается другой, — но на самом деле они в значительной степени перекрываются. Мы тоже опишем эти этапы после­довательно, а о том, как они пересекаются, расскажем несколько позже — в главах 12 и 13.

Вот пять основных этапов жизненного цикла программного продукта.

• Планирование

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

• Кодирование и написание документации

• Тестирование и исправление недостатков

• Сопровождение (после выпуска) и усовершенствование

В своей книге Software Maintenance (Сопровождение программного обеспе­чения) Мартин и Мак-Клер (Martin & mcClure, 1983, стр. 24) привели от­носительную стоимость каждой их этих стадий. Вот эти цифры.

Стадии разработки

Производственная стадия

Анализ требований

3%

Промышленное производство и сопровождение 67%

Спецификация

3%

Проектирование

5%

Кодирование

7%

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

15%

Впервые эти цифры были опубликованы Зелковицем, Шоу и Генноном

(Zelkowitz, Shaw & Gannon) в 1979 году. По результатам их исследований

56 Часть I: Основы

и данным Мартина и Мак-Клера, сопровождение программного продукта после его выпуска обходится дороже всего. На втором месте по стоимос­ти стоит тестирование — на него приходится 45% всей стоимости разработ­ки. В процессе сопровождения продукта при исправлении ошибок и внесении усовершенствований значительная часть затрат тоже приходится на тестирование.

Продукт тестируют и исправляют практически на каждом этапе его жизненного цикла. При этом чем дальше продвигается работа, тем быст­рее растет стоимость тестирования.

• На этапе разработки технических требований стоимость внесения изменений в документацию относительно невысока. Но после напи­сания кода ситуация резко меняется: любое изменение проектной документации влечет за собой затраты и на переработку кода, час­то гораздо более значительную, чем может показаться при оценке количества изменений в спецификации.

• Когда программист сам находит свою ошибку и сам се исправляет, это не влечет больших затрат. Ему не нужно взаимодействовать с другими сотрудниками, не нужно ничего никому объяснять. Ему незачем вносить описание ошибок в общую базу данных, служащую для контроля за их исправлением, а тестировщикам и руководите­лю не нужно осуществлять этот коїггроль. Такая ошибка никого не задерживает и не мешает ничьей работе.

• До выпуска программы ошибку исправить гораздо дешевле, чем после того, когда “заплатку” или новую версию приходится высы­лать каждому пользователю — и это еще в лучшем случае, ведь может потребоваться и непосред­ственный выезд сотрудника ком­пании к заказчику.

В 1976 г. Боэм (Boehm) опубликовал итоговые данные анализа затрат на тес­тирование программных продуктов, про­веденного в компаниях IBM, GTE и TRW. Из них следует, что чем позднее обнаруживается ошибка, тем дороже обходится ее исправление. Как показано на рис. 3.1, стоимость исправления оши­бок растет экспоненциально: легче все­го это делать на стадии планирования, а спецификация кодирование по мере перехода к проектированию, ко- РИСуН0К 3.1. Стоимость дированию, тестированию и сопровож- пшска ц исправдения оши6ок в дению она значительно увеличивается. програмином обеспечении