Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна№1(mod).doc
Скачиваний:
1
Добавлен:
20.09.2019
Размер:
236.54 Кб
Скачать

Міністерство Освіти і Науки, Молоді та Спорту України

Черкаського державного технічного університету

Кафедри програмного забезпечення автоматизованих систем

ЗВІТ

з лабораторної роботи № 1

з дисципліни: Якісне програмне забезпечення систем

На тему: Розробка тестів для перевірки програми

Перевірила:

Дробот І. В.

«__» _________ 20__ р.

Виконав:

студент групи ПЗС-119

Бутко С.М.

Черкаси-2011 р.

Тема: Розробка тестів для перевірки програми.

Мета: Навчитися складати тести для перевірки програми.

Завдання

  1. Скласти набір тестів для перевірки програми, за допомогою якої вирішується запропоноване завдання.

Варіант №2

Хід роботи

  1. Складаю програму, яка обчислює значення функції згідно до завдання.

  2. Складаю специфікацію програми та даних.

  • Специфікація програми:

    Назва завдання:

    числова функція

    Назва програми:

    обчислення функції

    Система програмування:

    Delphi 7.0

    Системні вимоги:

    IBM PC/AT 286 і вище

  • Специфікація вхідних даних програми:

Вхідні дані:

На вхід програма приймає 3 параметри:

x, a, b – параметри функції (дійсні числа).

Значення числа х, набуває будь якого значення.

Якщо число х, набуває значення більше -1 то значення у розраховується за першою формулою, а якщо буде рівне або менше -1 то значення у розраховується за другою формулою.

Вихідні дані:

Вихідними даними програми є обчислене значення функції y (дійсне число).

Результат обчислення виводиться на консоль.

  1. Визначаю області еквівалентності вхідних параметрів:

    Для х

    Для а

    Для b

    -1<x<0 (Помилкове)

    При x>-1 х=-0,9..-0,1 (Помилкове)

    x- не правильнее число (Помилкове)

    При х>-1, x=1 a=-1 (Помилкове)

    а - не правильнее число (Помилкове)

    При х<=-1 b=0 (Помилкове)

    b - не правильнее число (Помилкове)

  2. Виконую для програми аналіз тестових випадків:

  1. Вхідні значення: х=1 a=2 b=2

Очікуваний результат: у=0.333333333333333

  1. Вхідні значення: х=1 а=1 b=2

Очікуваний результат: Помилка обрахунку!

Введено неправильні арифметичні дані.

Добуток (a*x) не повинен бути рівним -1.

  1. Вхідні значення: х=-0,9 а=2 b=2

Очікуваний результат: Помилка обрахунку!

Введено неправильні арифметичні дані.

У формулі корінь(х) х не повинен знаходитися між -0,9.. 0 та бути рівним 0.

  1. Вхідні значення: x=-2 a=2 b=2

Очікуваний результат: у=-0,274653072167027

  1. Вхідні значення: x=-2 a=5 b=0

Очікуваний результат: Помилка обрахунку!

Введено неправильні арифметичні дані.

Знаменник добутку змінних (b*x) не повинен дорівнювати 0.

Введіть не нульове значення змінних.

  1. Складаю набір тестів, направлених на виявлення всіх можливих помилок обчислень:

№ тесту

Значення параметрів

Опис ситуації

Результат

x

a

b

Тип

Повідомлення

1

1

-1

2

Ділення на 0

x

Помилка обрахунку!

Введено неправильні арифметичні дані.

Добуток (a*x) не повинен бути рівним -1.

2

0.5

-2

2

Ділення на 0

х

Помилка обрахунку!

Введено неправильні арифметичні дані.

Добуток (a*x) не повинен бути рівним -1.

3

0

2

5

Корінь з нуля

х

Помилка обрахунку!

Введено неправильні арифметичні дані.

У формулі корінь(х) х не повинен знаходитися між -0,9..0 і бути рівним 0.

4

-0,9

2

5

Корінь з від’ємного числа

х

Помилка обрахунку!

Введено неправильні арифметичні дані.

У формулі корінь(х) х не повинен знаходитися між -0,9..0 і бути рівним 0.

5

-5

2

0

Ділення на нуль

х

Помилка обрахунку!

Введено неправильні арифметичні дані.

Знаменник добутку змінних (b*x) не повинен дорівнювати 0.

Введіть не нульове значення змінних.

6

-2

2

0

Ділення на нуль

х

Помилка обрахунку!

Введено неправильні арифметичні дані.

Знаменник добутку змінних (b*x) не повинен дорівнювати 0.

Введіть не нульове значення змінних.

7

«-»

2

0

Не ведене або помилково ведення змінна х

х

Помилка введення даних в поле змінної "х"!

Введено дані не числового формату або зовсім нічого не введено.

Введіть правильні дані в поле введення змінної "x".

8

8

«-»

2

Не ведене або помилково ведення змінна х

х

Помилка введення даних в поле змінної "а"!

Введено дані не числового формату або зовсім нічого не введено.

Введіть правильні дані в поле введення змінної " a ".

9

8

0

«-»

Не ведене або помилково ведення змінна а

х

Помилка введення даних в поле змінної "а"!

