Тестирование на основе потока управления

При проведении структурного тестирования на основе управляющего графа программы используются следующие критерии:

· покрытие операторов (вершин графа) – заключается в выполнении каждого оператора программы хотя бы один раз. Этот критерий является весьма слабым (пропускает много ошибок), так как выполнение каждого оператора программы хотя бы один раз есть необходимое, но не достаточное условие для приемлемого тестирования по методу “белого ящика”;

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

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

· покрытие условий/решений – поскольку критерии покрытия решений и условий не заменяют друг друга, поэтому их можно объединить, получив критерий покрытия условий/решений. Он требует такого набора тестов, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз и все результаты каждого решения выполнялись по крайней мере один раз. Недостатком критерия покрытия решений/условий является невозможность его применения для выполнения всех результатов всех условий (некоторые условия могут быть скрыты другими условиями). Например, результаты условий при выполнении операций И и ИЛИ могут блокировать действия других условий. Так, если условие И есть ложь, то никакое из последующих условий в выражении не будет выполнено. Аналогично, если условие ИЛИ есть истина, то никакое из последующих условий в выражении не будет выполнено.

· комбинаторное покрытие условий – требует такого набора тестов, чтобы все возможные комбинации результатов условия в каждом решении выполнялись по крайней мере один раз. Слово возможные употреблено потому, что не все комбинации условий могут быть реализуемыми; например, в выражении (A>2) & (A<10) могут быть реализованы только три комбинации условий. Набор тестов, удовлетворяющий критерию комбинаторного покрытия условий, удовлетворяет также и критериям покрытия решений, покрытия условий и покрытия решений/условий;

· покрытие путей – каждый путь хотя бы один раз (это наиболее полный, но нереализуемый критерий);

· покрытие функций - каждая функция должна быть выполнена хотя бы один раз;

· покрытие вызовов – каждый вызов каждой функции хотя бы один раз.

Пример

if ((A > 1) & (B=0)) then X:=X/A;

 
 

if ((A = 2) Or (X>1)) then X:=X+1;

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

a) Можно выполнить каждый оператор с помощью теста, который бы реализовал путь ace (A=2; B=0; X=3):

· Если в программе записано (A>1) OR (B=0) – Ошибка не обнаруживается!

· Если в программе (A=2)! (X> 0) – Ошибка не обнаруживается!

b) На пути abd все ошибки не обнаруживаются!


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: