5.4. Правила записи трассировки
Под трассировкой понимается выполнение алгоритма последовательно, операция за операцией, с фиксацией результатов каждой операции. При выполнении тестов «вручную» с фиксацией результатов на бумаге рекомендуется придерживаться следующих правил:
В качестве результатов операций ввода и присваивания записываются новые значения переменных (в виде тождеств).
В качестве результата операции вывода изображается текст, сформированный для выводимых значений.
Условие (в операциях ветвления и цикла) записывается в виде отношений, в которых все переменные заменены их текущими значениями. Условие помещается в фигурные скобки и затем записывается результат в форме «да/нет».
Трассировку следует начинать с первой операции исполнимой части алгоритма, а их результаты записываются последовательно, в порядке их выполнения.
Для всех, не детализированных в данном алгоритме, действий и подпрограмм результаты считать сформированными правильно.
Трассировка должна быть прекращена только по достижении строки «конец» алгоритма.
Только после этого надо приступить к анализу результатов алгоритма. Именно за счет этого появляется возможность увидеть такие результаты, которых программа не должна делать, но из-за ошибки в алгоритме делает.
В качестве примера приведем запись трассировки изображенного выше фрагмента из двух последовательных конструкций «если» для теста номер 1, построенного по методу комбинированного покрытия условий.
Дано: {a=2, b=0, x=4}
Требуется: {x=3}
Трассировка:
{ {2>1}да и {0=0}да }да
x = 2
{ {2=2}да и {2>1}да }да
x = 3
Конец.
Вывод: Полученный результат совпадает с эталонным. Ошибки нет.
Вопросы для самоконтроля
Что такое «тест»? Каково его назначение?
Какой тест является хорошим и какой плохим?
Сколько тестов требуется для получения уверенности, что программа работает правильно?
Дайте качественное определение термина «система тестов».
Перечислите виды тестирования?
Какой вид тестирования более удобен на этапе разработки программы?
Что понимается под стратегией тестирования?
В чем отличия стратегий «черного ящика» и «белого ящика»?
Что понимается под классом эквивалентности?
Какие критерии используются при выделении классов эквивалентности?
В чем суть метода граничных условий?
Перечислите и вкратце охарактеризуйте методы стратегии «белого ящика».
В чем отличия методов покрытия решений и покрытия условий?
Что понимается под термином «трассировка»?
Перечислите правила записи трассировки?
