Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл: Источник:
Скачиваний:
84
Добавлен:
04.03.2014
Размер:
323.07 Кб
Скачать

Глава 8 Тестирование и отладка

программных продуктов

Введение. Виды контроля качества программного продукта.

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

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

Современные технологии разработки программного обеспечения предусматривают раннее обнаружение ошибок за счет выполнения контроля результатов всех этапов и стадий разработки. На начальных этапах такой контроль осуществляется в основном вручную или с использованием CASE-средств, на последних – принимает форму тестирования

Введение. Виды контроля качества программного продукта(2)

Тестирование – это процесс выполнения программы, целью которого является выявление ошибок.

Никакое тестирование не может доказать отсутствие ошибок в хоть сколько-нибудь сложном программном обеспечении.

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

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

Введение. Виды контроля качества программного продукта(3)

Процесс разработки программного обеспечения, в том виде, как он определяется в современной модели жизненного цикла программного обеспечения, предполагает три стадии тестирования:

автономное тестирование компонент программного обеспечения;

комплексное тестирование разрабатываемого программного обеспечения;

системное или оценочное тестирование на соответствие основным критериям качества.

Введение. Виды контроля качества программного продукта(4)

Для повышения качества тестирования рекомендуется соблюдать следующие основные принципы:

предполагаемые результаты должны быть известны до тестирования;

следует избегать тестирования программы автором;

необходимо досконально изучать результаты каждого теста;

необходимо проверять действия программы на неверных данных;

необходимо проверять программу на неожиданные побочные эффекты на неверных данных.

Следует также иметь в виду, что

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

Введение. Виды контроля качества программного продукта(4)

Формирование тестовых наборов.

В соответствии с определением, удачным следует считать тест, который обнаруживает хотя бы одну ошибку.

Существуют два принципиально различных подхода к формированию тестовых наборов:

структурный;

функциональный.

Структурный подход базируется на том, что известна структура

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

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

8.1 Ручной контроль программного продукта

Ручной контроль обычно используют на ранних этапах разработки.

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

Различают статический и динамический подходы к ручному контролю. При статическом подходе анализируют структуру, управляющие и

информационные связи программы, ее входные и выходные данные. При динамическом – выполняют ручное тестирование, т.е. вручную моделируют процесс выполнения программы на заданных исходных

данных.

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

8.1 Ручной контроль программного

продукта(2)

Основными методами ручного тестирования являются:

инспекции исходного текста;

сквозные просмотры;

просмотры за столом;

обзоры программ.

Инспекции исходного текста

Инспекции исходного текста представляют собой набор процедур и приемов обнаружения ошибок при изучении текста группой специалистов. В эту группу входят: автор программы, проектировщик, специалист по тестированию и координатор – компетентный программист, но не автор программы.

8.1 Ручной контроль программного

продукта(3)

Общая процедура инспекции предполагает следующие операции:

участникам группы заранее выдается листинг программы и спецификация на нее;

программист рассказывает о логике работы программы и отвечает на вопросы инспекторов;

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

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

8.1 Ручной контроль программного

продукта(4)

Сквозные просмотры

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

Группа по выполнению сквозного контроля состоит из 3-5 человек: председатель или координатор, секретарь, фиксирующий все ошибки, специалист по тестированию, программист и независимый эксперт.

Сквозной просмотр предполагает выполнение следующих процедур:

участникам группы заранее выдают листинг программы и спецификация на нее;

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

участники заседания мысленно выполняют каждый тест в соответствии с логикой программы, при этом состояние программы (значения переменных) отслеживается на бумаге или доске;

8.1 Ручной контроль программного

продукта(5)

при необходимости программисту задают вопросы о логике проектирования и принятых допущениях.

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

Проверка за столом

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

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