Вспомним, что 100% покрытие операторов предполагает, что в тест-кейсах будут пройдены все операторы, 100% покрытие веток - ветки и 100% покрытие путей - все пути будут пройдены.
Statement Coverage (покрытие операторов)Для определения того, сколько тестов потребуется, чтобы обеспечить 100% покрытие операторов нужно найти минимальное количество кратчайших путей, которое покроет все узлы этой блок-схемы.
Первый путь, покрывающий часть узлов блок-схемы: 1B-3D-E-4F-5H-6I
Но остался еще один не покрытый узел 2 и нам понадобится еще один путь: 1А-2С-E-4F-5H-6I
Таким образом двумя путями т.е. двумя тестами мы покрыли все узлы блок-схамы т.е. обеспечили 100% покрытие операторов.
Branch Coverage (покрытие веток)Для определения того, сколько тестов потребуется, чтобы обеспечить 100% покрытие веток нужно найти минимальное количество кратчайших путей, которое покроет все ребра этой блок-схемы.
Первый путь, покрывающий часть ребер блок-схемы: 1B-3D-E-4F-5H-6I.
Таким образом мы покрыли ребра B, D, E, F, H, I, но ребра A, C и G остались непокрытыми.
Для того, чтобы их покрыть нам нужен еще один путь (тест): 1А-2С-E-4F-G.
Таким образом, двумя тестами мы покрыли все ребра блок-схемы т.е. обеспечили 100% покрытие веток.
И для нашей задачи
Given the following code, which is true:IF A > BTHEN C = A – BELSE C = A + BENDIFRead DIF C = DThen Print “Error”ENDIFa) 1 test for statement coverage, 3 for branch coverageb) 2 tests for statement coverage, 2 for branch coveragec) 2 tests for statement coverage. 3 for branch coveraged) 3 tests for statement coverage, 3 for branch coveragee) 3 tests for statement coverage, 2 for branch coverageПравильным ответом будет b): 2 теста для 100% покрытия операторов и 2 теста для 100% покрытия веток.
Path Coverage (покрытие путей)Хотя в условиях задачи этого не было, давайте все же дополнително посчитаем сколько тестов потребуется для обеспечения 100% покрытия путей.
Начальная точка блок-схемы - 1, конечная - последний ENDIF. По сути нам нужно посчитать сколько существует различных путей, чтобы попасть из начальной точки в конечную. Таких путей будет 4.
1B-3D-E-4F-5H-6I
1B-3D-E-4F-G
1A-2C-E-4F-5H-6I
1A-2C-E-4F-G
То есть для обеспечения 100% покрытия путей нам необходимо 4 теста.
Задача решена!Наша команда уже более пяти лет занимается реализацией проектов на Java и усилением команд по направлениям
За время существования компании, мы принимали участие в работе над более чем 100 проектами различного объема и длительности.
Если перед вами стоят вызовы, при которых вам может пригодится наша экспертиза, просто напишите нам,
Мы договоримся с вами об онлайн-встрече, чтобы подробнее обсудить ваш проект и вашу проблему.