МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

КУРГАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Кафедра программного обеспечения вычислительной техники

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

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

РФ. КГУ. КР.231000.92.02

Листов 35

Разработал студент гр. Т - 20012 / C.В. Якименко /

Руководитель,

канд. техн. наук, доцент / /

Члены комиссии

канд. техн. наук, доцент //

Проект защищен с оценкой _________ «___» _________ 2013 г.

Курган 2013 г.
АННОТАЦИЯ

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

Содержание

Содержание. 3

1. Аналитический обзор. 4

2. Описание вариантов использования. 5

Методы тестирования. 5

Стратегия тестирования по принципу «Белого ящика». 8

Метод покрытия операторов. 9

Метод покрытия решений. 12

Метод покрытия условий. 13

Метод комбинаторного покрытия условий. 14

Стратегия тестирования по методу «Черного ящика». 16

Эквивалентное разбиение. 18

Анализ граничных значений. 20

Анализ причинно-следственных связей. 23

Интеграционное тестирование…………………………………………………………...24

3. Описание структуры программного комплекса. 29

4. Описание структуры программы.. 30

5. Описание программы.. 33

6. Вывод по результатам проектирования. 34

1. Аналитический обзор

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

НЕ нашли? Не то? Что вы ищете?

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

2. Описание вариантов использования

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

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

Существует множество подходов к решению задачи тестирования и верификации ПО, но эффективное тестирование сложных программных продуктов — это процесс в высшей степени творческий, не сводящийся к следованию строгим и чётким процедурам или созданию таковых.

С точки зрения ISO 9126, качество программного обеспечения можно определить как совокупную характеристику исследуемого ПО с учётом следующих составляющих:

- Надёжность

- Сопровождаемость

- Практичность

- Эффективность

- Мобильность

- Функциональность

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

По объекту тестирования:

- Функциональное тестирование (functional testing)

- Тестирование производительности (performance testing)

- Нагрузочное тестирование (load testing)

- Стресс-тестирование (stress testing)

- Тестирование стабильности (stability / endurance / soak testing)

- Юзабилити-тестирование (usability testing)

- Тестирование интерфейса пользователя (UI testing)

- Тестирование безопасности (security testing)

- Тестирование локализации (localization testing)

- Тестирование совместимости (compatibility testing)

По знанию системы:

- Тестирование чёрного ящика (black box)

- Тестирование белого ящика (white box)

- Тестирование серого ящика (grey box)

По степени автоматизации:

- Ручное тестирование (manual testing)

- Автоматизированное тестирование (automated testing)

- Полуавтоматизированное тестирование (semiautomated testing)

По степени изолированности компонентов:

- Компонентное (модульное) тестирование (component/unit testing)

- Интеграционное тестирование (integration testing)

- Системное тестирование (system/end-to-end testing)

По времени проведения тестирования:

- Альфа-тестирование (alpha testing)

- Тестирование при приёмке (smoke testing)

- Тестирование новой функциональности (new feature testing)

- Регрессионное тестирование (regression testing)

- Тестирование при сдаче (acceptance testing)

- Бета-тестирование (beta testing)

По признаку позитивности сценариев:

- Позитивное тестирование (positive testing)

- Негативное тестирование (negative testing)

- По степени подготовленности к тестированию:

- Тестирование по документации (formal testing)

- Тестирование ad hoc или интуитивное тестирование (ad hoc testing)

Рассмотрим некоторые из методов тестирования:

«Белый ящик» — тестирование кода на предмет логики работы программы и корректности её работы с точки зрения компилятора того языка на котором она писалась.

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

Техника Белого ящика включает в себя следующие методы тестирования:

- покрытие операторов

- покрытие решений

- покрытие условий

- покрытие решений и условий

- комбинаторное покрытие условий

Метод покрытия операторов

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

,

Блок схема программы:

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

Для тестирования с помощью метода покрытия операторов внесем изменения в логику программы. Изменим в первом условии логический оператор «И» на «ИЛИ» а во втором операторе изменим условие по b было b=0 изменим на b>0;

Рисунок 1. Верный вариант

Рисунок 2 Вариант с ошибками

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

- a =1 b=1 c=1 x=-1 выполнение алгоритма пойдет по пути 1 и у будет посчитано по формуле: y=a*x*x*b*b*x;

- a =1 b=0 c=1 x=2 выполнение алгоритма пойдет по пути 2 и у будет посчитано по формуле: y=(x+a)/(x+c);

- a =1 b=1 c=1 x=0 выполнение алгоритма пойдет по пути 3 и у будет посчитано по формуле y=x/c:

Приведем результаты тестирования в виде таблицы:

Таблица 1. Результат тестирования методом покрытия операторов

Тест

Ожидаемый результат

Фактический результат

Результат тестирования

a =1 b=1 c=1 x=-1

y=-1

y=-1

неуспешно

a =1 b=0 c=1 x=2

y=1

y=2

успешно

a =1 b=1 c=1 x=0

y=0

y = 0

неуспешно

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3