
ЛР2 ОКИТПО
.docx
Лабораторная работа 2.
Структурное тестирование. Тестирование методами белого ящика.
Выполнил студент группы ПРО-332б: Ихсанова Э.А.
Блок-схема будет иметь вид:
Соответствующий граф передач управления будет иметь вид:
Покрытие операторов. Критерий покрытия операторов подразумевает такой подбор тестов, чтобы каждый оператор программы выполнялся, по крайней мере, один раз. В нашем примере достаточно подобрать тесты для выполнения программы по маршруту
1-2-3-4-5-6. То есть, должны выполняться условия (a>6 и b=5) и (a=3 или c>3). Например, можно взять а=5, b=6 и c=4.
Тестовый набор |
Ожидаемый результат |
Результат |
Тестируемый путь |
|
|||||
a |
b |
c |
|
|
1-2-3-4-5-6 |
||||
5 |
6 |
4 |
4 |
Недостаток теста заключается в том, что переменной c можно было бы присвоить любое значение, которое >4, и если бы в программе были ошибки, связанные с этой переменной, то мы бы их не обнаружили. `
Покрытие решений (переходов). Для реализации этого критерия необходимо такое количество и состав тестов, чтобы результат проверки каждого условия (т.е. решение) принимал значения «истина» или «ложь», по крайней мере, один раз. Нетрудно видеть, что критерий покрытия решений удовлетворяет критерию покрытия операторов, но является более «сильным».
Здесь потребуется уже минимум два теста для прохода по графу либо 1-2-4-6 и 1-2-3-4-5-6, либо 1-2-3-4-6 и 1-2-4-5-6.
Можно взять следующие тестовые наборы
Тестовый набор |
Ожидаемый результат |
Результат |
Тестируемый путь |
||
a |
b |
c |
2 |
|
1-2-4-6 |
1 |
3 |
2 |
|||
3 |
3 |
6 |
9 |
|
1-2-3-4-5-6 |
Покрытие условий. Критерий покрытия условий является еще более «сильным» по сравнению с предыдущими. В этом случае формируют некоторое количество тестов, достаточное для того, чтобы все возможные результаты каждого условия в решении были выполнены, по крайней мере, один раз.
Однако, как и в случае покрытия решений, этот критерий не всегда приводит к выполнению каждого оператора, по крайней мере, один раз. К критерию требуется дополнение, заключающееся в том, что каждой точке входа управление должно быть передано, по крайней мере, один раз.
Наша программа проверяет четыре условия:
1) a>6
2) b =5
3) a=3
4) c>3
Необходимо реализовать все возможные ситуации:
a>6, a<=6, b=5, b<>5, a=3, a<>3, c>3, c<=3.
Тесты, удовлетворяющие этому условию:
a=3, b=3, c=6 путь 1-2-3-4-5-6, условия 1) да, 2) да 3) нет 4) да
a=7, b=5, с=3 путь 1-2-4-6 , условия 1) нет, 2)нет 3)да 4)нет
Тестовый набор |
Ожидаемый результат |
Результат |
Тестируемый путь |
||||
a |
b |
с |
9 |
|
1-2-3-4-5-6 |
||
3 |
3 |
6 |
|||||
7 |
5 |
3 |
12 |
|
1-2-4-6 |
Покрытие решений/условий. Согласно этому методу тесты должны составляться так, чтобы, по крайней мере, один раз выполнились все возможные результаты каждого условия и все результаты каждого решения, и каждому оператору управление передавалось, по крайней мере, один раз.
Анализ, проведенный выше, показывает, что этому критерию удовлетворяют тесты:
a=7, b=5, с=3 путь 1-2-3-4-5-6, условия 1) да, 2)да 3)нет 4)да
a=3, b=3,с=6 путь 1-2-4-6 , условия 1) нет, 2)нет 3)да 4)нет
Комбинаторное покрытие условий. Этот критерий требует создания такого множества тестов, чтобы все возможные комбинации результатов условий в каждом решении и все операторы выполнялись, по крайней мере, один раз.
Для нашей программы необходимо покрыть тестами восемь комбинаций:
1) a>6, b=5
2) a>6, b<>5
3) a<=6, b=5
4) a<=6, b<>5
5) a=3,c>3 6) a=3,c<=3
7) a<>3,c>3
8) a<>3,c<=3
Составим следующие тесты:
1. a=7, b=5, c=4 проверка комбинаций 1) и 5)
2. а=5, b=5, c=2 проверка комбинаций 2) и 6)
3. a=3, b=5, c=5 проверка комбинаций 3) и 7)
4. a=3, b=3, c=2 проверка комбинаций 4) и 8)
Тестовый набор |
Ожидаемый результат |
Результат |
Тестируемый путь |
|||||
a |
b |
с |
12 |
|
1-2-3-4-5-6 |
|||
7 |
5 |
4 |
||||||
5 |
5 |
2 |
2 |
|
1-2-4-6 |
|||
3 |
5 |
5 |
10 |
|
1-2-4-5-6 |
|||
3 |
3 |
2 |
2 |
|
1-2-4-6 |
Вывод: в ходе выполнения лабораторной работы были проведены различные тесты (по покрытию операторов, решений, условий, решений/условий и комбинаторному покрытию условий), в результате чего, мы выяснили, какие из них являются наиболее надежными.