Метод покрытия решений/условий
Критерий покрытия решений/условий требует такого достаточного набора тестов, чтобы все возможные результаты каждого условия выполнялись по крайней мере один раз, все результаты каждого решения выполнялись по крайней мере один раз и, кроме того, каждой точке входа передавалось управление по крайней мере один раз.
Недостатки метода:
· не всегда можно проверить все условия;
· невозможно проверить условия, которые скрыты другими условиями;
· недостаточная чувствительность к ошибкам в логических выражениях.
Так, в рассматриваемом примере два теста метода покрытия условий
а) А = 2, В = О, Х= 4 асе;
б) А= 1, В= 1, Х=0 а bd
отвечают и критерию покрытия решений/условий. Это является следствием того, что одни условия приведенных решении скрывают другие условия в этих решениях. Так, если условие А > 1 будет ложным, транслятор может не проверять условия В= О, поскольку при любом результате условия В= 0 результат решения ((А > 1)&(В=0)) примет значение ложь. То есть в варианте на рисунке не все результаты всех условий выполнятся в процессе тестирования.
Рассмотрим реализацию того же примера на рисунке ниже. Наиболее полное покрытие тестами в этом случае осуществляется


так, чтобы выполнялись все возможные результаты каждого простого решения. Для этого нужно покрыть пути ace g (тест А = 2, В = 0, Х = 4), ас dfh (тест А = 3, В = 1, Х= 0), а bfh (тест А = 0, В= 0, Х= 0), а bfi (тест A = 0, В = 0, Х= 2).
Протестировав алгоритм на рисунке, нетрудно убедиться в том, что критерии покрытия условий и критерии покрытия решений/условий недостаточно чувствительны к ошибкам в логических выражениях.
Метод комбинаторного покрытия условий
Критерий комбинаторного покрытия условий удовлетворяет также и критериям покрытия решений, покрытия условий и покрытия решений/условий.
Этот метод требует создания такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении выполнялись по крайней мере один раз. По этому критерию в рассматриваемом примере должны быть покрыты тестами следующие восемь комбинаций:
1. А> 1, В= 0.
2. А > 1, В <> 0.
3. А< 1, В= 0.
4. А< 1, В <> 0.
5. А = 2, Х> 1.
6. А = 2, 1.
7. А<>2, Х> 1.
8. А<>2, Х< 1.
Для того чтобы протестировать эти комбинации, необязательно использовать все 8 тестов. Фактически они могут быть покрыты четырьмя тестами:
· А = 2, В = 0, Х=4 {покрывает 1,5};
· А = 2, В = 1, Х= 1 {покрывает 2,6};
· А = 0,5, В= 0, Х= 2 {покрывает 3, 7};
· А = 1 , В = 0, Х= 1 {покрывает 4, 8}.
Таблица - Результаты тестирования методом комбинаторного покрытия условий
| Тест | Ожидаемый результат | Фактический результат | Результат тестирования |
| А = 2, В=0, X = 4 | X=3 | X=3 | Неуспешно |
| А=2, В=1, Х= 1 | Х= 2 | X=1,5 | Успешно |
| А = 0,5, В= 0, Х=2 | Х=3 | Х= 4 | Успешно |
| А= 1, B=0, X= 1 | Х= 1 | Х= 1 | Неуспешно |
Для нетривиальных классов программ в общем случае не существует полного и надежного критерия, зависящего от программ или спецификаций.
Поэтому мы стремимся к идеальному общему критерию через реальные частные.
ПОРЯДОК ВЫПОЛНЕНИЯ
Задание 1.
1. Спроектировать тесты по принципу «белого ящика» для программы:

2. Реализовать программный код и протестировать его на основании тестов по принципу «белого ящика», составленных в пункте 1.
3. Представить результаты тестирования в виде таблицы:
| Тест | Ожидаемый результат | Фактический результат | Результат тестирования |
Задание 1.
1. Обозначить буквами или цифрами ветви алгоритма:

2. Выписать пути алгоритма, которые должны быть проверены тестами для выбранного метода тестирования.
3. Записать тесты, которые позволят пройти по путям алгоритма.
4. Протестировать разработанную программу. Результаты оформить в виде таблицы.
5. Проверить все виды тестов и сделать выводы об их эффективности.
Отчет по лабораторной работе должен состоять из:
1. Постановки задачи.
2. Блок-схемы программ.
3. Тестов.
4. Таблиц тестирования программы.
5. Выводов по результатам тестирования (не забывайте, что целью тестирования является обнаружение ошибок в программе).
Контрольные вопросы
1. Охарактеризуйте этап реализации и тестирования программного продукта.
2. Какие существуют виды тестирования?
3. Назовите критерии выбора тестов.
4. Перечислите свойства тестов.
5. Приведите критерии надежности программ.
6. В чем заключается оценка надежности программ?
Дата добавления: 2021-04-15; просмотров: 169; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!
