设计测试用例是软件测试中相当关键的一部分,因此在面试过程中,经常会被问到怎么设计测试用例,根据一个功能点,设计多少种测试用例等类似的问题。在这里还是就一个古老的话题,谈谈如何设计测试用例。
例子:输入三角形的三条边长,判断是否能构成一个三角形(不考虑退化三角形,即面积为零的三角形),是什么样的三角形(直角、锐角、钝角、等边、等腰)。
函数声明为:byte GetTriangleType(int ,int, int)。
(1) 如何用一个byte来表示各种输出情况/span>
(2) 如果你是一名测试工程师,应该如何写测试用例来完成功能测试呢/span>
问题(1)解法:
步骤一:首先要考虑三角形的状态,简单分为三角形和非三角形两种,其中三角形又包括直角,锐角,钝角,等边,等腰。
步骤二:题目要求用一个byte来表示各种输出结果,一个byte为8个bit,能够表示0~255,即一个byte可以表示256种状态,自然我们可以穷举所有可能的三角形状态,然后对其一一编 ,如将非三角形编 为0,直角三角形编 为1、锐角三角形为2,依次类推。但考虑,一个直角三角形同时也可能是等腰三角形,一个等边三角形同时也是锐角三角形,那么在上述的编码的基础上,要想表达更精确,需要继续扩展编码。但这样的编码没有规律可循,容易造成混淆。
步骤三:为了克服穷举无规律可循的问题,可以考虑按标志位编码,将1个byte从右到左(或者从左到右)依次按位赋予含义,如下表所示:
注:须要交换三边长度顺序以确保对每条边的判断,如对用例1还须要测试(1,2,4)及(2,4,1)等5组用例(后面的用例应做相同的操作)
2. 测试程序在非法输入时的表现,如下表所示:
注:中间值通常能被正确处理,而边界值则往往因为判断语句使用、= 而引起错误
以上表格中尚未包括换位枚举。读者可以扩充滴。。。。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!