1. Классификация методов тестирования
- По объекту тестирования:
- тестирование на основе требований – призвано проверить, все ли требования к программному обеспечению выполнены;
- структурное тестирование – призвано проверить, все ли блоки программы функционируют надлежащим образом;
- статистическое тестирование – призвано проверить, как долго может выполняться программа, какое количество запросов может быть обработано и т.п.;
- тестирование, ориентированное на риски – позволяет удостовериться в том, что основные ситуации, связанные с рисками (неверные данные, безопасность и т.п.), обрабатываются должным образом.
- По знанию системы:
- тестирование белого ящика – тестирование, при котором тестировщик имеет доступ к исходному коду программного обеспечения;
- тестирование чёрного ящика – тестирование, при котором тестировщик не имеет доступа к исходному коду программного обеспечения.
- По степени автоматизированности:
- ручное тестирование;
- полуавтоматизированное тестирование;
- автоматизированное тестирование.
- По степени изолированности компонентов:
- модульное тестирование – тестируется минимально возможный компонент: класс или подпрограмма;
- интеграционное тестирование – тестируются интерфейсы между компонентами;
- системное тестирование – тестируется вся система в совокупности.
- По методу тестирования:
- статическое тестирование – программный код не выполняется, а анализ программы происходит на основе исходного кода, который вычитывается вручную, либо анализируется специальными инструментами;
- динамическое тестирование – код программы выполняется.
Существует также так называемое регрессионное тестирование, при котором после внесения изменений в программу, подтверждается, что сделанные изменения не повлияли на работоспособность остальной функциональности приложения.
2. Пример
Рассмотрим следующую постановку задачи: задан целочисленный одномерный массив a из n элементов; найти номер последнего минимального элемента среди положительных элементов, начиная с первого элемента, большего t; если нет элементов больших t, искать с начала массива. Необходимо разработать набор тестовых примеров для полного тестирования программы (курсивом ниже выделены не обобщённые, а окончательные ситуации, для которых необходимо писать конкретные тестовые примеры).
- Есть элемент, больший t
- Есть положительные элементы
- Все положительные элементы расположены до элемента, большего t
- Не все положительные элементы расположены до элемента, большего t
- Номер первого положительного элемента меньше номера элемента, большего t
- Положительный элемент, расположенный до элемента, большего t, минимален
- Второй «по минимальности» элемент один
- минимальный элемент расположен первым
- минимальный элемент расположен в середине
- минимальный элемент расположен последним
- Второй «по минимальности» элемент не один
- один минимальный элемент расположен первым
- все минимальные элементы расположены в середине
- один минимальный элемент расположен последним
- Положительный элемент, расположенный до элемента, большего t, не является минимальным
- Минимальный элемент один
- минимальный элемент расположен первым
- минимальный элемент расположен в середине
- минимальный элемент расположен последним
- Минимальных элементов несколько
- один минимальный элемент расположен первым
- все минимальные элементы расположены в середине
- один минимальный элемент расположен последним
- Номер первого положительного элемента равен номеру элемента, большего t
- Минимальный элемент один
- минимальный элемент расположен первым
- минимальный элемент расположен в середине
- минимальный элемент расположен последним
- Минимальных элементов несколько
- один минимальный элемент расположен первым
- все минимальные элементы расположены в середине
- один минимальный элемент расположен последним
- Номер первого положительного элемента больше номера элемента, большего t
- Минимальный элемент один
- минимальный элемент расположен первым
- минимальный элемент расположен в середине
- минимальный элемент расположен последним
- Минимальных элементов несколько
- один минимальный элемент расположен первым
- все минимальные элементы расположены в середине
- один минимальный элемент расположен последним
- Нет положительных элементов
- Нет элемента, большего t
- Нет положительных элементов
- Есть положительные элементы
- Минимальный элемент один
- минимальный элемент расположен первым
- минимальный элемент расположен в середине
- минимальный элемент расположен последним
- Минимальных элементов несколько
- один минимальный элемент расположен первым
- все минимальные элементы расположены в середине
- один минимальный элемент расположен последним
Общее количество необходимых тестовых примеров – 33.
Задание. Разработайте тестовые примеры для некоторых из вышеперечисленных ситуаций. Не забывайте определять ожидаемый результат.
Задание. Проверьте правильность приведённой программы с помощью метода ручной прокрутки. Если есть ошибки, постарайтесь их найти.
program Sort;
const
nmax = 100;
type
mas = array [1..nmax] of real;
var
x: mas;
y: real;
n, i, j: integer;
begin
write('введите количество элементов массива: '); readln(n);
writeln('Введите массив');
for i := 1 to n do
readln(x[i]);
for i := 1 to n do
write(x[i]:8:2, ' ');
writeln;
for i := 2 to n do
begin
y := x[i];
j := i - 1;
while (j > 1) and (x[j] > y) do
begin
x[j + 1] := x[j];
j := j - 1;
end;
x[j] := y;
end;
for i := 1 to n do
write(x[i]:8:2, ' ');
writeln;
end.