软件测试的艺术————学习笔记2

测试用例的设计

对于与条件,我们必须注意测试用例需要测试到每一个条件。
if(a && b) 当a为假时,就不会判断b,就不会测试到b可能出现的错误

白盒测试
逻辑覆盖测试(覆盖到每一个路径,则需要尽可能多的测试用例)

  • 判定覆盖/分支覆盖
  • 条件覆盖
  • 多重条件覆盖

例子:

public void foo(int a,int b,int x)
{
if(a>1 && b==0)//此处有两个判断条件:a>1,a<=1 和 b==0,b<>0
x=x/a;
if(a==2||x>1)//此处有两个判断条件:a==2,a<>2 和 x>1,x<=1
x=x+1;
}

所以测试用例必须覆盖以下8种组合:2* 2+2 *2
1.a>1,b==0
2.a>1,b<>0
3.a<=1,b==0
4.a<=1,b<>0
5.a==2,x>1
6.a==2,x<=1
7.a<>2,x>1
8.a<>2,x<=1
其中5-8是表示第二个if语句的值
而设计测试用例可以只用4个,(1,2)(3,4)(5,6)(7,8)

if(x==y && length(z)==0 && FLAG )
//此处有三个判断条件x==y,x<>y and length(z)==0,length(z)<>0 and //FLAG=true,FLAG==false
j=1;
else
i=1;

所以需要设计测试用例来满足2* 2* 2=8个条件。


黑盒测试

等价划分:
确定等价类(根据输入条件来划分两个或更多的组)——有效等价类代表对程序的有效输入,而无效等价类代表时其他可能的输入条件(不正确)。

如果输入条件规定了一个取值范围(1<x<99),那么就应该确定了一个有效等价类(1<x<99),以及两个无效等价类(x<1,x>99)

注,等价类中可再细分。

根据等价类我们可以编写测试用例:
1.尽可能多的覆盖那些尚未被涵盖的有效等价类,直到所有的有效类都被测试用例所覆盖;
2.覆盖一个且仅一个尚未被覆盖的无效等价类,直到所有的无效类都被测试用例所覆盖。
注,用单个测试用例覆盖无效等价类,是由于某些特定的输入错误检查可能会屏蔽或取代其他输入错误检查(我第一句写的那样)

边界值分析
对边界值和恰好超出边界的值编写测试用例。
如果程序的输入或输出是一个有序序列,(如顺序的文件,线性列表三角格),则应特别注意该序列的第一个和最后一个元素。


因果图…..

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 14:00
林子大了什么鸟都有啊,我觉得我说的已经很客气了,阴阳谁呢
牛客62656195...:应该不是阴阳吧?你第一次注册的时候boss就说你是牛人
点赞 评论 收藏
分享
06-15 20:57
已编辑
门头沟学院 Java
CARLJOSEPH...:年轻人有傲气很正常,但是建议工作前洗净傲气。 说实在的,什么奖学金什么奖项的都很一般。尊重你的老师,在有时间的时候去上课,真遇到走不开的事,请态度端正地向你的老师说明情况,请求请假。我相信任何一个有师德的老师都会允许的(我的老师就是这样)。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 14:08
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务