Введено дані не числового формату або зовсім нічого не введено.

Введіть правильні дані в поле введення змінної "b".

  1. Код програми:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, jpeg, ExtCtrls;

type

TForm1 = class(TForm)

lbl1: TLabel;

img1: TImage;

lbl2: TLabel;

lbl3: TLabel;

lbl4: TLabel;

lbl5: TLabel;

edt1: TEdit;

edt2: TEdit;

edt3: TEdit;

lbl6: TLabel;

lbl7: TLabel;

btn1: TButton;

procedure btn1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure edt1Change(Sender: TObject);

procedure edt2Change(Sender: TObject);

procedure edt3Change(Sender: TObject);

procedure edt1KeyPress(Sender: TObject; var Key: Char);

procedure edt2KeyPress(Sender: TObject; var Key: Char);

procedure edt3KeyPress(Sender: TObject; var Key: Char);

procedure edt1Click(Sender: TObject);

procedure edt2Click(Sender: TObject);

procedure edt3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

y,x,a,b:Real;

error:Boolean;

implementation

uses Math;

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);

begin

error:=True;

Try

x:=StrToFloat(Edt1.Text);

except

MessageBox(0,'Помилка введення даних в поле змінної "х"!'+#13+#10+#13+'Введено дані не числового формату або зовсім нічого не введено.'+#13+#10+'Введіть правильні дані в поле введення змінної "x".','Помилка введення.',MB_OK or MB_ICONHAND);

error:=False;

end;

try

a:=StrToFloat(Edt2.Text);

except

MessageBox(0,'Помилка введення даних в поле змінної "а"!'+#13+#10+#13+'Введені дані не числового формату або зовсім нічого не введено.'+#13+#10+'Введіть правильні дані в поле введення змінної "a".','Помилка введення.',MB_OK or MB_ICONHAND);

error:=False;

end;

try

b:=StrToFloat(Edt3.Text);

except

MessageBox(0,'Помилка введення даних в поле змінної "b"!'+#13+#10+#13+'Введено дані не числового формату або зовсім нічого не введено.'+#13+#10+'Введіть правильні дані в поле введення змінної "b".','Помилка введення.',MB_OK or MB_ICONHAND);

error:=False;

end;

If (error)

then

begin

if (x>-1) //Перевірка чи будуть розраховуватися дані за першою формулою

then

begin

if (x>-1)and(x<=0)

then

Begin

MessageBox(0,'Помилка обрахунку!'+#13+#10+#13+'Введено неправильні арифметичні дані.'+#13+#10+'У формулі корінь(x) "х" не повинен знаходитися між -0,9..0 і бути рівним 0.','Помилка обрахунку.',MB_OK or MB_ICONHAND);

error:=False;

end;

if ((a*x)=-1)

then

Begin

MessageBox(0,'Помилка обрахунку!'+#13+#10+#13+'Введено неправильні арифметичні дані.'+#13+#10+'Добуток (а*х) не повинен бути рівним -1.','Помилка обрахунку.',MB_OK or MB_ICONHAND);

error:=False;

end;

end

else

if (x<=-1) //Перевірка чи будуть розраховуватися дані за другою формулою

then

begin

if ((b*x)=0)

then

begin

MessageBox(0,'Помилка обрахунку!'+#13+#10+#13+'Введено неправильні арифметичні дані.'+#13+#10+'Знаменник добутку змінних (b*x) не повинен дорівнювати 0.'+#13+#10+'Введіть не нульове значення змінних.','Помилка обрахунку.',MB_OK or MB_ICONHAND);

Error:=False;

end; end; end

else

Lbl7.Caption:='Помилка введення зміних!';

If (error)

then

begin

if (x>-1)

then

begin

y:=Sqrt(x)/((a*x)+1);

Lbl7.Caption:='y = '+FloatToStr(y);

end

else

if (x<=-1)

then

begin

y:=(ln(1-x))/(b*x);

Lbl7.Caption:='y = '+FloatToStr(y);

end;

end

else

Lbl7.Caption:='Помилка введення зміних!';

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Edt1.Clear;

Edt2.Clear;

Edt3.Clear;

Lbl7.Caption:='';

Error:=true;

end;

procedure TForm1.edt1Change(Sender: TObject);

begin

Lbl7.Caption:='';

end;

procedure TForm1.edt2Change(Sender: TObject);

begin

Lbl7.Caption:='';

end;

procedure TForm1.edt3Change(Sender: TObject);

begin

Lbl7.Caption:='';

end;

procedure TForm1.edt1KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9',',','-']) then key:=#0;

end;

procedure TForm1.edt2KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9',',','-']) then key:=#0;

end;

procedure TForm1.edt3KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9',',','-']) then key:=#0;

end;

procedure TForm1.edt1Click(Sender: TObject);

begin

Edt1.SelectAll;

end;

procedure TForm1.edt2Click(Sender: TObject);

begin

Edt2.SelectAll;

end;

procedure TForm1.edt3Click(Sender: TObject);

begin

Edt3.SelectAll;

end;

end.

  1. Результати роботи програми:

Висновок: на даній роботі на практичних навичка навчився складати тести для перевірки правильності роботи програми.

©ПЗС-119 Бутко С.М.