Просмотр содержимого документа
«Последовательность действий при тестировании»
Последовательность действий при тестировании
Программа – это аналог формулы в обычной математике.
Формула для функции f, полученной суперпозицией функций f1, f2, ... fn – выражение , описывающее эту суперпозицию .
f = f1* f2* f3*... * fn
Если аналог f1,f2,... fn – операторы языка программирования, то их формула – программа .
Существует два метода обоснования истинности формул :
Формальный подход или доказательство
Применяется, когда из исходных формул-аксиом с помощью формальных процедур (правил вывода) выводятся искомые формулы и утверждения (теоремы).
R, A*R - R, A*R - R Преимущество формального подхода: с его помощью удается избегать обращений к бесконечной области значений и на каждом шаге доказательства оперировать только конечным множеством символов. Интерпретационный подход применяется, когда осуществляется подстановка констант в формулы, а затем интерпретация формул как осмысленных утверждений в элементах множеств конкретных значений. " width="640"
Вывод осуществляется путем перехода от одних формул к другим по строгим правилам, которые позволяют свести процедуру перехода от формулы к формуле к последовательности текстовых подстановок:
A**3 = A*A*A A*A*A = A - R, A*R - R, A*R - R
Преимущество формального подхода:
с его помощью удается избегать обращений к бесконечной области значений и на каждом шаге доказательства оперировать только конечным множеством символов.
Интерпретационный подход применяется, когда осуществляется подстановка констант в формулы, а затем интерпретация формул как осмысленных утверждений в элементах множеств конкретных значений.
Сложность подхода состоит в том, что на конечных множествах комбинации возможных значений для реализации исчерпывающей проверки могут оказаться достаточно велики. Интерпретационный подход используется при экспериментальной проверке соответствия программы своей спецификации
Применение интерпретационного подхода в форме экспериментов над исполняемой программой составляет суть отладки и тестирования .
- Отладка (debug, debugging) – процесс поиска, локализации и исправления ошибок в программе.
- Термин " отладка " в отечественной литературе используется двояко: для обозначения активности по поиску ошибок (собственно тестирование ), по нахождению причин их появления и исправлению, или активности по локализации и исправлению ошибок.
- Тестирование обеспечивает выявление наличия фактов расхождений с требованиями (ошибок).
- На фазе тестирования осуществляется исправление идентифицированных ошибок, включающее локализацию ошибок, нахождение причин ошибок и соответствующую корректировку программы тестируемого приложения.
- Тестирование разделяют на статическое и динамическое:
- Статическое тестирование выявляет формальными методами анализа без выполнения тестируемой программы неверные конструкции или неверные отношения объектов программы (ошибки формального задания) с помощью специальных инструментов контроля кода – CodeChecker.
- Динамическое тестирование (собственно тестирование ) осуществляет выявление ошибок только на выполняющейся программе с помощью специальных инструментов автоматизации тестирования – Testbed или Testbench.
=i;i++) { z = z*x; } return z; } void main(void) { int x; int n; printf("Enter x:"); " width="640"
Пример вычисления степени числа
#include
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:");
=0) & (x{ printf("Enter n:"); if(scanf("%d",&n)) { if ((n=1) & (n{ printf("The power n of x is %f\n", Power(x,n)); } else { printf("Error : n must be in [1..100]\n"); } } " width="640"
if(scanf("%d",&x))
{
if ((x=0) & (x
{
printf("Enter n:");
if(scanf("%d",&n))
{
if ((n=1) & (n
{
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].
- Если числа, подаваемые на вход, лежат за пределами указанных диапазонов, то должно выдаваться сообщение об ошибке.
999 (ошибочное) x - не число (ошибочное) 0 n n 100 (ошибочное) n - не число (ошибочное) 1 Анализ тестовых случаев Входные значения: (x = 2, n = 3) (покрывают классы 4, 8).Ожидаемый результат: The power n of x is 8. " width="640"
Разработка тестов
- Определим области эквивалентности входных параметров.
- Для x – числа, возводимого в степень, определим классы возможных значений:
- x
- x 999 (ошибочное)
- x - не число (ошибочное)
- 0
- n
- n 100 (ошибочное)
- n - не число (ошибочное)
- 1
Анализ тестовых случаев
- Входные значения: (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).Ожидаемый результат: The power n of x is 999.
- Входные значения: (x = 0, n = 100).Ожидаемый результат: The power n of x is 0.
Выполнение тестовых случаев
- Запустим программу с заданными значениями аргументов.
Оценка результатов выполнения программы на тестах
- В процессе тестирования производится оценка результатов выполнения путем сравнения получаемого результата с ожидаемым.