软件測试基本方法(三)之黑盒測试
黑盒測试:
- 概念:也称功能測试,它是通过測试来检測每一个功能是否都能正常使用。
在測试中,把程序看作一个不能打开的黑盒子。在全然不考虑程序内部结构情况下,在程序接口进行測试。它仅仅检查程序功能是否依照需求规格说明书的规定正常使用,程序能否适当地接收输入数据而产生正确的输出信息。黑盒測试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行測试。
- 分类:黑盒測试有非常多详细方法。这里仅仅选取两种最经常使用的——等价类划分法和边界值分析法。
等价类划分法:
定义:分为有效等价类和无效等价类。
有效等价类是合理的输入数据,可检查程序是否实现了规格说明中所规定的功能和性能。无效等价类与有效等价类的意义相反。
例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。那么这个输入的边界字符为/(斜杠)和:(冒号)。
总结:
除了以上两种。还有判定表法、因果图法等。事实上全部的白盒和黑盒,终于都要生成測试用例,关于測试用例,例如以下:
- 測试用例:为某个特殊目标而编制的一组測试输入、运行条件以及预期结果,以便測试某个程序路径或核实是否满足某个特定需求。
- 一个測试用例用于证明该需求已经满足。通常称作正面測试用例。还有一个測试用例反映某个意外的条件,用于论证仅仅有在所需条件下才可以满足该需求,这个測试用例称作负面測试用例。
- 測试用例是软件測试的核心。