通用测试技术【二】测试方法

1.等价类划分法 

    把程序的输入域划分成若干部分,然后从每个部分中选取少数有代表性的数据出来进行测试。

    有效等价类:对于被测对象来说是合理的、有意义的、可以接受的输入。简单来说就是正确的数据

    无效等价类:对被测对象而言是不合理的、无意义的、不能接受的输入。简单来说也就是错误的数据

    举例:规定用户名的长度为6-18位,如果输入数据在这个长度内,就是有效等价类。不在这个范围内(少于6位或超过18位),就是无效等价类。因此,设计用例时,针对这个要求,可以设计出一条正向用例和两条反向用例。

    用例设计方法:

        设计正向用例时,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,直至所有的有效等价类都被测试用例所覆盖。

        设计反向用例时,使其只覆盖一个无效等价类。重复这一步,直至所有的无效等价类都被用例覆盖到。用科学实验的思维来看,就是控制变量法

2.边界值分析法

    这个通常作为等价类划分法的补充,主要对输入或输出的边界值进行测试。

    即:如果输入条件规定了取值范围,则取边界值以及最接近这个边界的值来进行测试。 

    举例:假设年龄的取值范围规定为[18,30],则它的边界值是18,30,最接近这两个边界的数分别是17,19和29,31。因此,这六个数可以作为边界值来进行测试。如果测试时间紧的话,也可以只取17、18和30、31。

    如果是开区间(18,30)的话,因为年龄只能取整,所以本质上,它的取值范围在[19,29]之间,即它的边界值是19,29。离边界最近的数是18,20和28,30。由此可知,这种条件下年龄的边界值取值有18,19,20和28,29,30

    一些常见的边界值:循环的第0次、第一次、倒数第二次和最后一次;有序集合的第一个和最后一个元素(如下拉列表);具备一些开发知识也可以帮助我们挖掘出隐藏的边界值条件,如java中byte类型的取值范围就是[-128,127]等。

3.决策表(判定表)

    主要用于多条件的组合和结果分析。

    设计步骤:

    (1)确定规则的个数

            假设有n个输入条件,则规则有2^n个(因为每个条件只有两个值,真或假),这也就是初始的决策表的列数。

    (2)列出所有的条件桩和动作桩

            条件桩:所有的输入条件

            动作桩:所有的输出条件

    (3)填入条件项和动作项,得到初始的判定表

            条件项:该条件的具体取值,0或1

            动作项:所有条件项组合得到的输出结果

    (4)简化、合并相似规则或相同动作

            规则:一列就是一条规则

    举例:见千锋测试课程P66-判定表法分析,或者自己取网上找吧。

    注1:条件的取值只能有两种,如果不是,则不适用决策表。

    注2:有时候条件太太太多了,不可能全部列完或者测完,就需要我们进行优化。优化的策略是均匀覆盖,使每个条件都取到真假值。例如:

4.因果图

    根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例。

    因果图的优势就是在于发现设计中的不足。对于一些只有输入没有输出的情况,这是一种缺陷,不能设计成测试用例。用例编写要以需求为主,需求中没有的输出结果,那就不能写出来。可以先跟产品经理提,完善需求,然后再补充用例。典例:千锋测试课程P63--自动售货机案例

    因果图举例:  

     注:因果图和决策表都是基于正向思维设计的用例。二者虽然都是针对输入条件的多组合分析,但因果图更侧重于输入条件之间、输入和输出之间的因果关系

5.正交试验法

    因子、因素:对实验结果有影响的量

    水平:因子的取值数

    正交试验法只适用于水平数都相同的情况。如果因子A有3种取值,因子B有4种取值,那么这种情况就不在正交试验法的适用范围内。

    设计步骤:(1)分析所有对结果有影响的因素

                      (2)分析每个因素的水平数

                      (3)选择合适的正交表,找最贴近的。一般来说,会大于实际的因子数和水平数

    工具:正交设计助手。输入因子和水平,可以自动生成正交结果。

6.场景法

    基于业务场景(用户的操作过程,正确的或错误的)来设计测试用例。

    基本流:所有的操作都是正确的,最终能达到目标的流程。

    备选流:有部分操作是错误的,导致流程反复,但最后还是能达到目标的流程。

    异常流:操作错误导致最后没有达到目标的流程。

    举例:去ATM机取款。

        ①插的卡是对的,是可以使用的银行卡;密码输入正确,输入的钱数没超过卡的余额且ATM机内有这么多钱,最终取到了钱。这就是基本流,整个过程的操作没任何问题。

        ②插错卡了,重插对的卡;密码输入错了,再输一次,对了;输入的钱数没超过余额也没超过ATM机里的钱,最后把钱给取出来了。这是备选流,中途虽然出了一点差错,但是最终还是达到了目标要求。

        ③插卡对了,密码输错了三次,卡被冻结了,取不了钱。这是异常流,业务流程没走到终点。

    用例设计步骤:(1)找出程序的基本流(正确的操作流程)和备选流、异常流 (出错的环节)

                             (2)分析业务流程,画出流程图;

                             (3)一条路径就是一个场景。

7.功能图法

    有点复杂,不太懂,懒得写了,以后再看吧。

8.错误推测法

    基于经验和直觉推测程序中存在的错误,从而有针对性地设计测试用例。

9.其他设计方法

    9.1测试大纲法

            着眼于需求,列出各种测试条件,将需求转换成大纲。

            树形思维导图,从根节点开始到叶子结点为一条测试用例。因此,该方法不用写具体的测试用例。

    9.2探索性测试法

           基于经验和直觉

    9.3猴子测试

           无意识行为,像不懂事的猴子一样乱点,发现一些意想不到的错误。

           也不用写用例。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值