目录

测试篇三测试用例的万能公式对水杯和登录页面设计测试用例测试用例的设计方法

测试篇(三):测试用例的万能公式、对水杯和登录页面设计测试用例、测试用例的设计方法

目录

一、测试用例的万能公式

首先,为"水杯"设计一个测试用例,我们可能会想到水杯是否可以盛水、水杯是否漏水、水杯携带是否方便、水杯是否保温、水杯的形状和外观是否符合用户预期…但这些用例是我们想一个写一个的,并不是按照某个具体步骤详细而全面的来设计测试用例。因此学会万能公式对我们设计测试用例将很有帮助

测试用例的万能公式: 功能测试+性能测试+界面测试+兼容性测试+易用性测试+安全测试

  • 功能测试:对产品的功能设计测试用例(来源是需求文档/日常生活经验)
  • 性能测试:功能测试没有问题不代表性能好,考虑极端情况(高并发量、响应时间等)
  • 界面测试:界面中每个元素的 大小、颜色、材质、形状 、页面跳转、文字错别字…都需要进行测试(以界面设计图为依据)
  • 兼容性测试: 软件的不同版本是否兼容、不同浏览器、不同的系统版本、数据兼容性…
  • 易用性测试:产品是否具备简单易上手的属性
  • 安全测试:用户的隐私数据是否加密(注册账号时账号和密码在接口传输时是否加密)、是否存在SQL注入问题、越权问题

【SQL注入问题】

select * from info where id=1 or 1=1; 这条SQL语句的结果是返回所有的用户信息

【越权问题】

越权又分为垂直越权和水平越权

垂直越权 是指,比如在一个教务系统中,有教师和学生不同的身份,教师可能有布置作业的功能,学生没有作业的功能,但如果学生也能进行布置作业,那么这就属于是垂直越权

水平越权 是指,学生有张三和李四,张三不能进入到李四的界面中进行操作,但如果张三可以操作李四的界面,那这就是水平越权

在学完万能公式之后,借助万能公式对"水杯"进行设计测试用例

https://i-blog.csdnimg.cn/blog_migrate/38dfc8f74b34d4dc9544ace0f280a8f3.png

【设计测试用例一定是越多越好吗?】

不是的,测试用例能够提高质量覆盖率才是最好的

二、对登录页面设计测试用例

对下面的这个登录页面设计测试用例:

https://i-blog.csdnimg.cn/blog_migrate/55a739b28b2790ff9274cb03967a30f4.png

https://i-blog.csdnimg.cn/blog_migrate/0b96f3a73755bcbc80fe8119a533020b.png

三、测试用例的设计方法

根据万能公式我们设计出的测试用例是比较笼统的,例如对登录页面设计的测试用例,其中一个是测试账号和密码的长度是否符合规则,但是"长度"我们并没有真正的指定,但当我们需要具体的测试数据时,就应该给出具体的数值,此时就要用到测试用例的设计方法

3.1 基于需求的设计方法

基于需求文档来设计测试用例,和根据万能公式设计类似

3.2 等价类

比如,有一个需求是用户的密码是6-12位,测试的时候该如何设计测试数据呢?

有的同学可能会说,穷举6,7,8,9,10,11,12都测试一下,但如果当我们的需求变为用户的密码是6-1000000位,此时使用穷举法就不现实了。使用等价类的方法可以很好的解决这个问题。


依据需求将输入划分为若干个等价类,从等价类中选出一个测试用例,如果该用例通过,就认为其所属的等价类测试都通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了穷举不过来的问题

  • 有效等价类:对于程序规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了说明书中所规定的功能和性能
  • 无效等价类:根据需求说明书,不满足需求的集合

使用等价类设计测试用例的步骤:

  1. 划分等价类

需求是用户的密码是6-12位,有效等价类是:6-12,无效等价类是小于6位和大于18位

  1. 编写测试用例

输入长度是6-12的密码,具体数据选为10位

输入长度小于6位的密码,具体数据为3位

输入长度大于12位的密码,具体数据为30位

对于需求是到超市购买水果,包括苹果、桃子、梨

  • 有效等价类:有三个,分别时苹果、桃子、梨,也就是说要分别测试这三个
  • 无效等价类:香蕉、橘子、水、啤酒…

3.3 边界值

边界值法是在等价类的基础上,衍生出的一种设计测试用例的方法

对于用户的密码是6-12位这个需求来说:

  • 有效边界值是:6,12
  • 无效边界值是:5,13

对于成绩大于90可以获奖这个需求来说:

  • 有效边界值是:91
  • 无效边界值是:90

对于长度时6-10位的单精度浮点型数据的需求来说:

  • 有效边界值:
  • 无效边界值:

3.4 判定表

对于判定表来说,使用的场景比较少

判定表(Decision table)是另一种表达逻辑判断的工具。与结构化语言和判断树相比,判断表的优点是能把所有条件组合充分地表达出来;其缺点是判定表的建立过程较烦杂,且表达方式不如前两种简便。判定表在用于知识表达中,有许多其他方式所达不到的作用。

https://i-blog.csdnimg.cn/blog_migrate/b1d06232255c6b8d43e6563821260a4a.png

使用场景:输入条件的组合对应不同的结果

判定表设计测试用例的步骤:

  1. 确认输入条件和输出条件
  2. 找出输入条件和输出条件之间的关系
  3. 画判定表
  4. 根据判定表编写测试用例

现有需求:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠”。

  1. 确认输入和输出条件

    输入条件:金额大于300(A)、红包(B),订单已提交(C)

    输出条件:有优惠(1)、无优惠(2)

  2. 找出输入和输出条件之间的关系

https://i-blog.csdnimg.cn/blog_migrate/fc8d705c7ef61fb8b8fdb1d3103378fe.png

  1. 画判定表

https://i-blog.csdnimg.cn/blog_migrate/becad136f814186a20eb0646d0661d9e.png

  1. 根据判定表编写测试用例
  • 有红包并提交订单,该订单为优惠订单

  • 金额大于300并提交订单,该订单为优惠订单

  • 金额大于300且有红包,同时提交订单,该订单为优惠订单

在大部分书籍或文章中给的都是因果图法,因果图法和判定表法的步骤几乎相同,只不过因果图法必判定表法多了一步画因果图

3.5 正交排列

正交试验设计是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。当因素过多时,如果使用判定表法设计测试用例就变的不现实了,而正交法的目的是为了减少用例数目,用尽量少的用例覆盖输入的两两组合。


最简单的正交表是L4(2^3),含意如下:“L”代表正交表;L 下角的数字“4”表示有 4 横行,简称行,即要做四次试验;括号内的指数“3”表示有3 纵列,简称列,即最多允许安排的因素是3 个;括号内的数“2”表示表的主要部分只有2 种数字,即因素有两种水平1与2。正交表的特点是其安排的试验方法具有均衡搭配特性


举例理解试验、因素、水平的含义,一次试验代表一次测试用例,一辆车从出发地到目的地耗时多久这件事,受到很多因素影响,有下班的高峰期、限号、天气、地段、道路施工、行驶人的驾车技能、车况等,对于下班高峰期这个因素来说,是高峰期与不是高峰期是两个水平

https://i-blog.csdnimg.cn/blog_migrate/05a4b671699fb0909a9bdcd039415071.png

正交表的性质:

  1. 每一列中,不同的数字出现的次数相等。例如在两水平正交表中,任何一列都有数码“1”与“2”,且任何一列中它们出现的次数是相等的;如在三水平正交表中,任何一列都有“1”、“2”、“3”,且在任一列的出现数均相等。
  2. 任意两列中数字的排列方式齐全而且均衡。例如在两水平正交表中,任何两列(同一横行内)有序对子共有4种:(1,1)、(1,2)、(2,1)、(2,2)。每种对数出现次数相等。在三水平情况下,任何两列(同一横行内)有序对共有9种,1.1、1.2、1.3、2.1、2.2、2.3、3.1、3.2、3.3,且每对出现数也均相等。

根据正交表设计测试用例的步骤:

  1. 找出因素数和水平数
  2. 生成正交表(借助工具allpairs)
  3. 根据正交表来编写测试用例
  4. 补充可能存在遗漏但非常重要的测试用例

案例:

https://i-blog.csdnimg.cn/blog_migrate/06627c6d43999cce941426625ab57a6e.png

  • 因素数:姓名、电子邮箱、密码、确认密码、验证码

  • 使用allpairs生成正交表:

    (1)使用excel进行编写

    https://i-blog.csdnimg.cn/blog_migrate/6f25703d66efb64b225f53ba8c11c22e.png (2)保存到一个txt文件中 https://i-blog.csdnimg.cn/blog_migrate/54686343b88f92a5598ce8691a33c026.png

    (3)将该txt文件保存到paris目录下

    https://i-blog.csdnimg.cn/blog_migrate/7a9c75d2aa53d25802eb6cf73ec3f355.png

    (4)输入命令

    https://i-blog.csdnimg.cn/blog_migrate/d0ba35e83b3ea37de1d4fd6b7b1c9c13.png

    https://i-blog.csdnimg.cn/blog_migrate/f9a1a157a31b204b2608fa254c6f4d45.png

    https://i-blog.csdnimg.cn/blog_migrate/e1314eb73a7aab8d9eff44872786f357.png

  • 根据正交表生成测试用例

  • 补充可能遗漏但很重要的测试用例:全都不填写

3.6 场景设计法

场景设计法中涉及到两个概念:基本事件流和备选事件流。用下面的一个例子进行解释,以去ATM取款机取款的流程为例:

https://i-blog.csdnimg.cn/blog_migrate/9b33c60a534aacb022583adeb9f31ded.png

除了基本事件流以外,可能出现的以外情况称之为备选事件流

根据上图编写测试用例:

  1. 基本事件流用例:插卡、输入密码、输入金额、取钞、退卡

  2. 备选事件流的用例:

    (1)插卡、输入密码、密码错误、重置密码、输入金额、取钞、退卡

    (2)插卡、输入密码、输入金额、金额不是整数、重新输入、取钞、退卡

3.7 错误猜测法

错误猜测法是对被测软件设计的理解,过往经验以及个人直觉,推测软件可能存在的缺陷,从而针对的设计测试用例的方法,更依赖测试人员的工作经验和积累。

错误推测法和目前流行的“探索式测试方法”的基本思想一致,这类方法在敏捷开发模式下的投入产出比很高,被广泛应运于测试。

这个方法的缺点是难以系统化,并且过度依赖个人能力。

四、面试真题

某公司招聘测试工程师时,有一道这样的笔试题:”某手机软件有用TF卡导出数据的功能,请写出测试此功能点的思路”

https://i-blog.csdnimg.cn/blog_migrate/0f3d123636ecfc2f981b3117d886fbd8.png