软件测试基本方法(三)之黑盒测试
2014-06-17 18:09
363 查看
黑盒测试:
概念:也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
分类:黑盒测试有很多具体方法,这里只选取两种最常用的——等价类划分法和边界值分析法。
等价类划分法:
定义:分为有效等价类和无效等价类。有效等价类是合理的输入数据,可检查程序是否实现了规格说明中所规定的功能和性能。无效等价类与有效等价类的意义相反。
例1:
输入日期,如200001,前四位代表年,后两位代表月,限制条件为日期由年月的6位数字组成,日期限制在2000年1月至2045年12月(奇点时刻,有兴趣的朋友参见超链接:))。下面就是等价类划分的一个实例。
![](http://img.blog.csdn.net/20140617173903171)
例2:
问题:针对国内18位***号码验证,通过等价类划分法设计测试用例。
先了解一下18位***,拿370686199211204618来说:
37——所在省
06——所在地级市
86——所在县级市
19921120——出生年月日
461——顺序码,表示你在该地区与你同年同月同日生的人群中的序号,奇数表示男,偶数表示女
8——对前17进行加权求和并mod11,如果结果为10,用‘X’表示
![](http://img.blog.csdn.net/20140410210610296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQmx1ZUNsb3VkTWF0cml4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20140410210639765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQmx1ZUNsb3VkTWF0cml4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
总之根据输入要求,先明白合理等价类是什么,然后再找出不合理等价类。曾经有位scrum master说这是最重要最基本的测试方法,但某些测试人员却不遵守。
边界值分析法:
定义:确定边界情况(输入或输出等价类的边界),选取正好等于、刚刚大于或刚刚小于边界值作为测试数据。
例3:
如上面例1,如果用边界值法,会有如下测试用例:
200001(边界有效最小值)、204512(边界有效最大值)
199901、199912、204601、204612(边界无效值)
边界值分析法常被看做是等价类划分法的一种补充,二者结合起来使用更有效。
例4:
对于一个排序程序,设计它的边界值。
其边界条件有:
排序序列为空
排序序列仅有一个数据
排序序列为最长序列
排序序列已经按要求排好序
排序序列的顺序与要求的顺序恰好相反
排序序列中的所有数据全部相等
例5:
一个文本输入的测试过程,字符编码采用ASCII码。如果输入0~9,那么这个输入的边界字符为/(斜杠)和:(冒号)。
总结:
除了以上两种,还有判定表法、因果图法等。其实所有的白盒和黑盒,最终都要生成测试用例,关于测试用例,如下:
测试用例:为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
一个测试用例用于证明该需求已经满足,通常称作正面测试用例;另一个测试用例反映某个意外的条件,用于论证只有在所需条件下才能够满足该需求,这个测试用例称作负面测试用例。
测试用例是软件测试的核心。
概念:也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
分类:黑盒测试有很多具体方法,这里只选取两种最常用的——等价类划分法和边界值分析法。
等价类划分法:
定义:分为有效等价类和无效等价类。有效等价类是合理的输入数据,可检查程序是否实现了规格说明中所规定的功能和性能。无效等价类与有效等价类的意义相反。
例1:
输入日期,如200001,前四位代表年,后两位代表月,限制条件为日期由年月的6位数字组成,日期限制在2000年1月至2045年12月(奇点时刻,有兴趣的朋友参见超链接:))。下面就是等价类划分的一个实例。
例2:
问题:针对国内18位***号码验证,通过等价类划分法设计测试用例。
先了解一下18位***,拿370686199211204618来说:
37——所在省
06——所在地级市
86——所在县级市
19921120——出生年月日
461——顺序码,表示你在该地区与你同年同月同日生的人群中的序号,奇数表示男,偶数表示女
8——对前17进行加权求和并mod11,如果结果为10,用‘X’表示
总之根据输入要求,先明白合理等价类是什么,然后再找出不合理等价类。曾经有位scrum master说这是最重要最基本的测试方法,但某些测试人员却不遵守。
边界值分析法:
定义:确定边界情况(输入或输出等价类的边界),选取正好等于、刚刚大于或刚刚小于边界值作为测试数据。
例3:
如上面例1,如果用边界值法,会有如下测试用例:
200001(边界有效最小值)、204512(边界有效最大值)
199901、199912、204601、204612(边界无效值)
边界值分析法常被看做是等价类划分法的一种补充,二者结合起来使用更有效。
例4:
对于一个排序程序,设计它的边界值。
其边界条件有:
排序序列为空
排序序列仅有一个数据
排序序列为最长序列
排序序列已经按要求排好序
排序序列的顺序与要求的顺序恰好相反
排序序列中的所有数据全部相等
例5:
一个文本输入的测试过程,字符编码采用ASCII码。如果输入0~9,那么这个输入的边界字符为/(斜杠)和:(冒号)。
总结:
除了以上两种,还有判定表法、因果图法等。其实所有的白盒和黑盒,最终都要生成测试用例,关于测试用例,如下:
测试用例:为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
一个测试用例用于证明该需求已经满足,通常称作正面测试用例;另一个测试用例反映某个意外的条件,用于论证只有在所需条件下才能够满足该需求,这个测试用例称作负面测试用例。
测试用例是软件测试的核心。