F. Оцінка результатів виконання програми на тестах

 

В процесі тестування Оракул послідовно отримує елементи множини (X,Y) і відповідні їм результати обчислень і перевіряє відповідність отриманих результатів очікуваним для ідентифікації неспівпадань (test incident).

 

При виявленні неспівпадань запускається процедура виправлення помилки, що містить уважний аналіз (перегляд) протоколу проміжних обчислень, які привели до такого випадку, за допомогою наступних методів:

1. Метод «Виконання програми у думці» (deskchecking).

2. Метод вставки операторів протоколювання (друку) проміжних результатів (logging) – метод впровадження «агентів» в текст програми, що налагоджується.

3. Метод покрокового виконання програми (single-step running).

4. Метод виконання програми з замовленими (заявленими) зупинками (breakpoints), аналізом трас (traces) або стану пам’яті – дампів (dump).

5. Метод реверсивного (зворотнього) виконання (reversible execution).

 

Більш детально:

 

Метод «Виконання програми у думці» (deskchecking)

 

Використавується професіоналами - програмістами і тестерами, - які мають інтуіцію, належну пам’ять і достатній досвід для повної уяви, як саме буде виконуватись програма, про послідовність виконання програми, про результати на кожному кроці виконання, про місця в програмі, де можуть бути помилки.

 

Метод вставки операторів протоколювання (друку) проміжних результатів (logging) – метод впровадження «агентів» в текст програми, що налагоджується.

 

Дуже поширений метод, що дозволяє оперативно, в процесі виконання програми, одержувати результати про поточні значення змінних, елементів масивів. Додатково введені змінні (мітки) можуть надати інформацію (через свої значення) про пройдені гілки, траси, шляхи.

Наприклад:

{

z = z*x;

Console.WriteLine("i = {0} z = {1}“, i, z);

}

- виведення на консоль поточних значень.

 

Метод покрокового виконання програми (single-step running)

 

Код програми виконується крок за кроком. Покрокове виконання є потужнім методом автономного тестування і налагодження невеликих програм.

В середовищі Microsoft Visual Studio.NET використовуються наступні команди покрокового виконання програми:

Step Into – якщо виконуваний рядок коду містить виклик функції, процедури або методу, то відбувається виклик і програма зупиняється на першому рядку функції, процедури або методу, що викликаються.

Step Over – якщо виконуваний рядок коду містить виклик функції, процедури або методу, то відбувається виклик і програма зупиняється на першому рядку після функції, процедури або методу, що викликаються.

Step Out – призначена для виходу із функції і зупиняє виконання на першому рядку після функції, процедури або методу, що викликаються.

 

Метод виконання програми з замовленими (заявленими) зупинками ( breakpoints ), аналізом трас ( traces ) або стану пам’яті – дампів ( dump )

 

Особливості використання метода:

– Контрольна точка (breakpoint) – точка програми, яка при досягнення неї, посилає відладчику сигнал; при цьому або тимчасово призупиняється виконання програми, що налагоджується, або запускається на виконання програма «агент», що фіксує на даний момент стан раніше визначених змінних.

– Коли виконання в контрольній точці призупиняється, програма переходить в режим зупинки (break mode); при цьому є можливість аналізувати стан окремих змінних або структур даних. Вихід із режиму break mode в режим виконання можливий в будь-який момент за бажанням користувача.

Якщо в контрольній точці викликається програма «агент», то виконання програми призупиняється лише на термін часу, що необхідний для фіксації стану визначених змінних в спеціальному електронному журналі - Log-файлі, після чого відбувається автоматичнее повертання в режим виконання програми.

– Траса (trace) – це «збережений шлях» на УГП, тобто зафіксовані у журналі записи про стани змінних в визначених точках за ходом виконання програми.

Наприклад, для деякого УГП

траса, що проходить через вершини 0-1-3-4-5 зафіксована у таблиці

 

№ вершини оператора Значення змінної x Значення змінної z Значення змінної n Значення змінної i
        Не зафіксоване
        Не зафіксоване
         
         
        Не зафіксоване

 

– Дамп (dump) - область пам’яті, стан якої фіксується в контрольній точці у вигляді єдиного масиву або декількох зв’язаних масивів (області загальних і спеціальних регістрів; області оперативної пам’яті, стан якої визначає алгоритм управління зовнішнім середовищем). Після виконання траси в режимі off-line стан дампу структурується і виділені області або поля порівнюються зі станами, що визначені специфікацією.

 

Метод реверсивного (зворотнього) виконання ( reversible execution )

 

Зворотне виконання програми можливе за умовою збереження на кожному кроці виконання програми всіх значень змінних або станів програми для відповідної траси. Тоді, піднімаючись від кінцевої точки до будь-якої іншої, можна по кроках виконати обчислення станів, пересуваючись від наслідку до причини, від станів на виході перетворювача (оператора, команди, конструкції) до станів на його вході. Це можливо виконувати в режимі off-line аналізу при наявності зафіксованої історії траси в Log –файлі.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: