Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_09_Тема_07.doc
Скачиваний:
52
Добавлен:
21.05.2015
Размер:
758.78 Кб
Скачать

Министерство образования и науки Российской Федерации

ГОУ ВПО Тамбовский государственный технический университет

Кафедра Информационные системы и защита информации

Дисциплина Технология программирования

Лекция 9

Тема 7. Тестирование программных продуктов

Направление 230400 «Информационные системы и технологии»

1 курс, группы БИС-11, БИС-12

Преподаватель: Минин Юрий Викторович

Тамбов 2011

Лекция №9.

Тестирование программных продуктов

Цель лекции

Целью лекции является дать представление о процессе тестирования программных продуктов и основных методах тестирования.

План лекции

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

2. Ручной контроль программного обеспечения

3. Структурное тестирование

4. Функциональное тестирование

5. Тестирования модулей и комплексное тестирование

6. Оценочное тестирование

Список литературы

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

1. Иванова Г.С. Технология программирования М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. - 320 с.

2. Жоголев Е.А. Технология программирования М.: Научный мир, 2004. - 216 с.

3. Котляров В.П., Коликова Т.В. Основы тестирования программного обеспечения. М.: ИНТУИТ, БИНОМ, 2006. - 285с.

4. Липаев В.В. Тестирование программ. М.: Радио и связь, 1986. - 296с.

5. Благодатских В.А., Волнин В.А., Поскакалов К.Ф. Стандартизация разработки программных средств. М.: Финансы и статистика, 2005. - 288 с.

Дополнительная литература

1. Тамре Л. Введение в тестирование программного обеспечения. М.: Вильямс, 2003. - 368с.

2. Дастин Э., Рэшка Д., Пол Д. Автоматизированное тестирование программного обеспечения: Внедрение, управление и эксплуатация. М.: ЛОРИ, 2003. - 590 с.

3. Калбертсон Р., Браун К., Кобб Г. Быстрое тестирование. М.: Вильямс, 2002. – 384с.

4. Макгрегор Д., Сайкс Д. Тестирование объектно-ориентированного программного обеспечения. Практическое пособие. K.: ООО "ТИД "ДС", 2002. – 432с.

5. Канер С., Фолк Д., Нгуен Е. Тестирование программного обеспечения. М.: ДиаСофт, 2001. - 544с.

6. Бейзер Б. Тестирование черного ящика. Технологии функционального тестирования программного обеспечения и систем. CПб.: ПИТЕР, 2004. - 318с.

Internet-ресурсы

1. www.intuit.ru- Интернет-университет информационных технологий.

2. http://citforum.ru/- Центр информационных технологий.

3. http://www.tstu.ru/r.php?r=education- Электронная библиотека ТГТУ.

4. http://www.edu.ru/- Библиотека Федерального портала «Российское образование»

Содержание лекции

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

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

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

Различают два подхода к формированию тестов: структурный и функциональный. Каждый из указанных подходов имеет свои особенности и области применения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Формирование набора тестов имеет большое значение, поскольку тестирование является одним из наиболее трудоемких этапов (от 30 до 60 % общей трудоемкости) создания программного продукта. Причем доля стоимости тестирования в общей стоимости разработки имеет тенденцию возрастать при увеличении сложности программного обеспечения и повышении требований к их качеству.

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

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

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

Наборы тестов, полученные в соответствии с методами этих подходов, обычно объединяют, обеспечивая всестороннее тестирование программного обеспечения.

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