华东交通大学软件工程实验报告三

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试实验三

一、实验目的

学会使用CASE工具完成软件测试用例的设计以及初步完成对单元测试,深刻理解单元测试的基本原理及CASE工具的基本使用。

二、实验内容

1、单元测试的逻辑覆盖测试验证实验:运用Nunit工具完成对如下例子的单元测试,要求分别完成语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖测试的测试用例编写以及测试。要求首先按格式编写出该测试所需要的测试用例,然后编写测试程序,对其进行测试,最后把你写的测试用例按格式记录到实验报告中。

测试用例的格式如下:

{[输入], [期望结果]},对于本例请遵循如下格式:

{[A,B,X],[X]}

图1 单元测试逻辑覆盖的验证实验

此外,请测试如下情况:

(1).如果将第1个判定中的“AND”错写成了“OR”,用数据

{[2,0,3],[2.5]}(首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。

语句覆盖

不能,and要求比or严格,所以and可以满足的数据or也肯定可以满足。

(2).如果将第2个判定中的“x>1”错写成了“x<=1”,则用数

据{[2,0,3],[2.5]}对程序进行测试,可否发现错误?为什么?

请先测试,然后把结论记录到实验报告中。

不能,第二个判定是or只要满足一个条件即可。因为a=2所以第二个条件恒为真。所以不能发现错误。

(3).如果将第1个判定中的“AND”错写成了“OR”,则用数

据{[3,0,1],[1/3]}和{[2,1,2],[3]}(首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。

语句覆盖,判定覆盖

第一组测试数据不能发现错误,因为第一组数据可以满足判定一的AND判断,肯定可以通过OR判断条件。

第二组测试数据可以发现错误,因为A=2,B=1原本不可以通过路径b,因为只有A满足了条件,B未满足条件,通过AND 返回0。由于把AND错写成OR,返回1,影响了X的值,发现错误。

(4).如果将第2个判定中的“x>1”错写成了“x<=1”,则用数

据{[3,0,1],[1/3]}和{[2,1,2],[3]})对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。{[3,0,1],[1/3]}可以。经过第1个判断,执行b操作是x=1/3,第2个判断是x <= 1,返回1,进行e操作。最后得到的x = 4/3,与期望结果不同,提示错误。

{[2,1,2],[3]}不可以。第1个判断是B == 0不成功,将通过b 进行第2个判定,此时x仍为2。因为A == 2正确,返回1,进行e操作。最后x = 3,与期望结果相同。不能发现“x>1”错写成

了“x<=1”。

(5).如果将第2个判定中的“x>1”错写成了“x<=1”,则用数

据{[2,0,3],[2.5]}和{[1,1,1],[1]}(首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。

满足语句覆盖,判断覆盖,条件覆盖,判断/条件覆盖。

第一组测试数据不能发现错误,在第2个判定时,因为A == 2正确,返回1,进行e操作。最后x = 2.5,与期望结果相同。所以不能发现“x>1”错写成了“x<=1”。

第二组测试数据可以发现错误,因为A=1,x=1原本不可以通过第2个判定,返回0。但写错后x <= 1成立,返回1,影响了X的值,发现错误。

(6).如果将第1个判定中的“a>1”错写成了“a<=1”,且把“b=0”

错写成了“b<>0”,则用数据{[2,1,1],[2]}和{[1,0,2],[3]}对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。

都不能。

{[2,1,1],[2]}原本执行路径是abe。出错后执行路径仍为abe,所以不能发现错误。

{[1,0,2],[3]}原本执行路径是abe。出错后执行路径仍为abe,所以也不能发现错误。

(7).如果将第1个判定中的“a>1”错写成了“a<=1”,且把“b=0”

错写成了“b<>0”,则用数据{[2,1,1],[2]}、{[2,0,2],[2]}、{[1,1,1],[1]}和{[1,0,2],[3]}对程序进行测试,可否发现错误?

为什么?请先测试,然后把结论记录到实验报告中。

可以发现错误。

{[2,1,1],[2]}原本执行路径是abe。出错后执行路径仍为abe,所以不能发现错误。

{[2,0,2],[2]}原本执行路径是ace。出错后执行路径仍为abe,可以发现错误。

{[1,1,1],[1]}原本执行路径是abd。出错后执行路径仍为acd,所以不能发现错误。

{[1,0,2],[3]}原本执行路径是abe。出错后执行路径仍为abe,所以也不能发现错误。

2、循环结构测试

现有一个简单循环,需要对其进行测试,其程序伪代码如下:Int i,a;

Input(i,a);

While(i<=10)

{

a += 2;

if(a>4)

{

a *= 2;

a += 3;

}

Else

{

If(a>1)

a -= 4;

else

a += 5;

}

i++;

}

a *=4;

Output(a);

要求为该程序设计满足简单循环的所有测试用例,记录到实验报告中。

测试用例:

{[11,1],[4]}、{[10,1],[-4]}、{[9,1],[16]}、{[5,1],[676]}、{[3,1],[2788]}、{[2,1],[5604]}、{[1,1],[11236]}、{[0,1],[22500]}

3、等价类划分及边界值测试的验证实验:有如下算法A和B均是非负整型变量(注:int型),如果10=100,则B=A*100-200,请分别用等价类划分方法和边界值分析方法设计测试用例,然后编写测试程序完成测试。并把测试结论写入到实验报告中。

相关文档
最新文档