Здравствуйте! Записался на ваш курс, но не понимаю как произвести оплату. Надо ли писать заявление и, если да, то куда отправлять? как я получу диплом о профессиональной переподготовке? |
Основные понятия тестирования
Пример обратного выполнения для программы вычисления степени числа x
В программе на Пример 2.4 фиксируются значения всех переменных после выполнения каждого оператора.
// Метод вычисляет неотрицательную // степень n числа x static public double PowerNonNeg(double x, int n) { double z=1; Console.WriteLine("x={0} z={1} n={2}", x,z,n); if (n>0) { Console.WriteLine("x={0} z={1} n={2}", x,z,n); for (int i=1;n>=i;i++) { z = z*x; Console.WriteLine( "x={0} z={1} n={2}" + " i={3}",x,z,n,i); } } else Console.WriteLine( "Ошибка ! Степень" + " числа n должна быть больше 0."); return z; }2.4. Исходный код с фиксацией результатов выполнения операторов
double PowerNonNeg(double x, int n) { double z=1; int i; printf("x=%f z=%f n=%d\n",x,z,n); if (n>0) { printf("x=%f z=%f n=%d\n",x,z,n); for (i=1;n>=i;i++) { z = z*x; printf("x=%f z=%f n=%d i=%d\n", x,z,n,i); } } else printf( "Ошибка ! Степень " "числа n должна быть больше 0.\n"); return z; }2.4.1. Исходный код с фиксацией результатов выполнения операторов
Зная структуру управляющего графа программы и имея значения всех переменных после выполнения каждого оператора, можно осуществить обратное выполнение (например, в уме), подставляя значения переменных в операторы и двигаясь снизу вверх, начиная с последнего.
Итак, в процессе тестирования сравнение промежуточных результатов с полученными независимо эталонными результатами позволяет найти причины и место ошибки, исправить текст программы, провести повторную трансляцию и настройку на выполнение и продолжить тестирование.
Тестирование заканчивается, когда выполнилось или "прошло" (pass) успешно достаточное количество тестов в соответствии с выбранным критерием тестирования.
- Процесс выполнения ПО системы или компонента в условиях анализа или записи получаемых результатов с целью проверки (оценки) некоторых свойств тестируемого объекта.
The process of operating a system or component under specified conditions, observing or recording the results, and making an evaluation of some aspect of the system or component [ 9 ] .
- Процесс анализа пункта требований к ПО с целью фиксации различий между существующим состоянием ПО и требуемым (что свидетельствует о проявлении ошибки) при экспериментальной проверке соответствующего пункта требований.
The process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate features of software items [[IEEE Std.610-12.1990], [ 9 ] .
- Контролируемое выполнение программы на конечном множестве тестовых данных и анализ результатов этого выполнения для поиска ошибок [IEEE Std 829-1983].
Сквозной пример тестирования
Возьмем несколько отличающуюся от Пример 2.4 программу:
// Метод вычисляет степень n числа x static public double Power(int x, int n) { int z=1; for (int i=1;n>=i;i++) { z = z*x; } return z; } [STAThread] static void Main(string[] args) { int x; int n; try { Console.WriteLine("Enter x:"); x=Convert.ToInt32(Console.ReadLine()); if ((x>=0) & (x<=999)) { Console.WriteLine("Enter n:"); n=Convert.ToInt32(Console.ReadLine()); if ((n>=1) & (n<=100)) { Console.WriteLine("The power n" + " of x is {0}", Power(x,n)); Console.ReadLine(); } else { Console.WriteLine("Error : n " + "must be in [1..100]"); Console.ReadLine(); } } else { Console.WriteLine("Error : x " + "must be in [0..999]"); Console.ReadLine(); } } catch (Exception e) { Console.WriteLine("Error : Please enter " + "a numeric argument."); Console.ReadLine(); } }Пример 2.5. Другой пример вычисления степени числа
#include <stdio.h> double Power(int x, int n) { int z=1; int i; for (i=1;n>=i;i++) { z = z*x; } return z; } void main(void) { int x; int n; printf("Enter x:"); if(scanf("%d",&x)) { if ((x>=0) & (x<=999)) { printf("Enter n:"); if(scanf("%d",&n)) { if ((n>=1) & (n<=100)) { printf("The power n of x is %f\n", Power(x,n)); } else { printf("Error : n must be in [1..100]\n"); } } else { printf("Error : Please enter a numeric argument\n"); } } else { printf("Error : x must be in [0..999]\n"); } } else { printf("Error : Please enter a numeric argument\n"); } }2.5.1. Другой пример вычисления степени числа
Для приведенной программы, вычисляющей степень числа (Пример 2.5), воспроизведем последовательность действий, необходимых для тестирования.
Спецификация программы
На вход программа принимает два параметра: x - число, n – степень. Результат вычисления выводится на консоль.
Значения числа и степени должны быть целыми.
Значения числа, возводимого в степень, должны лежать в диапазоне – [0..999].
Значения степени должны лежать в диапазоне – [1..100].
Если числа, подаваемые на вход, лежат за пределами указанных диапазонов, то должно выдаваться сообщение об ошибке.
Разработка тестов
Определим области эквивалентности входных параметров.
Для x – числа, возводимого в степень, определим классы возможных значений:
- x < 0 (ошибочное)
- x > 999 (ошибочное)
- x - не число (ошибочное)
-
0 <= x <= 999 (корректное)
Для n – степени числа:
- n < 1 (ошибочное)
- n > 100 (ошибочное)
- n - не число (ошибочное)
- 1 <= n <= 100 (корректное)
Анализ тестовых случаев
- Входные значения: (x = 2, n = 3) (покрывают классы 4, 8).
Ожидаемый результат: The power n of x is 8.
- Входные значения: {(x = -1, n = 2),(x = 1000, n = 5)} (покрывают классы 1, 2).
Ожидаемый результат: Error : x must be in [0..999].
- Входные значения: {(x = 100, n = 0),(x = 100, n = 200)} (покрывают классы 5,6).
Ожидаемый результат: Error : n must be in [1..100].
- Входные значения: (x = ADS n = ASD) (покрывают классы эквивалентности 3, 7).
Ожидаемый результат: Error : Please enter a numeric argument.
- Проверка на граничные значения:
- Входные значения: (x = 999, n = 1).
Ожидаемый результат: The power n of x is 999.
- Входные значения: (x = 0, n = 100).
Ожидаемый результат: The power n of x is 0.
- Входные значения: (x = 999, n = 1).
Выполнение тестовых случаев
Запустим программу с заданными значениями аргументов.
Оценка результатов выполнения программы на тестах
В процессе тестирования Оракул последовательно получает элементы множества (X,Y) и соответствующие им результаты вычислений YВ. В процессе тестирования производится оценка результатов выполнения путем сравнения получаемого результата с ожидаемым.