Тестирование ветвей и операторов отношений
В рассматриваемом модуле есть три условных оператора, условия для которых записаны операторами 1, 3, 6. Метод ветвей и операторов отношений будем выполнять только в последнем случае, так как первый реализован средствами .NET Framework, а второй задает условие цикла и будет протестирован позднее:
if (openBracket == -1) throw new DictionaryException(_dictionaryType, DictionaryExceptionReason.НевозможноПроанализироватьВариантыФорм);В этом случае, очевидно, достаточно рассмотреть два случая:
1) Переменная openBracket имеет значение -1, то есть строка в файле имеет неверный формат (отсутствует символ ‘(‘ как разделитель начальной формы слова и используемых форм). Тогда будет сгенерировано исключение DictionaryException, которое затем будет обработано в главном цикле программы.
2) Переменная openBracket имеет значение, отличное от -1. Тогда программа будет успешно продолжена.
Тестирование потоков данных
Определим DU-цепочки и представим их в виде информационного графа программы, наложенного на управляющий граф (см. Рисунок 5).
Рисунок 5. Наложение ИГ на УГ для модуля DictionaryParser.Parse
Получены следующие цепочки:
1) [line, 4, 8]
2) [line, 4, 10]
3) [openBracket, 5, 6]
4) [openBracket, 5, 10]
5) [initialForm, 8, 10]
Исходя из полученного списка цепочек, необходимо проанализировать поведение трех переменных (локальных переменных метод). Так как значения переменной openBracket зависит от line, а значения initialForm – от line и openBracket, то достаточно рассмотреть все требуемые варианты переменной line:
1) null
2) “”
3) Студент (Студента, Студенту, Студентом, Студенте)
4) Студент Студента Студенту Студентом Студенте
Тестирование циклов
В модуле представлен единственный цикл типа «ПОКА <условие> ВЫПОЛНЯТЬ <действие>».
Для тестировании этого цикла будем записывать в файл различные варианты справочников форм и проверим следующие варианты:
1) Единственная строка в файле
2) Две строки в файле
3) Более двух строк в файле.
Корректность записанных строк не принципиальна, так как условие некорректной записи было протестировано выше.
Набор модульных тестов.
Каждый тест сопровождается XML-комментарием, который описывает ситуацию и требуемое поведение программы.