测试用例是每个测试从业者的必修课,下面可能讲的不正确,如有不对请谅解!
首先
问一个问题,你的测试用例你自己会回归吗?
第二个问题,你的测试用例别人会感兴趣吗,会使用吗?
第三个问题,你的用例可以复用吗?
自己从业经验来讲,我曾经负责一个ERP项目,项目执行路径比较多,数据也要求比较丰富,oracle、mysql、sqlServer,常用的库都会涉及到,写了近400多个用例,输入、步骤、输出。每一个写的都尽量完全,当我完成后打开那个用例给领导汇报的时候,我对自己的毅力也是惊叹。项目开发模型基本是螺旋模型,设计迭代目标、开发、测试、验收发版、上市。产品是需要长期维护的,下一个迭代会在上一个迭代的基础上继续开发。开发可能不需要继续关注上一迭代开发的功能,而测试是整个产品的质量保证官,代码耦合如果比较强,可能开发同事的一个出乎意料的更改会影响前面已经完善的功能。产品如果要是保持稳定,在整个开发周期,甚至到上市后工作仍然不会结束。
那么现在来答下一个迭代上一个迭代写的那么多用例你会回归吗?不能说100%,90%同学不会回归,甚至不会看那时候辛辛苦苦写下的用例。
回答第二个问题,你的用例别人感兴趣吗?答案我想也是否定的。用例一般来说都是输入输出的集合体,几乎没有人会去查看别人的用例,你要分享讲解可能会有人感兴趣。
回答第三个问题,你的用例可以复用吗?你的用例搬到其他项目可以起到指导作用吗?因为繁琐,所以基本无望。
那么结果是不是,既然没人看,没人用就不用在写用例了?答案是否定的。不仅要设计还要用心设计。下面我讲自己的经验可能不正确,有指导欢迎评论。
测试模型:y=f(x);y应该包括y1,y2,....yn,x1,x2...等也是对应的。
我们的黑盒功能测试,大多如此。输入x可以是文本、可以是一次点击、或是键盘的命令,对应着每一次的事件触发,服务请求。输出y可以是一个提示信息,页面跳转等。而我们的主要工作就是确认x这个集合盒多个x集合的链接动作的合计。不用计算也会发现这是没有办法穷举的。及时是一个简单的产品路径和输入也会千千万。
确定测试模型下面我们看怎么设计测试用例:我们常听到的设计用例的方式有等价类划分、边界值分析法、因果图法、判定表驱动分析法。
1、等价类划分法
定义:
等价类划分:把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
等价类划分:有效等价类(合法)和无效等价类(非法)。
从标红的语句可以看出,重点有两个① 定位为输入域 ② 把输入域分为若干子集 ③挑出代表性数据
所以当我们用等价类划分法设计用例时 分为三步:
实例:假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符