Міністерство Освіти і Науки, Молоді та Спорту України
Черкаського державного технічного університету
Кафедри програмного забезпечення автоматизованих систем
ЗВІТ
з лабораторної роботи № 1
з дисципліни: Якісне програмне забезпечення систем
На тему: Розробка тестів для перевірки програми
Перевірила: Дробот І. В. «__» _________ 20__ р. |
Виконав: студент групи ПЗС-119 Бутко С.М. |
Черкаси-2011 р.
Тема: Розробка тестів для перевірки програми.
Мета: Навчитися складати тести для перевірки програми.
Завдання
Скласти набір тестів для перевірки програми, за допомогою якої вирішується запропоноване завдання.
Варіант №2
Хід роботи
Складаю програму, яка обчислює значення функції згідно до завдання.
Складаю специфікацію програми та даних.
Специфікація програми:
Назва завдання:
числова функція
Назва програми:
обчислення функції
Система програмування:
Delphi 7.0
Системні вимоги:
IBM PC/AT 286 і вище
Специфікація вхідних даних програми:
Вхідні дані: На вхід програма приймає 3 параметри: x, a, b – параметри функції (дійсні числа). Значення числа х, набуває будь якого значення. Якщо число х, набуває значення більше -1 то значення у розраховується за першою формулою, а якщо буде рівне або менше -1 то значення у розраховується за другою формулою. Вихідні дані: Вихідними даними програми є обчислене значення функції y (дійсне число). Результат обчислення виводиться на консоль. |
Визначаю області еквівалентності вхідних параметрів:
Для х
Для а
Для b
-1<x<0 (Помилкове)
При x>-1 х=-0,9..-0,1 (Помилкове)
x- не правильнее число (Помилкове)
При х>-1, x=1 a=-1 (Помилкове)
а - не правильнее число (Помилкове)
При х<=-1 b=0 (Помилкове)
b - не правильнее число (Помилкове)
Виконую для програми аналіз тестових випадків:
Очікуваний результат: у=0.333333333333333
Очікуваний результат: Помилка обрахунку! Введено неправильні арифметичні дані. Добуток (a*x) не повинен бути рівним -1.
Очікуваний результат: Помилка обрахунку! Введено неправильні арифметичні дані. У формулі корінь(х) х не повинен знаходитися між -0,9.. 0 та бути рівним 0.
Очікуваний результат: у=-0,274653072167027
Очікуваний результат: Помилка обрахунку! Введено неправильні арифметичні дані. Знаменник добутку змінних (b*x) не повинен дорівнювати 0. Введіть не нульове значення змінних. |
Складаю набір тестів, направлених на виявлення всіх можливих помилок обчислень:
№ тесту |
Значення параметрів |
Опис ситуації |
Результат |
|||||
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". |
Код програми:
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.
Результати роботи програми:
Висновок: на даній роботі на практичних навичка навчився складати тести для перевірки правильності роботи програми.
©ПЗС-119 Бутко С.М.