Мдк. Практическая работа 1 Написание руководства пользователя заданной программы
![]()
|
1 2 Часть 1. Разработка тестовых наборов с использованием метода эквивалентного разбиения 1. Ознакомиться с теоретическими сведениями по стратегиям тестирования. 2. В соответствии с вариантом, подготовить исчерпывающие тесты с использованием метода эквивалентного разбиения. 3. Выполнить тестирование предложенной программы. 4. Сделать вывод о результативности тестирования с использованием стратегии "черного ящика". 5. При наличии ошибки в программе, сформулировать гипотезу для локализации ошибки. Часть 2. Разработка тестовых наборов с использованием метода анализа граничных условий 1. Ознакомиться с теоретическими сведениями по стратегиям тестирования. 2. В соответствии с вариантом, подготовить исчерпывающие тесты с использованием метода анализа граничных условий. 3. Выполнить тестирование предложенной программы. 4. Сделать вывод о результативности тестирования с использованием стратегии "черного ящика". 5. При наличии ошибки в программе, сформулировать гипотезу для локализации ошибки. 37 37 Часть 3. Разработка тестовых наборов с использованием анализа причинно-следственных связей 1. Ознакомиться с теоретическими сведениями по стратегиям тестирования. 2. В соответствии с вариантом, подготовить исчерпывающие тесты с использованием метода анализа причинно- следственных связей. 3. Выполнить тестирование предложенной программы. 4. Сделать вывод о результативности тестирования с использованием стратегии "черного ящика". 5. При наличии ошибки в программе, сформулировать гипотезу для локализации ошибки. Варианты заданий к практической работе 6 1. Выполнить тестирование программы решения уравнения , где a, b, c - любые вещественные числа. 2.Выполнить тестирование программы определения суммарной длины тени, которую отбрасывают на ось ОХ отрезки, параллельные этой оси и заданные координатами x начала и конца отрезка: 3.Выполнить тестирование программы определения вида треугольника, заданного длинами его сторон: равносторонний, равнобедренный, прямоугольный, разносторонний. 4. Выполнить тестирование программы определения вида четырехугольника, заданного координатами вершин на плоскости: квадрат, прямоугольник, параллелограмм, ромб, равнобедренная трапеция, прямоугольная трапеция, трапеция общего вида, четырехугольник общего вида. 38 38 ПРАКТИЧЕСКАЯ РАБОТА №7 Тестирование по методу «белого ящика» Цель работы приобретение навыков разработки тестовых заданий по методу "белого ящика". Краткие сведения из теории Тестирование по принципу белого ящика характеризуется степенью, какой тесты выполняют или покрывают логику (исходный текст программы). 1. Метод покрытия операторов Целью этого метода тестирования является выполнение каждого оператора программы хотя бы один раз. 2. Метод покрытия решений (покрытия переходов) Более сильный метод тестирования известен как покрытие решений (покрытие переходов). Согласно данному методу каждое направление перехода должно быть реализовано по крайней мере один раз. Покрытие решений обычно удовлетворяет критерию покрытия операторов. Поскольку каждый оператор лежит на некотором пути, исходящем либо из оператора перехода, либо из точки входа программы, при выполнении каждого направления перехода каждый оператор должен быть выполнен. 3. Метод покрытия условий Лучшие результаты по сравнению с предыдущими может дать метод покрытия условий. В этом случае записывается число тестов, достаточное для того, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз. Критерий покрытия решений/условий требует такого достаточного набора тестов, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз, все результаты каждого решения выполнялись по крайней мере один раз и, кроме того, каждой точке входа передавалось управление по крайней мере один раз. 39 39 4. Метод комбинаторного покрытия условий Критерием, который решает эти и некоторые другие проблемы, является комбинаторное покрытие условий. Он требует создания такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении выполнялись по крайней мере один раз. Набор тестов, удовлетворяющих критерию комбинаторного покрытия условий, удовлетворяет также и критериям покрытия решений, покрытия условий и покрытия решений/условий. Задание к работе Часть 1. Разработка тестовых наборов с использованием метода покрытия операторов 1. В соответствии с вариантом составить тесты для проверки программы (приложение 1), используя метод покрытия операторов. Часть 2. Разработка тестовых наборов с использованием метода покрытия решений 1. В соответствии с вариантом составить тесты для проверки программы (приложение 1), используя метод покрытия решений. Часть 3. Разработка тестовых наборов с использованием метода комбинаторного покрытия условий 1. В соответствии с вариантом составить тесты для проверки программы (приложение 1), используя метод комбинаторного покрытия условий. 40 40 Приложение 1 1. Условие задачи Написать программу, в которой с клавиатуры вводятся три целых положительных числа, которые являются сторонами треугольника. На экран выводится сообщение, является ли треугольник неравносторонним, равнобедренным, равносторонним. (Треугольник должен быть правильным, т.е. сумма длин любых двух сторон должна быть больше длины третьей стороны.) Программа должна быть составлена с применением пользовательских процедур и функций. 2. Спецификация программы: Название задачи: треугольник Название программы: triangle Система программирования: Turbo Pascal 7.0 Системные требования: IBM PC/AT 286 и выше Входные данные: Три целых числа – стороны треугольника Выходные данные: Сообщение о виде треугольника. 3. Постановка задачи: Нужно составить программу, которая бы сравнивала каждую пару сторон и, в зависимости от результата, выдавала бы на экран сообщение о тип треугольника. 4. Спецификация переменных: Имя переменной в программе Назначение переменной в программе Тип переменной Диапазон типа a Массив, содержащий длины сторон Array of Integer 32768..32767 каждый i Вспомогательная переменная, счетчик Integer 32768..32767 41 41 5. Текст программы: program triangle; Uses Crt; var a : array [1..3] of integer; i : integer; Procedure valid; begin if (a[1]+a[2]>a[3]) and (a[1]+a[3]>a[2]) and (a[2]+a[3]>a[1]) then begin if (a[1]=a[2]) and (a[1]=a[3]) then WriteLn ('Треугольник равносторонний ') else if (a[1]=a[2]) or (a[1]=a[3]) or (a[2]=a[3]) then WriteLn ('Треугольник равнобедренный') else WriteLn ('Треугольник неравносторонний'); end else WriteLn ('Треугольник неправильный') end; begin ClrScr; WriteLn ('Ввод длин сторон треугольника:'); for i := 1 to 3 do begin WriteLn ('Введите длину ',i,' стороны треугольника :'); Read (a[i]); end; Valid; ReadKey; end. 42 42 Приложение 2 1. Условие задачи Написать программу, в которой находятся корни квадратного уравнения вида ax 2 + bx + c =0. Случай комплексных корней (дискриминант меньше нуля) не рассматривать. Коэффициенты a , b и c вводятся с клавиатуры. Значения корней выводятся на экран. Программа должна быть составлена с применением пользовательских процедур и функций. 2. Спецификация программы: Название задачи: квадратное уравнение Название программы: quadrur Система программирования: Turbo Pascal 7.0 Системные требования: IBM PC/AT 286 и выше Входные данные: Три действительных числа – коэффициенты. Выходные данные: Вычисленные корни уравнения. 3. Постановка задачи: Нужно составить программу, которая бы вычисляла решения квадратного уравнения, если уравнение действительно является квадратными и если имеются действительные корни уравнения. 4. Спецификация переменных: Имя переменной в программе Назначение переменной в программе Тип переменной Диапазон типа a Первый коэффициент уравнения Real 2.9e-39..1.7e38 b Второй коэффициент уравнения Real 2.9e-39..1.7e38 c Третий Real 2.9e-39..1.7e38 43 43 коэффициент уравнения 44 44 5. Текст программы: program quadrur; Uses Crt; var a, b, c: real; procedure Entering; begin Write ('Введите значение a: '); ReadLn (a); Write ('Введите значение b: '); ReadLn (b); Write ('Введите значение c: '); ReadLn (c); end; procedure Entering function Dis:real; begin dis := b*b-4*a*c; end; function Dis function Valid:boolean; begin Valid := true; if a = 0 then begin Writeln ('Уравнение линейное'); Valid := false; end else if Dis < 0 then begin Writeln ('Уравнение не имеет действительных корней'); Valid := false; end; end; function Valid function Results:real; begin WriteLn ('x1 = ',(-b-SQRT(dis))/(2*a):3:6); WriteLn ('x2 = ',(-b+SQRT(dis))/(2*a):3:6); end; function Results 45 45 begin ClrScr; Write ('Решение квадратного уравнения'); WriteLn (' вида ax^2+bx+c=0'); WriteLn; Entering; if Valid = true then Results; ReadKey; end. 46 46 8. Набор тестов (тестирование): Метод покрытия операторов Очевидно, что выполнить все операторы можно, подобрав тестовые значения, при которых будут выполнены все ветви функции Valid , где происходит сравнение с нулем переменной a и функции Dis . Остальные части программы имеют линейную структуру и при выполнении программы будут выполнены в любом случае. Таким образом, подобрав значения переменных, при которых истинны пары условий a = 0, Dis < 0 a = 0, Dis > 0 a ≠'3f 0, Dis < 0 a ≠'3f 0, Dis > 0 , выполним каждый оператор программы. Первую пару можно не рассматривать, т.к. при a = 0 нет смысла переходить к проверке значения дискриминанта, т. е. необходимо провести три теста: Тест 1 Определяет, будет ли выполнен оператор вывода на экран с о общения «Уравнение линейное», когда a = 0 Входные данные: a =0, b =2, c =3 Тест 2 Определяет, будет ли выполнен оператор вывода на экран с о общения «Уравнение не имеет действительных корней», когда a ≠'3f 0, dis < 0 Входные данные: a =3, b =2, c =4 Тест 3 Определяет, будет ли выполнена функция Results , когда a ≠'3f 0, dis > 0 Входные данные: a =2, b =5, c =3 Метод покрытия решений Для того, чтобы каждое решение приняло значение ИСТИНА либо ЛОЖЬ хотя бы один раз, достаточно трех тестов, когда a = 0; a ≠'3f 0, Dis< 0; a ≠'3f 0, Dis > 0: Тест 4 Определяет, будет ли выполнен оператор вывода на экран с о общения 47 47 «Уравнение линейное», когда a = 0 Входные данные: a =0, b =3, c =-2 Тест 5 Определяет, будет ли выполнен оператор вывода на экран с о общения «Уравнение не имеет действительных корней», когда a ≠'3f 0, dis < 0 Входные данные: a =3, b =2, c =1 Тест 6 Определяет, будет ли выполнена функция Results , когда a ≠'3f 0, dis > 0 Входные данные: a =2, b =4, c =1 9. Ошибки: Тест 1: выявляет ошибку, когда при введенном a =0 вычисления производятся далее. Тест 2: выявляет ошибку, когда при значении Dis < 0 вычисления производятся далее. Тест 3: выявляет ошибку, когда при значениях a ≠'3f0, Dis > 0 вычисления далее не производятся. Тест 4: выявляет ошибку, когда при введенном a =0 вычисления производятся далее. Тест 5: выявляет ошибку, когда при значении Dis < 0 вычисления про изводятся далее. Тест 6: выявляет ошибку, когда при значениях a ≠'3f0, Dis > 0 функция Valid не возвращает значение true и вычисления далее не производятся. 1 2 |