Скачать презентацию Алгоритмы и программы Основные свойства алгоритма 1 Скачать презентацию Алгоритмы и программы Основные свойства алгоритма 1

01.Алгоритмы тестирование.ppt

  • Количество слайдов: 12

Алгоритмы и программы Основные свойства алгоритма : 1) массовость – способность алгоритма решить любую Алгоритмы и программы Основные свойства алгоритма : 1) массовость – способность алгоритма решить любую задачу из заданного множества задач; 2) конечность или завершимость – способность алгоритма останав ливаться после выполнения некоторого количества действий при любых входных данных; 3) результативность – способность алгоритма получать требуемый результат на выходе; 2) наличие внутренней структуры, понимаемой как совокупность отдельных правил (действий) и порядок их выполнения; 3) существование исполнителя.

Трансляция и исполнение программы Трансляция и исполнение программы

Исчерпывающее тестирование программы Тест (p, q): экземпляр входных данных p и соответствующие ему выходные Исчерпывающее тестирование программы Тест (p, q): экземпляр входных данных p и соответствующие ему выходные данные q, необходимые для проверки правильности результата вычислений Пример: программа умножения двух 10 значных неотрицательных десятичных чисел. Количество различных пар сомножителей – 1020. Для каждой пары сомножителей – произведение При 109 проверках в секунду для полного тестирования потребуется более трех тысяч лет! Закон Э. Дейкстры: «Тестированием можно доказать наличие ошибок в программе, но никогда – их отсутствие» .

Тестирование методом черного ящика Множество входов I, область входов P. Множество выходов O, область Тестирование методом черного ящика Множество входов I, область входов P. Множество выходов O, область выходов Q. 1) разбиение области входов P на подобласти эквивалентности Pi и для каждой из подобластей Pi выбор какого-либо принадлежащего ей варианта входных данных ti. Для ti определяется вариант выходных данных qi; 2) разбиение области выходов Q на подобласти эквивалентности Qj, для каждой из подобластей Qj выбор какого-либо принадлежащего ей варианта выходных данных qj и соответствующего ему варианта входных данных tj; 3) тесты tk на границах области входов; 4) тесты tk внутри множества входов, но вне области входов.

Пример 1 Программа вычисления площади треугольника по заданным на его входе длинам трех сторон Пример 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 Пример 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 Тестирование методом белого ящика 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 Вложенные конструкции 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 Программа вычисления площади треугольника по заданным на его входе длинам трех сторон Пример 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 и Пример 4 Программа упорядочения числового массива. На вход подается количество элементов массива n и значения самих элементов массива X : X [1], X [2], …, X [n]. i: =1; while i

ПРИНЦИПЫ ТЕСТИРОВАНИЯ И ОТЛАДКИ • Цель отладки: локализовать зафиксированную при тестировании ошибку и исправить ПРИНЦИПЫ ТЕСТИРОВАНИЯ И ОТЛАДКИ • Цель отладки: локализовать зафиксированную при тестировании ошибку и исправить ее. • Начинать тестирование следует с простых тестов (малой размерности). • После исправления ошибки – повторить все ранее пройденные тесты. • Если ошибка зафиксирована при выполнении теста большой размерности, надо подобрать такой тест малой размерности, при выполнении которого происходит такая же ошибка. • Пошаговое исполнение выполняется для простых тестов.

ТЕСТИРОВАНИЕ ВРЕМЕНИ ИСПОЛНЕНИЯ Структура программы: 1. Ввод размерности входных данных. 2. Генерация данных. 3. ТЕСТИРОВАНИЕ ВРЕМЕНИ ИСПОЛНЕНИЯ Структура программы: 1. Ввод размерности входных данных. 2. Генерация данных. 3. Отсчет текущего времени. 4. Тестируемый алгоритм. 5. Отсчет текущего времени. 6. Проверка результата. 7. Вычисление и вывод чистого времени исполнения.