En provenance du cours de Nanjing University
软件测试 (Software Testing)
Explore Related Videos
At Coursera, you will find the best lectures in the world. Here are some of our personalized recommendations for you
从认识和理解软件Bug开始,介绍软件测试的基本理论,阐述软件测试设计的多样性原理。基于多样性原理,介绍白盒测试方法和黑盒测试,具体包括随机测试、等价类测试、控制流测试、数据流测试等;邀请业界专家讲解功能测试、性能测试、移动应用测试技术。
À partir de la leçon
黑盒测试方法
黑盒测试方法
Rencontrer les enseignants
Zhenyu Chen
Associate Professor
Software Institute
X小于0的判断
被我们错误的写成了
X小于等于0
这样当输入等于0时
为了检测这样一条错误
我们需要输入等于0的
这样一条测试用例
按照此前所讲的
等价类划分方法
我们对这一程序
进行等价类划分
按照输入的有效与否
我们可以划分出
一个有效等价类
和一个无效等价类
无效等价类对应X小于0
有效等价类
对应X大于等于0
我们在这两个等价类当中
可以随机的选择两条测试用例
那么如果这两条测试用例当中
不包含X等于0的测试用例
而如果我们考虑
两个等价类之间的边界
就会发现
对于第一个等价类
它的边界是0
如果我们既考虑
两个等价类的代表值
也考虑两个等价类的边界
0 +MIN
一个非常接近0的正数
以及+MAX
一个非常大的正数
这五条测试用例
一方面覆盖到了
两种等价类
另一方面也考虑了
两个等价类之间可能的边界
也保证了
能够检测我们刚才所提到的
那样一个错误
又比如对于这样一个绘图的程序
我们之前已经了解到
所有能够导致程序崩溃的
测试用例
都是鼠标要出现在
用户窗口之外
这就告诉我们
在进行软件测试时
必须要时刻注意
程序可能会面临的边界值问题
例如对于一个字符串来说
我们可能需要考虑
字符串的长度
那么假如一个程序
要求输入一个长度为
1—255之间的字符
而超出取值的边界
例如对于16位的
无符号整形数
当取值小于0
或者是大于65535时
就是错误的输入
我们用For(int i等于0; i小于n; ++i)
来控制循环
这意味着循环体
需要运行N次
而在写这样的程序时
同学们往往会犯一些错误
例如将i小于N
错误的写成i小于等于N
或者是将i等于0
错误的写成i等于1
这样循环体运行的次数
就不再是N次
此外我们还应该注意
计算机当中
字长的限制
在ASCII码值当中
我们也要注意到
不同类型的数据
好 接下来我们具体讲一下
进行等价类划分之后
如何进行边界值的分析
那么这个时候
我们首先需要在等价类当中
选择一个有代表性的值
Nom
之后我们在边界上
分别取Min 最小值
Min+ 比最小值略大一些的值
Max 最大值
以及Max-
比最大值略小一些的值
那么在这样一个例子当中
大家可能会发现
我们没有考虑非法输入
程序可能需要处理
错误输入的情况
那么如果我们考虑
非法输入的话
例如我们在刚才的
5条测试用例基础上
需要增加一个Min-
也就是比最小值
还要小一些的值
以及一个Max+
也就是比最大值
还要大一些的值
同样是对于刚才这样一个程序
那么如果我们考虑
无效输入的话
我们需要13条测试用例
来实现等价类划分和边界值分析
最后我们看一下
对NextDate的程序
进行边界值分析的方法
我们知道NextDate的程序
它所接受的输入有年月日
三个变量
我们暂时不考虑年这一变量
对于月份这一变量
小月 30天
取值范围是1到30
2月情况更为复杂
在平年 2月的取值是1到28
而在闰年
2月的日期取值是1到29
我们在测试时
需要考虑这些边界情况