Часть 3. Интеграционное тестирование
На рисунке ниже изображена зависимость всех модулей приложения.
Будем использовать восходящее тестирование. Некоторые модули нет необходимости тестировать, так как они выполняют простейшие действия.
К ним относятся:
1. GetBitmap – возвращает рабочую поверхность.
2. clearSheet – очищает графическое поле.
3. deleteALLButton_Click – полностью очищает графическое поле.
4. buttonInc_Click – осуществляет вызов модуля createIncAndOut.
5. buttonAdj_Click – осуществляет вызов модуля createAdjAndOut.
6. StringDraw – выводит строку если будет вводится более 10 вершин.
Проведём тестирование модуля fillincidenceMatrix. Для этого подадим в эту функцию кол-во вершин равное 3-м, список содержащий 3 ребра и двумерный массив размером 3х3. Результатом выполнения модуля с такими входными данными должн быть массив заполненый числами 1,0,-1.
Проведём тестирование модуля createIncAndOut. Для этого подадим на вход список состоящий из двух вершин и список состоящий из 1-го ребра. Результатом выполнения модуля с такими входными данными будет матрица видом, который определён в спецификации, и которая будет выведена в listBox.
Тестирование модулей fillAdjacencyMatrix и createAdjAndOut проводится аналогично модулям fillincidenceMatrix и createIncAndOut.
Проведём тестирование модуля deleteALLButton_Click. Для этого создадим первоначальные данные – список из 3-х вершин и список из 2-х рёбер. После выполнения модуля списки, которые были созданы должны ровняться «Null».
Проведём тестирование модуля chainButton_Click. Для этого создадим список содержащий 3 ребра. Результатом выполнения модуля будет отображение списка рёбер, вид которого задан в спецификации.
Проведём тестирование модуля drawVertex. Для этого подадим на вход два числа, которые будут являться координатами вершины, а так же номер вершины виде строки. Результатом выполнения модуля будет нарисована вершина в координатах, переданных на вход, а так же поверх вершины будет написан номер.
Проведём тестирование модуля drawSelectedVertex. Для этого создадим вершину и передадим её координаты в модуль. Результатом выполнения модуля – вершина будет перекрашена в красный цвет.
Проведём тестирование модуля drawEdge. Для этого создадим две вершины и ребро и подадим их на вход, для простоты входных данных номер ребра так же подадим на вход модуля. Результатом выполнения модуля будет нарисовано ребро, в графическом интерфейсе, между входными точками.
Проведём тестирование модуля drawALLGraph. Для этого создадим список из 3-х точек и список из 2-х рёбер и подадим их на вход модуля. В результате выполнения модуля будет нарисован граф в графическом интерфейсе пользователя, состоящий из 3-х вершин и 2-х рёбер между ними.
Проведём тестирование модуля drawVertexButton_Click. Входных данных для выполнения модуля нет. Результат можно посмотреть в графическом интерфейсе – будет деактивирована кнопка «рисовать вершину» а все остальные будут активированы, а так же будет создана рабочая область и если граф был нарисован, то он будет перерисован.
Проведём тестирование модуля deleteButton_Click. Входных данных для выполнения модуля нет. Результат можно посмотреть в графическом интерфейсе – будет деактивирована кнопка «Удалить» а все остальные будут активированы, а так же будет создана рабочая область и если граф был нарисован, то он будет перерисован.
Проведём тестирование модуля drawEdgeButton_Click. Входных данных для выполнения модуля нет. Результат можно посмотреть в графическом интерфейсе – будет деактивирована кнопка «Удалить» а все остальные будут активированы, а так же будет создана рабочая область и если граф был нарисован, то он будет перерисован.
Проведём тестирование модуля sheet_MouseClick. Входные данные для этого модуля координаты положения курсора при нажатии. В зависимости от нажатой кнопки «Нарисовать вершину», «Нарисовать ребро», «Удалить» будет осуществляться вызов модуля рисования вершины, ребра или модуль удаления, или модуль перерисовывания графа, вершины. Для тестирования будем производить произвольные нажатия на рабочем поле, при различных активных кнопках и отслеживать будут ли вызываться модули.