| Здравствуйте! Записался на ваш курс, но не понимаю как произвести оплату. Надо ли писать заявление и, если да, то куда отправлять? как я получу диплом о профессиональной переподготовке? | 
Оценка оттестированности проекта: метрики и методика интегральной оценки
Оценка степени тестированности плоской модели определяется долей прогнанных трасс из набора необходимых для покрытия в соответствии с критерием С.
(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
 
                             


