例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,那么这个输入的边界字符为/(斜杠)和:(冒号)。
总结:
除了以上两种,还有判定表法、因果图法等。其实所有的白盒和黑盒,最终都要生成测试用例,关于测试用例,如下:
- 测试用例:为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
- 一个测试用例用于证明该需求已经满足,通常称作正面测试用例;另一个测试用例反映某个意外的条件,用于论证只有在所需条件下才能够满足该需求,这个测试用例称作负面测试用例。
- 测试用例是软件测试的核心。