close

Вход

Забыли?

вход по аккаунту

?

2 - Пояснительная записка2

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
КУРГАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Кафедра программного обеспечения вычислительной техники
Тестирование программного обеспечения
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
РФ. КГУ. КР.231000.62. 1012.01092.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=-1y=-1y=-1неуспешноa =1 b=0 c=1 x=2y=1y=2успешноa =1 b=1 c=1 x=0y=0y = 0неуспешно Рисунок 1. Результат выполнение программы Таким образом, данный метод из трех наборов данных в одном случае не обнаружил ошибку, в двух случаях ошибка обнаружена.
Метод покрытия решений
В соответствии с этим критерием необходимо составить такое число тестов, при которых каждое условие в программе примет как истинное значение, так и ложное значение.
Условие 1 x<0 И b!=0 * условие принимает истинное значение a= 1 c= 1 b=1 x=2
* условие принимает "ложное значение a= 1 c= 0 b=1 x=1
Условие 2 x>0 И b==0
* условие принимает истинное значение a= 2 c= 1 b=0 x=1
* условие принимает "ложное значение a= 3 c= 2 b=1 x=1
Приведем результаты тестирования в виде таблицы:
Таблица 2. Результат тестирования методом покрытия условий
№ п/пabcxОжидаемый результатФактический результатРезультат тестирования1111228Ошибка найдена2101111Ошибка не найдена32101Бескон.2Ошибка найдена43211112Ошибка не найдена
Рисунок 2. Результат выполнения программы
Метод покрытия условий
Данный критерий является более эффективным по сравнению с предыдущими.
Записывается число тестов достаточное для того, чтобы все возможные результаты каждого условия в решении были выполнены по крайней мере один раз.
Однако этот критерий не всегда приводит к выполнению каждого оператора по крайней мере один раз. Поэтому к этому критерию добавляется дополнительное условие, каждый оператор должен быть выполнен хотя бы один раз.
Условие 1 x<0 И b!=0 * условие принимает истинное значение a= -2 c= -2 b=3 x=-2
* условие принимает "ложное значение a= 2 c= 1 b=0 x= 5
* условие принимает "ложное значение a= -5 c= 8 b=4 x=3
* условие принимает "ложное значение a= -8 c= 0 b=-2 x=-4
В нашем случае все операторы выполнялись хотя бы один раз.
Ошибка не выявлена в двух наборах тестов. В остальных шести наборах данных ошибка выявлена. Приведем результаты тестирования в виде таблицы:
Таблица 3. Результат тестирования методом покрытия условий
№ п/пabcxОжидаемый результатФактический результатРезультат тестирования111-1-2-8-8Ошибка не выявлена20-22-1-10Ошибка выявлена33052-0,710,4Ошибка выявлена4412-2-1-32Ошибка выявлена
Рисунок 3. Результат выполнение программы
Метод комбинаторного покрытия условий
При использовании этого метода требуется создание такого числа тестов, чтобы все возможные комбинации результатов условий в каждом решении выполнялись по крайней мере один раз. Набор тестов, удовлетворяющих критерию комбинаторного покрытия условий, удовлетворяет также и критериям покрытия решений, покрытия условий и покрытия решений/условий. Комбинаторный метод требует, чтобы все возможные комбинации результатов условий в каждом решении, а также каждый оператор выполнились по крайней мере один раз. В нашем примере должны быть покрыты шесть комбинаций:
x < 0, b = 0.
x < 0, b < 0.
x < 0, b > 0.
x > 0, b > 0.
x > 0, b< 0.
x > 0, b= 0.
Приведем результаты тестирования в виде таблицы:
В двух наборах данных тестирование не выявило ошибку. В остальных случаях ошибки выявлены.
Таблица 4. Результат тестирования методом покрытия условий
№ п/пabcxОжидаемый результатФактический результатРезультат тестирования11-21-3-3-108Ошибка выявлена211555375Ошибка выявлена3-5022-0,751Ошибка выявлена44-2-1-2-128-128Ошибка не выявлена531-2133Ошибка не выявлена650-310,3330Ошибка выявлена Рисунок 4. Результат выполнение программы
Стратегия тестирования по методу "Черного ящика"
Под "чёрным ящиком" понимается объект исследования, внутреннее устройство которого неизвестно. Понятие "чёрный ящик" предложено У. Р. Эшби. В кибернетике оно позволяет изучать поведение систем, то есть их реакций на разнообразные внешние воздействия и в то же время абстрагироваться от их внутреннего устройства. Манипулируя только лишь со входами и выходами, можно проводить определенные исследования. На практике всегда возникает вопрос, насколько гомоморфизм "чёрного" ящика отражает адекватность его изучаемой модели, то есть как полно в модели отражаются основные свойства оригинала.
Описание любой системы управления во времени характеризуется картиной последовательности её состояний в процессе движения к стоящей перед нею цели. Преобразование в системе управления может быть либо взаимно-однозначным и тогда оно называется изоморфным, либо только однозначным, в одну сторону. В таком случае преобразование называют гомоморфным.
"Чёрный" ящик представляет собой сложную гомоморфную модель кибернетической системы, в которой соблюдается разнообразие. Он только тогда является удовлетворительной моделью системы, когда содержит такое количество информации, которое отражает разнообразие системы. Можно предположить, что чем большее число возмущений действует на входы модели системы, тем большее разнообразие должен иметь регулятор.
В этом методе программа рассматривается как чёрный ящик. Целью тестирования ставится выяснение обстоятельств, в которых поведение программы не соответствует спецификации. Для обнаружения всех ошибок в программе необходимо выполнить исчерпывающее тестирование, то есть тестирование на всевозможных наборах данных. Для большинства программ такое невозможно, поэтому применяют разумное тестирование, при котором тестирование программы ограничивается небольшим подмножеством всевозможных наборов данных. При этом необходимо выбирать наиболее подходящие подмножества, подмножества с наивысшей вероятностью обнаружения ошибок.
Свойства правильно выбранного теста
* Уменьшает более, чем на одно число других тестов, которые должны быть разработаны для разумного тестирования.
* Покрывает значительную часть других возможных тестов, что в некоторой степени свидетельствует о наличии или отсутствии ошибки до и после ограниченного множества тестов.
Рисунок 5. Дерево разбиений области данных
Приёмы тестирования чёрного ящика
* Эквивалентное разбиение.
* Анализ граничных значений.
* Анализ причинно-следственных связей.
* Предположение об ошибке.
Рассмотрим подробнее каждый из этих методов:
Эквивалентное разбиение
Основу метода составляют два положения:
Исходные данные необходимо разбить на конечное число классов эквивалентности. В одном классе эквивалентности содержатся такие тесты, что, если один тест из класса эквивалентности обнаруживает некоторую ошибку, то и любой другой тест из этого класса эквивалентности должен обнаруживать эту же ошибку.
Каждый тест должен включать, по возможности, максимальное количество классов эквивалентности, чтобы минимизировать общее число тестов.
Разработка тестов этим методом осуществляется в два этапа: выделение классов эквивалентности и построение теста.
Классы эквивалентности выделяются путём выбора каждого входного условия, которые берутся с помощью технического задания или спецификации и разбиваются на две и более группы. Для этого используется следующая таблица:
Входное условиеПравильные классы эквивалентностиНеправильные классы эквивалентности Выделение классов эквивалентности является эвристическим способом, однако существует ряд правил:
Если входное условие описывает область значений, например "Целое число принимает значение от 0 до 999", то существует один правильный класс эквивалентности и два неправильных.
Если входное условие описывает число значений, например "Число строк во входном файле лежит в интервале (1..6)", то также существует один правильный класс и два неправильных.
Если входное условие описывает множество входных значений, то определяется количество правильных классов, равное количеству элементов в множестве входных значений. Если входное условие описывает ситуацию "должно быть", например "Первый символ должен быть заглавным", тогда один класс правильный и один неправильный.
Если есть основание считать, что элементы внутри одного класса эквивалентности могут программой трактоваться по-разному, необходимо разбить данный класс на подклассы. На этом шаге тестирующий на основе таблицы должен составить тесты, покрывающие собой все правильные и неправильные классы эквивалентности. При этом составитель должен минимизировать общее число тестов.
Определение тестов:
Каждому классу эквивалентности присваивается уникальный номер.
Если еще остались не включенные в тесты правильные классы, то пишутся тесты, которые покрывают максимально возможное количество классов.
Если остались не включенные в тесты неправильные классы, то пишут тесты, которые покрывают только один класс.
Согласно нашему примеру разобьем входные данные на классы эквивалентности:
Таблица 5. Классы эквивалентности
Входное условиеПравильные классы эквивалентностиНеправильные классы эквивалентности-∞<a<∞a=-100000000;
a=100000000;
a=0;--∞<b<∞b=-100000000;
b=100000000;
b=0;--∞<c<∞c=-100000000;
c=100000000;
c=0;--∞<x<∞x=-100000000;
x=100000000;
x=0;- По результатам тестирования ошибка алгоритма выявлена в 56 наборах данных в 35 случаях ошибка не была выявлена.
Рисунок 5. Результат работы программы
Рисунок 6. Результат выполнения программы
Анализ граничных значений
Граничные условия - это ситуации, возникающие на высших и нижних границах входных классов эквивалентности.
Анализ граничных значений отличается от эквивалентного разбиения следующим:
Выбор любого элемента в классе эквивалентности в качестве представительного осуществляется таким образом, чтобы проверить тестом каждую границу этого класса.
При разработке тестов рассматриваются не только входные значения (пространство входов), но и выходные (пространство выходов).
Метод требует определённой степени творчества и специализации в рассматриваемой задаче.
Существует несколько правил:
Построить тесты с неправильными входными данными для ситуации незначительного выхода за границы области значений. Если входные значения должны быть в интервале [-1.0 .. +1.0], проверяем −1.0, 1.0, −1.000001, 1.000001.
Обязательно писать тесты для минимальной и максимальной границы диапазона.
Использовать первые два правила для каждого из входных значений (использовать пункт 2 для всех выходных значений).
Если вход и выход программы представляет упорядоченное множество, сосредоточить внимание на первом и последнем элементах списка.
Анализ граничных значений, если он применён правильно, позволяет обнаружить большое число ошибок. Однако определение этих границ для каждой задачи может являться отдельной трудной задачей. Также этот метод не проверяет комбинации входных значений.
Согласно нашему примеру исследуем следующие граничные значения:
Таблица 5. Граничные значения
Входное условиеГраничные условия-∞<a<∞a=-10000000000;
a=10000000000;
a=-0.00000000001;
a=0.00000000001;-∞<b<∞b=-10000000000;
b=10000000000;
b=-0.00000000001;
b=0.00000000001;-∞<c<∞c=-10000000000;
c=10000000000;
c=-0.00000000001;
c=0.00000000001;-∞<x<∞x=-10000000000;
x=10000000000;
x=-0.00000000001;
x=0.00000000001; По результатам тестирования из 256 наборов входящих данных в 128 ошибка не выявлена, в 128 случаях ошибка выявлена.
Рисунок 7. Результат выполнения программы
Рисунок 8. Результат выполнения программы
Анализ причинно-следственных связей
Этапы построения теста:
Спецификация разбивается на рабочие участки.
В спецификации определяются множество причин и следствий. Под причиной понимается отдельное входное условие или класс эквивалентности. Следствие представляет собой выходное условие или преобразование системы. Здесь каждой причине и следствию присваивается номер.
На основе анализа семантического (смыслового) содержания спецификации строится таблица истинности, в которой последовательно перебираются всевозможные комбинации причин и определяются следствия для каждой комбинации причин.
Таблица снабжается примечаниями, задающими ограничения и описывающими комбинации, которые невозможны. Недостатком этого подхода является плохое исследование граничных условий.
Нисходящее тестирование
Модули объединяются сверху вниз по управляющей иерархии, начиная с главного управляющего модуля. Подчиненные модули добавляются в структуру или в результате поиска в глубину, или в результате поиска в ширину.
1. Главный управляющий модуль (вершина иерархии) используется как тестовый драйвер. Все непосредственно подчиненные ему модули временно замещаются заглушками.
2. Одна из заглушек заменяется реальным модулем. Модуль выбирается поиском в ширину или глубину.
3. После подключения каждого модуля (и установки в нем заглушек) проводится набор тестов, проверяющий полученную структуру.
4. Если в модуле-драйвере уже нет заглушек, производится смена модуля драйвера (поиском в глубину или ширину).
5. Выполняется возврат на шаг 2 (до тех пор пока не будет построена целая структура).
Достоинство нисходящей интеграции: ошибки в главной, управляющей части системы выявляются в первую очередь.
Недостаток: трудности в ситуациях, когда для полного тестирования на верхних уровнях нужны результаты обработки нижних уровней.
Для борьбы с указанным недостатком существуют три решения:
1) откладывать некоторые тесты до замещения заглушек модулями;
2) разрабатывать заглушки, частично выполняющие функции модулей;
3) подключать модули движением снизу вверх.
Первое решение вызывает сложности в оценке результатов тестирования.
Для реализации второй возможности выбирается одна из следующих категорий заглушек:
- заглушка А - отображает проходящий параметр;
- заглушка В - отображает трассируемое сообщение;
- заглушка С - возвращает величину из таблицы;
- заглушка D - выполняет табличный поиск по ключу (входному параметру) и возвращает связанный с ним выходной параметр.
Рисунок 9. Выполение нисходящего тестирования (заглушка А)
Рисунок 10. Выполение нисходящего тестирования (заглушка В)
Рисунок 11. Выполение нисходящего тестирования (заглушка С)
Рисунок 12. Выполение нисходящего тестирования (заглушка D)
Восходящее тестирование
При восходящем тестировании интеграции сборка и тестирование системы начинается с модулей- атомов (нижний уровень иерархии). Модули подключаются движением снизу вверх. Подключенные модули всегда доступны, и нет необходимости в заглушках.
Шаги методики восходящей интеграции.
1. Модули нижнего уровня объединяются в кластеры (группы, блоки), выполняющие определенную программную функцию.
2. Для координации вводов - выводов тестового варианта пишется драйвер, управляющий тестированием кластеров.
3. Тестируется кластер.
Драйверы удаляются, а кластеры объединяются в структуру движением вверх
Драйверы могут быть различных типов:
- драйвер А - вызывает подчиненный модуль;
- драйвер В - посылает элемент данных (параметр) из внутренней таблицы;
- драйвер С - отображает параметр из подчиненного модуля;
- драйвер D - является комбинацией драйверов В и С.
Сравнение нисходящего и восходящего тестирования интеграции
Нисходящее тестирование
1) основной недостаток - необходимость заглушек и связанные с ним трудности тестирования;
2) основное достоинство - возможность раннего тестирования главных управляющих функций.
Восходящее тестирование
1) основной недостаток - система не существует как объект до тех пор, пока не будет добавлен последний модуль;
2) основное достоинство -упрощается разработка тестовых вариантов, отсутствуют заглушки.
Возможен комбинированный подход, при котором для верхних уровней интеграции применяют нисходящую стратегию, а для нижних уровней - восходящую.
При проведении тестирования интеграции очень важно выявить критические модули. Признаки критического модуля:
1) реализует несколько требований к программной системе;
2) имеет высокий уровень управления (находится достаточно высоко в программной структуре);
3) имеет высокую сложность или склонность к ошибкам (как индикатор может использоваться цикломатическая сложность - ее разумный верхний предел составляет 10);
4) имеет определенные требования к производительности обработки.
Критические модули должны тестироваться как можно раньше. Кроме того, к ним должно применяться регрессионное тестирование (повторение уже выполненных тестов в полном или частичном объеме).
Рисунок 13. Выполение восходящего тестирования (драйвер А)
Рисунок 14. Выполение восходящего тестирования (драйвер В)
Рисунок 15. Выполение восходящего тестирования (драйвер С)
Рисунок 16. Выполение восходящего тестирования (драйвер D)
3. Описание структуры программного комплекса
Программа состоит из модуля кодирования, который состоит из: 1) Подпрограмма решения уравнения с исходным алгоритмом.
2) Подпрограмма решения уравнения с внесенными ошибками.
3) Подпрограмма постройки графика по результатам тестирования. 4) Подстановка в уравнение тестовых данных сформированных методами: * Метод покрытия операторов * Метод покрытия решений * Метод покрытия условий
* Комбинаторный метод * Метод эквивалентного разбиения * Метод граничных значений * Нисходящее тестирование
* Восходящее тестирование
5) Вывода результатов тестирования.
Пользователь запускает программу, и мгновенно используется модуль кодирования, в котором заложен алгоритм решения уравнения и тестирования.
4. Описание структуры программы
Программа состоит из одного диалогового окна.
1. В правом верхнем углу окна находится четыре поля для ручного ввода данных a, b, c, x. Поставив галочку "Ввести значения вручную" данные будут подставлены в исходный алгоритм и алгоритм с ошибками и полученные результаты выводятся в таблицу расположенную в нижней части окна. Рисунок 9. Результат выполнения программы
2. Выбрав нисходящее или восходящее тестирование, необходимо выбрать тип заглушки/драйвера, после чего нажать кнопку "Тест". Результаты данных методов тестирования будут отображаться в диалоговых окнах.
Рисунок 10. Результат выполнения восходящего тестирования (драйвер А)
3. При нажатии на кнопку "Показать таблицу сводных результатов" в нижней части программы отображается таблица, в которой содержатся результаты тестирования. В таблице находится информация о том, сколько ошибок выявлено и сколько не выявлено.
Рисунок 11. Отображение сводной таблицы результатов
3. Таким образом, пользователь может тестировать любым из выбранных методов тестирования, на вкладке "График результатов" выводятся введенные данные и полученные результаты. Результаты тестирования исходного алгоритма и алгоритма с ошибками сравниваются и формируется сводная таблица эффективности тестирования, где учитываются количество наборов данных и количество наборов выявивших ошибки в алгоритме. На основании этих данных строится график.
Рисунок 12. Построение графика результатов тестирования
4. Слева расположена информация о тестируемом алгоритме. Размещен: * Исходный алгоритм
* Уравнение алгоритма
* Алгоритм с внесенными ошибками
* Сводный график результатов сравнения методов тестирования.
5. Описание программы
Рассмотрим, какие операции выполняются при тестировании алгоритма.
Программа проверяет какие галочки пользователь расставил, и исходя из этого подставляет сформированные данные выбранных методов тестирования. Результаты тестирования выводит в таблицу. При нажатии кнопки на вкладке "График тестирования" выводится сводный график сравнения методов.
Программа тестирует алгоритм следующими методами:
* Метод покрытия операторов * Метод покрытия решений * Метод покрытия условий
* Комбинаторный метод * Метод эквивалентного разбиения * Метод граничных значений * Нисходящее тестирование
* Восходящее тестирование
6. Вывод по результатам проектирования
В ходе выполнения курсовой работы проведено тестирование программного алгоритма решения задачи методами "белого ящика", "черного ящика" и интеграционное тестирования. Данные результаты могут быть использованы для сторонних организаций. Закреплены теоретические знания и получены практические навыки. Из проведенного экспериментального исследования следует, что в данном случае самым эффективным методом тестирования оказались "Метод покрытия условий". Он выявил ошибки в алгоритме в 75% из всего набора тестовых данных. На втором месте стоит методы "Покрытия операторов", "Комбинаторный метод" и "Метод эквивалентного разбиения" 66% сформированных наборов данных выявили ошибку. Вывод: Методы белого ящика показали высокую эффективность выявления ошибок логики. Среди методов черного ящика более эффективным оказался метод эквивалентного разбиения. Метод тестированиякол-во наборов данных шт.Тестовые наборы выявившие ошибку шт.Процент тестовых наборов выявивших ошибку %Тестовые наборы не выявившие ошибку шт.Процент тестовых наборов не выявивших ошибку %Метод покрытия операторов 3266133Метод покрытия решений 4250246Метод покрытия условий8675225Комбинаторный метод 6466233Метод граничных значений 1541285015450Метод эквивалентного разбиения 7348662733 2
Документ
Категория
Рефераты
Просмотров
139
Размер файла
1 667 Кб
Теги
пояснительная, записка
1/--страниц
Пожаловаться на содержимое документа