|
|||
8 |
Нажать клавишу‘Esc’ |
выход из программы |
полное соответствие |
Критерий тестирования: покрытие условий |
|||
9 |
Нажать клавишу <↑> (вверх) и передвигать курсор до тех пор, пока не достигнет границы |
§ Курсор не выходитза границы поля |
полное соответствие |
10 |
Нажать клавишу<↓> (вниз) и передвигать курсор до тех пор, пока не достигнет границы |
§ Курсор не выходитза границы поля |
полное соответствие |
11 |
Нажать клавишу<←> (влево) и передвигать курсор до тех пор, пока не достигнет границы |
§ Курсор не выходитза границы поля |
полное соответствие |
12 |
Нажать клавишу<→> (вправо) и передвигать курсор до тех пор, пока не достигнет границы |
§ Курсор не выходитза границы поля |
полное соответствие |
Тестируемый модуль:
void Vvod(struct Lab* P, int* x1, int* y1, int* x2, int* y2)
{
gotoxy(3,2);printf("Введите вход в лабиринт");
int x=1,y=1;
char a;
do{
a=getch();
if(!a) a=getch();
CursorHide(x,y);
switch(a){
case 80 :if (y<MY) ++y ;break;
case 72 :if (y>1 ) --y ;break;
case 75 :if (x>1 ) --x ;break;
case 77 :if (x<MX) ++x ;break
case 27 :exit(0);
}
if ((a==13) && (P->Map[y][x]==2)) break;
}while(1);
*x1=x;*y1=y;
gotoxy(3,4);printf("Введите выход из лабиринта");
do{0
a=getch();
if(!a) a=getch();
switch(a){
case 80 :if (y<MY) ++y ;break;
case 72 :if (y>1 ) --y ;break;
case 75 :if (x>1 ) --x ;break;
case 77 :if (x<MX) ++x ;break;
case 27 :exit(0);
}
if ((a==13) && (P->Map[y][x]==2)) break;
}while(1);
*x2=x;*y2=y;
gotoxy(3,5); printf("x2=%3i y2=%3i ",x,y);
}
Ø
Ø Для этого модуля имеем следующие тесты (Таблица 2):
Таблица 2 – Тесты для модуля Vvod
№
теста
Действие
Предполагаемое поведение
Функции
Соответствие
§
§ Критерий тестирования: покрытие решений
1
Нажать клавишу <↑>
(вверх)
курсор должен
переместиться вверх
полное
соответствие
2
Нажать клавишу<↓>
(вниз)
курсор должен
переместиться вниз
полное
соответствие
3
Нажать клавишу<←>
(влево)
курсор должен
переместиться влево
полное
соответствие
4
Нажать клавишу<→>
(вправо)
курсор должен
переместиться вправо
полное
соответствие
5
Нажать клавишу‘Esc’
выход из программы
полное
соответствие
Критерий тестирования: покрытие условий
6
Нажать клавишу <↑>
(вверх) и передвигать
курсор до тех пор,
пока не достигнет
границы
§ Курсор не должен выходить
за границы поля
полное
соответствие
7
Нажать клавишу<↓>
(вниз) и передвигать
курсор до тех пор,
пока не достигнет
границы
§ Курсор не должен выходить
за границы поля
полное
соответствие
8
Нажать клавишу<←>
(влево) и передвигать
курсор до тех пор,
пока не достигнет
границы
§ Курсор не должен выходить
за границы поля
полное
соответствие
9
Нажать клавишу<→>
(вправо) и передвигать
курсор до тех пор,
пока не достигнет
границы
§ Курсор не должен выходить
§ за границы поля
полное
соответствие
10
навести курсор на
дверь и нажать
Enter
§ Функция не будет реаги-
§ ровать на ввод
полное
соответствие
11
навести курсор на
комнату и нажать
Enter
Функция должна попроси
ть ввести выход из лаби
ринта.
полное
соответствие
Тестируемый модуль:
int Find(struct Lab *P,int x1,int y1,int x2, int y2)
{
int x,y,k=1,F=1;
P->Put[y2][x2]=k;
while(F)
{
F=0;
for(x=1;x<=MX;x++)
{
for(y=1;y<=MY;y++)
{
if (P->Put[y][x]==k)
{
if (P->Map[y+1][x]!=0 && P->Put[y+1][x]==0)
{ P->Put[y+1][x]=k+1;F=1;}
if (P->Map[y-1][x]!=0 && P->Put[y-1][x]==0)
{ P->Put[y-1][x]=k+1;F=1;}
if (P->Map[y][x+1]!=0 && P->Put[y][x+1]==0)
{ P->Put[y][x+1]=k+1;F=1;}
if (P->Map[y][x-1]!=0 && P->Put[y][x-1]==0)
{ P->Put[y][x-1]=k+1;F=1;}
}
}
}
k++;
}
if (P->Put[y1][x1]==0)
{
gotoxy(3,7);printf("Путь не найден");
}
else
{
gotoxy(3,7);printf("Кратчайший путь найден");
}
В модуль должна передаваться карта поля и координаты двух вершин х1,y1
и х2,y2 полученые от функции Vvod, между которыми необходимо найти
кратчайший путь.
Ø Для этого модуля имеем следующие тесты (Таблица 3):
Таблица 3 – Тесты для модуля Find
При использовании материалов активная ссылка на источник обязательна.