В результате выполнения каждого тестового примера тестовое окружение сравнивает ожидаемые и реальные выходные значения. В случае, если эти значения совпадают, тест считается пройденным, т.к. система выдала именно те выходные значения, которые ожидались, в противном случае тест считается не пройденным.
Каждый не пройденный тест потенциально указывает на потенциальный дефект в тестируемой системе, а общее их количество позволяет оценивать качество тестируемого программного кода и объем изменений, которые необходимо в него внести для устранения дефектов.
Для построения такой интегральной оценки после выполнения всех тестовых примеров тестовым окружением собирается статистика выполнения, которая как правило записывается в файл отчета о выполнении тестов. Существует несколько степеней подробности статистики выполнения тестов:
· Вывод количества пройденных и количества не пройденных тестовых примеров, а также их общего количества.
Например,
180 test cases passed
20 test cases failed
|
|
200 test cases total
· 1 + вывод идентификаторов не пройденных тестовых примеров. Позволяет локализовать тестовые примеры, потенциально выявившие дефект
Например,
Invoking test case 1 … Passed
Invoking test case 2 … Failed
Invoking test case 3 … Failed
<…>
Invoking test case 200 … Passed
Final stats:
180 test cases passed
20 test cases failed
200 test cases total
· 2 + вывод не совпавших ожидаемых и реальных выходных данных. Позволяет проводить более глубокий анализ причин неуспешного прохождения тестового примера.
Например,
Invoking test case 1 … Passed
---
Invoking test case 2 … Failed
Expected values: Actual values:
A = 200 A = 0
B = 450 B = 0
Message = “Submenu 1” Message = “”
---
Invoking test case 3 … Failed
Expected values: Actual values:
A = 0 A = 200
B = 0 B = 300
Message = “” Message = “Main Menu”
---
<…>
Invoking test case 200 … Passed
---
Final Stats
180 test cases passed
20 test cases failed
200 test cases total
· 2 + вывод всех ожидаемых и реальных выходных данных. Вариант предыдущего пункта.
Например,
Invoking test case 1 … Passed
---
Invoking test case 2 … Failed
Expected values: Actual values:
A = 200 A = 0 FAIL
B = 450 B = 0 FAIL
C = 500 C = 500 P
D = 600 D = 600 P
Message = “Submenu 1” Message = “” FAIL
---
Invoking test case 3 … Failed
Expected values: Actual values:
A = 0 A = 200 FAIL
B = 0 B = 300 FAIL
C = 500 C = 500 P
D = 600 D = 600 P
Message = “” Message = “Main Menu” FAIL
---
<…>
Invoking test case 200 … Passed
---
Final Stats
180 test cases passed
20 test cases failed
200 test cases total
· Полный вывод ожидаемых и реальных выходных данных с отметками о совпадении и несовпадении и отметками об успешном/неуспешном завершении для каждого тестового примера.
Например,
Invoking test case 1 … Passed
A = 0 A = 0 P
B = 0 B = 0 P
C = 500 C = 500 P
D = 600 D = 600 P
Message = “” Message = “” P
---
Invoking test case 2 … Failed
Expected values: Actual values:
A = 200 A = 0 FAIL
B = 450 B = 0 FAIL
C = 500 C = 500 P
D = 600 D = 600 P
Message = “Submenu 1” Message = “” FAIL
---
Invoking test case 3 … Failed
Expected values: Actual values:
|
|
A = 0 A = 200 FAIL
B = 0 B = 300 FAIL
C = 500 C = 500 P
D = 600 D = 600 P
Message = “” Message = “Main Menu” FAIL
---
<…>
Invoking test case 200 … Passed
Message = “Submenu 1” Message = “Submenu 1 P
Prompt = “>” Prompt = “>” P
---
Final Stats
180 test cases passed
20 test cases failed
200 test cases total
Более детально различные форматы отчетов о тестировании будут рассмотрены в теме 4, а пока остановимся более подробно на важном критерии оценки качества системы тестов и степени полноты тестирования системы – уровне покрытия программного кода тестами.