Основы тестирования программного обеспечения

         

Сквозной пример тестирования


Возьмем несколько отличающуюся от Пример 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 – числа, возводимого в степень, определим классы возможных значений:

  1. x < 0 (ошибочное)
  2. x > 999 (ошибочное)
  3. x - не число (ошибочное)
  4. 0 <= x <= 999(корректное)Для n – степени числа:

  5. n < 1 (ошибочное)
  6. n > 100 (ошибочное)
  7. n - не число (ошибочное)
  8. 1 <= n <= 100 (корректное)
Анализ тестовых случаев

  1. Входные значения: (x = 2, n = 3) (покрывают классы 4, 8).Ожидаемый результат: The power n of x is 8.

  2. Входные значения: {(x = -1, n = 2),(x = 1000, n = 5 )} (покрывают классы 1, 2).Ожидаемый результат: Error : x must be in [0..999].

  3. Входные значения: {(x = 100, n = 0),(x = 100, n = 200)} (покрывают классы 5,6).Ожидаемый результат: Error : n must be in [1..100].

  4. Входные значения:(x = ADS n = ASD) (покрывают классы эквивалентности 3, 7).Ожидаемый результат: Error : Please enter a numeric argument.

  5. Проверка на граничные значения:
    1. Входные значения: (x = 999 n = 1).Ожидаемый результат: The power n of x is 999.

    2. Входные значения: x = 0 n = 100.Ожидаемый результат: The power n of x is 0.

Выполнение тестовых случаев

Запустим программу с заданными значениями аргументов.

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

В процессе тестирования Оракул последовательно получает элементы множества (X,Y) и соответствующие им результаты вычислений YВ. В процессе тестирования производится оценка результатов выполнения путем сравнения получаемого результата с ожидаемым.


Содержание раздела