- •Тестування програмних систем і комплексів
- •ПЛАН
- •Концепція тестування
- •Визначення
- •Приклад
- •Скоректований вихідний текст
- •Види тестування
- •Оракул
- •Аналіз протоколу проміжних обчислень
- •Визначення
- •Керуючий граф програми
- •// Метод обчислює ненегативну ступінь n числа x double PowerNonNeg(double x, int n)
- •Програма для тестування
- •Тестування
- •Специфікація програми
- •Області еквівалентності вхідних параметрів.
- •Аналіз тестових випадків
- •Перевірка на граничні значення
- •Фази тестування
Керуючий граф програми
// Метод обчислює ненегативну ступінь n числа x 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;
}
Програма для тестування
#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"); } }
Тестування
•Процес виконання програми в умовах аналізу або запису одержуваних результатів з метою перевірки деяких властивостей тестованого об'єкта.
•Процес аналізу пункту вимог до ПЗ з метою фіксації розходжень між існуючим станом ПЗ й необхідним.
•Контрольоване виконання програми на кінцевій множині тестових даних й аналіз результатів цього виконання для пошуку помилок.
Специфікація програми
•На вхід програма приймає два параметри: 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).
–Очікуваний результат: The power n of x is 8.
•Вхідні значення: {(x = -1, n = 2),(x = 1000, n = 5)}.
–Очікуваний результат: Error : x must be in [0..999].
•Вхідні значення: {(x = 100, n = 0),(x = 100, n = 200)}.
–Очікуваний результат: Error : n must be in [1..100].
•Вхідні значення: (x = ADS n = ASD).
–Очікуваний результат: 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.
Фази тестування
•Створення тестового набору (test suite)
•Прогін програми на тестах
•Оцінка результатів виконання
