软件测试实验报告
学 号:
学生姓名:
班 级:
实验题目 黑盒测试方法3
学号 ********** 姓名 *** 班级 ***** 时间 2************
一 实验题目
用黑盒测试方法测试以下程序:
该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。
例如,输入为20##年11月29日,则该程序的输出为20##年12月1日。
二 测试用例及结果
(1)边界值分析法:
(2)决策表方法:
决策表:
M1:{m:m有30天}
M2:{m:m有31天,12月除外}
M3:{m:m有12月}
M4:{m:m是2月}
D1:{ d:1≤d≤27}
D2:{d:d=28}
D3:{ d: d=29}
D4:{ d: d=30}
D5:{ d: d=31}
Y1:{y:y是闰年}
Y2:{y:y不是闰年}
简化后的决策表:
测试用例:
二 实验总结
包括bug的数量,并简要分析错误产生的原因。
附:源程序(C#窗体)
bool leap(int yy)
{
return (yy % 400 == 0 || (yy % 4 == 0 && yy % 100 != 0));
}
private void button1_Click(object sender, EventArgs e)
{
int year = Int32.Parse(txt_InYear.Text);
int month = Int32.Parse(txt_InMon.Text);
int day = Int32.Parse(txt_InDay.Text);
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
if (day >= 1 && day < 30)
day = day + 2;
else if (day <= 31)
{
day = day + 2 - 31;
month = month + 1;
}
else
MessageBox.Show("输入数值错误!!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
break;
case 12:
if (day >= 1 && day < 30)
day = day + 2;
else if (day <= 31)
{
day = day + 2 - 31;
month = 1;
year = year + 1;
}
else
MessageBox.Show("输入数值错误!!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
break;
case 4:
case 6:
case 9:
case 11:
if (day >= 1 && day < 29)
day = day + 2;
else if (day <= 30)
{
day = day + 2 - 30;
month = month + 1;
}
else
MessageBox.Show("输入数值错误!!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
break;
case 2:
if (day >= 1 && day < 27)
day = day + 2;
else if (!leap(year) && day <= 28)
{ day = day + 2 - 28; month = month + 1; }
else if (leap(year) && day <= 29)
{ day = day + 2 - 29; month = month + 1; }
else
MessageBox.Show("输入数值错误!!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
break;
}
txt_OutYear.Text = year.ToString();
txt_OutMon.Text = month.ToString();
txt_OutDay.Text = day.ToString();
}
第二篇:软件测试实验报告_黑盒测试2
软件测试实验报告
学 号:
学生姓名:
班 级:
实验题目 黑盒测试方法2
学号 ********** 姓名 *** 班级 ***** 时间 2************
一 实验题目
用黑盒测试方法测试以下程序:
有一个处理单价为5角钱的饮料的自动售货机,相应规格说明如下:
若投入5角钱或1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。(每次只投入一个硬币,只押下一种饮料的按钮)
如投入5角的硬币,按下按钮后,总有饮料送出。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯会亮,这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来。
若有零钱找,则显示〖零钱找完〗的红灯不会亮,若投入 1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。
二 测试用例及结果
三 实验总结
包括bug的数量,并简要分析错误产生的原因。
附:源程序(C#窗体)
this.comboBox1.Items.AddRange(new object[] {"亮","灭"});
this.comboBox2.Items.AddRange(new object[] {"0.5","1"});
this.comboBox3.Items.AddRange(new object[] {"啤酒","橙汁"});
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.SelectedIndex = 0;
comboBox2.SelectedIndex = 0;
comboBox3.SelectedIndex = 0;
}
private void button1_Click(object sender, EventArgs e)
{
if (comboBox2.SelectedIndex == 0)//投0.5
{
textBox1.Text = "0";
if (comboBox3.SelectedIndex == 0)
{
textBox2.Text = "啤酒";
}
else
textBox2.Text = "橙汁";
}
else //投1
{
if (comboBox1.SelectedIndex == 0)//红灯亮
{
textBox1.Text = "1";
textBox2.Text = "无法找零";
}
else //红灯灭
{
textBox1.Text = "0.5";
if (comboBox3.SelectedIndex == 0)
{
textBox2.Text = "啤酒";
}
else
textBox2.Text = "橙汁";
}
}
}