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

Факультет прикладной математики и информатики

Кафедра информационных систем управления

Ковалёва Марина Анатольевна

Шульга Владимир Александрович

РЕФЕРАТ

на тему “Тестирование путём покрытия логики программы (белый ящик, серый ящик)”

студентов 1 курса 11 группы

Преподаватели

Безверхий Александр Анатольевич,

Старший преподаватель кафедры ИСУ ФПМИ

Навойчик Андрей Валентинович,

Ассистент кафедры ИСУ ФПМИ

Минск, 2016

Содержание

Введение в тестирования ПО.. 3

Белый ящик. 5

Покрытие операторов. 6

Покрытие решений. 7

Покрытие условий. 8

Покрытие решений и условий. 9

Комбинаторное покрытие решений. 10

Структурные критерии. 12

Серый ящик. 14

Заключение. 16

Литература. 17

Введение в тестирование ПО

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

Основные принципы организации тестирования:

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

2. Программе не должна тестироваться её автором;

3. Организация — разработчик программного обеспечения не должна единолично его тестировать;

4. Необходимо подбирать тесты не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);

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

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

Процесс тестирования состоит из трёх этапов:

1. Проектирование тестов.

2. Исполнение тестов

3. Анализ полученных результатов.

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

Существует две основные методологии тестирования — чёрного и белого ящика:

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

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

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

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

Белый ящик

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

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

1. Покрытие операторов

2. Покрытие решений

3. Покрытие условий

4. Покрытие решений/условий

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

6. Критерии c1 и c2

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

Критерии покрытия операторов подразумевает выполнение каждого оператора программы по крайней мере один раз.

Рассмотрим пример:

void func(int a, int b, float x)

{

if ((a 1) (b == 0))

x = x/a; // пути с (истина) и b (ложь)

if ((a == 2) || (x 1))

x++; // пути e (истина) и d (ложь)

}

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

(a = 2 b = 0 x = 3).

Данный подход обладает недостатками. Вот, например, если в условии x1программист допускает ошибку и пишет x1, то с помощью нашего теста эта ошибка не будет обнаружена.

Покрытие решения

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

Решением будем считать логическую функцию, предшествующую оператору (а1 b=0 – решение). Для реализации этого критерия необходимо достаточное число тестов такое , что каждое решение на этих тестах принимает значение «истина» или «ложь» по крайней мере один раз. Не трудно показать, что критерий покрытия решений удовлетворяет критерию покрытия операторов, но является более сильным. Приведенная программа может быть протестирована по методу покрытия решений двумя тестами, покрывающими , либо путь асе аbc, либо асd и abe. Если мы выбираем 2-е покрытие, то входами 2-ч тестов являются:

(а=3 ,b=0, x=3),(a=2 ,b=1, x=1).
Если во 2-ом условии вместо x1 записать x

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

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

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

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

1. a = 2; b = 0; x = 4 a—c—e

2. a = 1; b = 1; x = 1 a—b—d

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

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

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

Хотя метод и является достаточно мощным и позволяет находить достаточно большое количество ошибок, он имеет и недостатки:

1. не всегда можно проверить все условия

2. невозможно проверить условия, которые скрыты другими условиям

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

ТЫ ЗАХОЧЕШЬ ЭТО СДЕЛАТЬ! Мрамор в домашних условиях.


Похожие статьи.

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