01.Алгоритмы тестирование.ppt
- Количество слайдов: 12
Алгоритмы и программы Основные свойства алгоритма : 1) массовость – способность алгоритма решить любую задачу из заданного множества задач; 2) конечность или завершимость – способность алгоритма останав ливаться после выполнения некоторого количества действий при любых входных данных; 3) результативность – способность алгоритма получать требуемый результат на выходе; 2) наличие внутренней структуры, понимаемой как совокупность отдельных правил (действий) и порядок их выполнения; 3) существование исполнителя.
Трансляция и исполнение программы
Исчерпывающее тестирование программы Тест (p, q): экземпляр входных данных p и соответствующие ему выходные данные q, необходимые для проверки правильности результата вычислений Пример: программа умножения двух 10 значных неотрицательных десятичных чисел. Количество различных пар сомножителей – 1020. Для каждой пары сомножителей – произведение При 109 проверках в секунду для полного тестирования потребуется более трех тысяч лет! Закон Э. Дейкстры: «Тестированием можно доказать наличие ошибок в программе, но никогда – их отсутствие» .
Тестирование методом черного ящика Множество входов I, область входов P. Множество выходов O, область выходов Q. 1) разбиение области входов P на подобласти эквивалентности Pi и для каждой из подобластей Pi выбор какого-либо принадлежащего ей варианта входных данных ti. Для ti определяется вариант выходных данных qi; 2) разбиение области выходов Q на подобласти эквивалентности Qj, для каждой из подобластей Qj выбор какого-либо принадлежащего ей варианта выходных данных qj и соответствующего ему варианта входных данных tj; 3) тесты tk на границах области входов; 4) тесты tk внутри множества входов, но вне области входов.
Пример 1 Программа вычисления площади треугольника по заданным на его входе длинам трех сторон a, b и c. Тесты на границах области входов и вне области входов: 1) a ≤ 0; 2) b ≤ 0, a > 0; 3) c ≤ 0, a > 0, b > 0; 4) a > 0, b > 0, c ≥ a + b; 5) a > 0, c > 0, b ≥ a + c; 6) b > 0, c > 0, a ≥ b + c. Равносторонние треугольники: 7) a = b = c. Равнобедренные треугольники: 8) a = b ≠ c; 9) a ≠ b = c; 10) a = c ≠ b. Среди оставшихся видов треугольников можно выделить прямоугольные: 11) a 2 = b 2 + c 2; 12) b 2 = a 2 + c 2; 13) c 2 = a 2 + b 2; тупоугольные: 14) a 2 > b 2 + c 2; 15) b 2 > a 2 + c 2; 16) c 2 > a 2 + b 2; остроугольные треугольники: 17) a 2 < b 2 + c 2, b 2 < a 2 + c 2, c 2 < a 2 + b 2.
Пример 2 Программа упорядочения числового массива. На ее вход подается количество элементов массива n и значения самих элементов массива X : X [1], X [2], …, X [n]. Должно быть задано максимально возможное количество элементов в массиве nмакс. Подобласти с недопустимыми значениями на входе программы: 1) пустой массив, когда n ≤ 0; 2) n > nмакс. Остальные подобласти определяются при n ≥ 1. 3) значения всех элементов в массиве X равны между собой; 4) все значения массива X различны: нет ни одной пары одинаковых элементов; 5) количество разных значений массива X меньше n, т. е. элементы массива образуют несколько групп с равными внутри группы значениями; 6) массив X упорядочен по возрастанию; 7) массив X упорядочен по убыванию; 8) число элементов в массиве n = nмакс, нужна программа генерации входного массива и программа проверки правильности результата.
Тестирование методом белого ящика begin A; B end - 1 тест if E then A else B 1) 2 теста: E = истина, 2) E = ложь while E do A n тестов: 1) E = ложь; 2) 1 раз: E = истина; E = ложь; 3) 2 раза: E = истина; E = ложь; . . .
Вложенные конструкции if E 1 then begin if E 2 then A 1 else A 2 end else begin if E 3 then B 1 else B 2 end ___________ while E 1 do begin if E 2 then A else B end ___________ Сложные условия из k логических переменных. ____________ (a > 1) and (b = 3) or (c<10) 4 теста: 1) Е 1 = истина, А 1 = истина; 2) Е 1 = истина, А 1 = ложь; 3) Е 1 = ложь, А 1 = истина; 4) Е 1 = ложь, А 1 = ложь. _____________ Для проверки n выполнений цикла необходимо 2 n тестов (все возможные варианты значений Е 2 на разных шагах цикла) _____________ Число тестов: 2 k _____________ Число тестов: 23 = 8
Пример 3 Программа вычисления площади треугольника по заданным на его входе длинам трех сторон a, b и c. S: =0; if (a>0) and (b>0) and (c>0) then begin p: =(a+b+c)/2; if (p>a) and (p>b) and (p>c) then S: =sqrt(p*(p-a)*(p-b)*(p-c)) end Тесты: 1) a=0, b=1, c=1; S=0; 4) a=2, b=1, c=1; S=0; 2) a=1, b=0, c=1; S=0; 5) a=1, b=2, c=1; S=0; 3) a=1, b=1, c=0; S=0; 6) a=1, b=1, c=2; S=0; 7) a=3, b=4, c=5; S=6; ____________________________ p: =(a+b+c)/2; S: =sqrt(p*(p-a)*(p-b)*(p-c))
Пример 4 Программа упорядочения числового массива. На вход подается количество элементов массива n и значения самих элементов массива X : X [1], X [2], …, X [n]. i: =1; while i
ПРИНЦИПЫ ТЕСТИРОВАНИЯ И ОТЛАДКИ • Цель отладки: локализовать зафиксированную при тестировании ошибку и исправить ее. • Начинать тестирование следует с простых тестов (малой размерности). • После исправления ошибки – повторить все ранее пройденные тесты. • Если ошибка зафиксирована при выполнении теста большой размерности, надо подобрать такой тест малой размерности, при выполнении которого происходит такая же ошибка. • Пошаговое исполнение выполняется для простых тестов.
ТЕСТИРОВАНИЕ ВРЕМЕНИ ИСПОЛНЕНИЯ Структура программы: 1. Ввод размерности входных данных. 2. Генерация данных. 3. Отсчет текущего времени. 4. Тестируемый алгоритм. 5. Отсчет текущего времени. 6. Проверка результата. 7. Вычисление и вывод чистого времени исполнения.


