Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Метод комбинаторного покрытия условий
Этот метод требует создания такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении выполнялись, по крайней мере, один раз. Для пояснения метода комбинаторного покрытия условий рассмотрим пример построения тестов и технологии исследования алгоритма на их основе. Пример 2 Задание: Для алгоритма (рис.1) построить тесты на основе метода комбинаторного покрытия условий и выполнить исследование соответствующего алгоритма. Решение: По этому критерию в рассматриваемом примере должны быть покрыты тестами следующие восемь комбинаций:
Для того чтобы протестировать эти комбинации, необязательно использовать все 8 тестов. Фактически они могут быть покрыты четырьмя тестами. Введем следующие формальные обозначения для этих четырех тестов: 1. Тест Т1(А=2, В=0, X=4) для комбинаций 1, 5 2. Тест Т2(А=2, В=1, X=1) для комбинаций 2, 6 3. Тест Т3(А=0.5, В=0, X=2) для комбинаций 3, 7 4. Тест Т4(А=1, В=1, X=1) для комбинаций 4, 8 Проведем исследования тестами исходного алгоритма (рис.1a) и алгоритма с ошибками (рис. 1б). Исследование предполагает построение протокола теста и диаграммы состояний теста для исходного алгоритма и для алгоритма с ошибками в операторах проверки условий, например, с операторами вида: U1=(A> 1)or(B=0), U2=(A=2)or(X< 1). Для проведения исследования введем в рассмотрение следующие формальные обозначения для приведенных схем алгоритмов: 1. U1=(A> 1)and(B=0) - оператор проверки условия, принимает значения 1, если условие выполняется и значение 0, если условие не выполняется; 2. U2=(A=2)or(X> 1) - оператор проверки условия, принимает значения 1, если условие выполняется и значение 0, если условие не выполняется; 3. D1=(X=X/A) - оператор действия, принимает значение X; 4. D2=(X=X+1) - оператор действия, принимает значение X; 5. R1(…), R2(…) – выходные результаты после тестирования. Исследование тестом Т1(А=2, В=0, X=4) A) Алгоритм без ошибок Протокол теста Т1(А=2, В=0, X=4): 1. U1=(2> 1)and(0=0) = 1 and 1 = 1 2. D1=(X=4/2 = 2) 3. U2=(2=2)or(2> 1) = 1 or 1 =1 4. D2=(X=2+1=3) 5. P1= (ace) 6. R1= (А = 2, В=0, X=3) Диаграмма состояний теста: U1(1)> D1(2)> U2(1)> D2(3) B) Алгоритм с ошибками Протокол теста Т1(А=2, В=0, X=4): 1. U1=(2> 1)or(0=0) = 1 or 1 = 1 2. D1=(X=4/2 = 2) 3. U2=(2=2)or(4< 1) = 1 or 1 =1 4. D2=(X=2+1=3) 5. P1= (ace) 6. R1= (А = 2, В=0, X=3) Диаграмма состояний теста: U1(1)> D1(2)> U2(1)> D2(3)
Исследование тестом Т2(А=2, В=1, X=1) A) Алгоритм без ошибок Протокол теста Т2(А=2, В=1, X=1): 1. U1=(2> 1)and(1=0) = 1 and 0 = 0 2. U2=(2=2)or(1> 1) = 1 or 0 =1 3. D2=(X=1+1=2) 4. P1= (abe) 5. R2= (А = 2, В=1, X=2) Диаграмма состояний теста: U1(0)> U2(1)> D2(2) B) Алгоритм с ошибками Протокол теста Т2(А=2, В=1, X=1)): 1. U1=(2> 1)or(1=0) = 1 or 0 = 1 2. D1=(X=1/2 = 0.5) 3. U2=(2=2)or(0.5< 1) = 1 or 1 =1 4. D2=(X=0.5+1=1.5) 5. P1= (ace) 6. R1= (А = 2, В=1, X=1.5) Диаграмма состояний теста: U1(1)> D1(0.5)> U2(1)> D2(1.5)
Исследование тестом Т3(А=0.5, В=0, X=2) A) Алгоритм без ошибок Протокол теста Т3(А=0.5, В=0, X=2): 6. U1=(0.5> 1)and(0=0) = 0 and 1 = 0 7. U2=(0.5=2)or(2> 1) = 0 or 1 =1 8. D2=(X=2+1=3) 9. P1= (abe) 10. R2= (А = 0.5, В=0, X=3) Диаграмма состояний теста: U1(0)> U2(1)> D2(3)
|