|
Здравствуйте! Записался на ваш курс, но не понимаю как произвести оплату. Надо ли писать заявление и, если да, то куда отправлять? как я получу диплом о профессиональной переподготовке? |
Оценка оттестированности проекта: метрики и методика интегральной оценки
Оценка степени тестированности плоской модели определяется долей прогнанных трасс из набора необходимых для покрытия в соответствии с критерием С.
(1)
,
где PTi(G) - тестовый путь ( ti ) в графе G плоской модели равен 1, если он протестирован (прогнан), или 0, если нет.
Например, если в УГП (Пример 4.1) тесты t6 и t7, которым соответствуют трассы P6 и P8, не прогнаны, то в соответствии с соотношением (1) для TV(G,С) степень тестированности будет оценена в 0.71.
Оценка тестированности иерархической модели определяется на основе учета оценок тестированности компонентов. Если трасса некоторого теста tj УГП G включает узлы, представляющие компоненты Gj1,..Gjm, оценка TV степени тестированности которых известна, то оценка тестированности PTi(G) при реализации этой трассы определяется не 1, а минимальной из оценок TV для компонентов.
Интегральная оценка определяется соотношением (2):
(2) 
где PTi(G) - тестовый путь ( ti ) в графе G равен 1, если протестирован, или 0, если нет. В путь PTi графа G может входить j узлов модулей Gij со своей степенью тестированности TV(Gij,С), из которых мы берем min, что дает худшую оценку степени тестированности пути.
// Пример плоской модели проекта
public void G()
{
int TerminalStatus=0, CommandStatus=0;
bool IsPresent=true, CommandFound=true;
1 Init();
2 switch (TerminalStatus)
{
case 11 :
11 AddCommand();
16 switch (CommandStatus)
{
case 12 :
12 GetMessage();
13 ClearQueue();
break;
case 17 :
17 ClearQueue();
break;
case 18 :
18 DumpQueue();
break;
}
14 ProcessCommand();
15 Commit();
break;
case 3 :
3 AskTerminal();
4 if (IsPresent)
{
5 Connect();
}
6 RebuildQueue();
break;
case 19 :
19 SearchValidCommand();
20 if (CommandFound)
{
21 AnalyzeCommand();
}
else
{
23 LogError();
}
22 MoveNextCommand();
break;
}
7 LogResults();
10 DisposeAll();
}
Пример
4.4.
Пример программы для плоской модели (Рис. 4.2)
// Пример плоской модели проекта
void G()
{
int TerminalStatus=0, CommandStatus=0;
int IsPresent=1, CommandFound=1;
1 Init();
2 switch (TerminalStatus)
{
case 11 :
11 AddCommand();
16 switch (CommandStatus)
{
case 12 :
12 GetMessage();
13 ClearQueue();
break;
case 17 :
17 ClearQueue();
break;
case 18 :
18 DumpQueue();
break;
}
14 ProcessCommand();
15 Commit();
break;
case 3 :
3 AskTerminal();
4 if (IsPresent)
{
5 Connect();
}
6 RebuildQueue();
break;
case 19 :
19 SearchValidCommand();
20 if (CommandFound)
{
21 AnalyzeCommand();
}
else
{
23 LogError();
}
22 MoveNextCommand();
break;
}
7 LogResults();
10 DisposeAll();
}
Пример
4.4.1.
Пример программы для плоской модели (Рис. 4.2)
// Пример иерархической модели проекта
public void G1()
{
int CommandStatus=0;
AddCommand();
switch (CommandStatus)
{
case 12 :
GetMessage();
ClearQueue();
break;
case 17 :
ClearQueue();
break;
case 18 :
DumpQueue();
break;
}
ProcessCommand();
Commit();
}
public void G2()
{
bool CommandFound=true;
SearchValidCommand();
if (CommandFound)
{
AnalyzeCommand();
}
else
{
LogError();
}
MoveNextCommand();
}
public void G()
{
int TerminalStatus=0;
bool IsPresent=true;
1 Init();
2 switch (TerminalStatus)
{
case 11 :
8 G1();
break;
case 3 :
3 AskTerminal();
4 if (IsPresent)
{
5 Connect();
}
6 RebuildQueue();
break;
case 19 :
// Пример иерархической модели проекта - продолжение
9 G2();
break;
}
7 LogResults();
10 DisposeAll();
}
Пример
4.5.
Пример программы для иерархической модели (Рис. 4.3)
// Пример иерархической модели проекта
void G1()
{
int CommandStatus=0;
AddCommand();
switch (CommandStatus)
{
case 12 :
GetMessage();
ClearQueue();
break;
case 17 :
ClearQueue();
break;
case 18 :
DumpQueue();
break;
}
ProcessCommand();
Commit();
}
void G2()
{
int CommandFound=1;
SearchValidCommand();
if (CommandFound)
{
AnalyzeCommand();
}
else
{
LogError();
}
MoveNextCommand();
}
void G()
{
int TerminalStatus=0;
int IsPresent=1;
1 Init();
2 switch (TerminalStatus)
{
case 11 :
8 G1();
break;
case 3 :
3 AskTerminal();
4 if (IsPresent)
{
5 Connect();
}
6 RebuildQueue();
break;
case 19 :
9 G2();
break;
}
7 LogResults();
10 DisposeAll();
}
Пример
4.5.1.
Пример программы для иерархической модели (Рис. 4.3)
Методика интегральной оценки тестированности
- Выбор критерия С и приемочной оценки тестированности программного проекта - L
- Построение древа классов проекта и построение УГП для каждого модуля
- Модульное тестирование и оценка TV на модульном уровне
- Построение УГП, интегрирующего модули в единую иерархическую ( классовую ) модель проекта
- Выбор тестовых путей для проведения интеграционного или системного тестирования
- Генерация тестов, покрывающих тестовые пути шага 5
- Интегральная оценка тестированности проекта с учетом оценок тестированности модулей-компонентов
- Повторение шагов 5-7 до достижения заданного уровня тестированности L