Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Тестирование как этап разработки




 

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

Существует несколько описаний этапов разработки программного обеспечения. Перечислим главные этапы, не вдаваясь в подробности их дальнейшего дробления:

 

1) Анализ задачи.

2) Проектирование.

3) Кодирование.

4) Тестирование и отладка.

5) Написание документации и сопровождение.

 

Несмотря на то, что тестирование располагается на четвертом месте, его можно применять и после этапа проектирования. Однако наиболее полно оно используется после написания программного кода и может проводиться как при наличии исходного текста программы («белый ящик»), так и без него («черный ящик»).

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

Ф.Брукс в своей знаменитой работе [10,c.18] пишет:

«Из всех элементов графика работ наибольшему воздействию со стороны ограничений на последовательность выполнения действий подвержены отладка компонентов и системное тестирование. Кроме того, затраты времени зависят от количества выявленных ошибок и от того, насколько они «скрытые». Теоретически, ошибок быть не должно. Из-за своего оптимизма мы обычно склонны недооценивать действительное количество ошибок. Поэтому в программировании придерживаться графиков работ обычно труднее всего при отладке.

В течение ряда лет при планировании разработки программного обеспечения я пользуюсь следующим эмпирическим правилом:

1/3 — планирование,

1/6 — написание программ,

1/4 — тестирование компонентов и предварительное системное тестирование,

1/4 — системное тестирование при наличии всех компонентов».

И далее:

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

Особенно катастрофические последствия может иметь недостаток времени для системного тестирования. Поскольку задержка происходит в конечной части графика, никто не подозревает о том, что график находится под угрозой срыва вплоть до дня сдачи продукта. Плохие вести, полученные поздно и без предупреждения, обескураживают клиентов и менеджеров.

Более того, задержка на этом этапе имеет особенно тяжелые материальные и психологические последствия. Проект осуществляется при полной укомплектованности работниками и максимальных финансовых издержках. Что важнее, программное обеспечение должно обеспечить поддержку другой деловой активности (поставки компьютеров, запуска новых производственных мощностей и т.п.), и связанные с задержкой вторичные издержки очень высоки. На практике эти вторичные издержки могут быть выше, чем все прочие. Поэтому очень важно в изначальном графике работ отвести достаточно времени для системного тестирования».

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

Software Engineering Institute (SEI) в Унивеpситете Каpнеги-Меллон в Питсбypге yстановил некотоpые гpадационные pамки, котоpые позволяют каждомy пользователю и пpоизводителю отнести себя к одной из пяти категоpий по отношению к пpоектиpованию и pазpаботке пpогpаммного обеспечения. Пpи обследовании pяда частных фиpм и госyдаpственных yчpеждений полyчены следyющие pезyльтаты.

УРОВЕHЬ 1. Хаотичный: Плохое yпpавление поpядком.

Отсyтствие yпpавления опеpациями. Высокая себестоимость пpоектов и пpоблемы с планиpованием. Отсyтствие yпpавления технической стоpоной pеализации пpоектов, неиспользование новых сpедств и технологий. От 74% до 86% всех pазpаботчиков пpогpаммного обеспечения подпадают под даннyю категоpию.

УРОВЕHЬ 2. Повтоpяющийся: Пеpеоценка стоимости, планиpование, изменение тpебований, обзоp состояния дел и пpочее повтоpяются от пpоекта к пpоектy. Использyются стандаpтные методы. Стоимость пpоектов и планиpование под контpолем.

УРОВЕHЬ 3. Опpеделенный: Пpоцесс pазpаботки опpеделен в теpминах технического стандаpта pазpаботки пpогpаммного обеспечения, включая пpоектиpование, pецензиpование кода и обyчение.

УРОВЕHЬ 4. Упpавляемый: Пpоцесс опpеделен, оценен и хоpошо yпpавляем. Использyются специальные сpедства для контpоля и yпpавления пpоцессом pазpаботки и для поддеpжки сбоpа и анализа данных. Ведется обшиpный анализ данных о пpоекте, собpанных пpи помощи обзоpов и тестиpования.

УРОВЕHЬ 5. Оптимизиpованный: Достигнyта высокая степень yпpавления пpоцессом, оpганизация концентpиpyет yсилия на оптимизации отдельных опеpаций. Исчеpпывающий анализ допyщеных и пpедотвpащение возможных ошибок постоянно ведет к совеpшенствованию пpоцесса.

Очевидно, данная классификация по уровням непосредственно затрагивает и процесс тестирования. При первом уровне, тестирование может отсутствовать вообще (сливаться с отладкой), либо проходить совершенно хаотично, бессистемно. На втором уровне, тестирование является более определенным, навыки и результаты накапливаются от проекта к проекту и учитываются при последующих тестовых испытаниях. На третьем уровне используются стандартные инструменты, тестирование ведется по всем правилам и со всей тщательностью. На четвертом и пятом уровнях процесс тестирования не только реализован в полном объеме, но и постоянно совершенствуется с учет получаемых от проекта к проекту результатов.

 

 

Виды тестирования

 

Процесс комплексного тестирования подразделяется на следующие этапы:

1) тестирование моделей;

2) тестирование модулей (классов в ООП);

3) проверка взаимодействия и функционирования компонентов;

4) системное тестирование;

5) приемочные испытания;

 

Тестирование моделей заключается в проверке результатов проектирования на начальных этапах, когда разработчики создают модель предметной области и приступают к разработке модулей или классов.

Тестирование модулей (классов) предполагает независимое тестирование каждого модуля (класса) с целью выявления дефектов внутренней их реализации.

Проверка взаимодействия и функционирования компонентов (модулей или классов) предполагает тестирование интерфейса этих компонентов при их взаимодействии с пользователем и друг с другом.

Стадия тестирования всей системы начинается, когда все или большинство модyлей системы yже завеpшены. Тестиpование может состоять из тpех отдельных фаз:

 

· Системный тест или лабоpатоpные испытания.

· Опытная эксплyатация.

· Пpиемочный тест

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...