测试开发——用例篇(如何设计一个测试用例,设计测试用例的一些具体方法)(上)

简介: 测试开发——用例篇(如何设计一个测试用例,设计测试用例的一些具体方法)(上)

一、测试用例的基本要素

先来回顾测试用例的概念:

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。

好的测试用例是一个不熟悉业务的人也能依据用例来很快的进行测试

评价测试用例的标准:对比好坏用例的评价标准

用例表达清楚,无二义性。。

用例可操作性强。

用例的输入与输出明确。一条用例只有一个预期结果。

用例的可维护性好。

用例对需求的覆盖率高


测试用例的给我们带来的好处

  • 测试执行者的依据
  • 使得工作可重复,自动化
  • 试的基础
  • 评估需求覆盖率
  • 用例的复用
  • 积累测试的方法思路以供后续借鉴


测试用例的设计是费时费力的工作,往往设计测试用例所花费的时间比执行所花费的时间还多

测试用例的设计解决如下问题:


  • 不知道是否较全面的测试了所有功能
  • 测试的覆盖率无法衡量
  • 对新版本的重复测试很难实施
  • 存在大量冗余测试影响测试效率


二、设计测试用例的万能公式 (在没有需求文档的情况下)

31cba5915ea0409ca6872c0997e0d8a4.png

功能测试:产品是否实现了预期的功能


性能测试:功能测试没有问题,不代表性能好(网站速度、流畅的)


界面测试:布局、每个元素的大小、颜色、材质


兼容性测试:软件的不同版本、打开网站所用的不同浏览器

不同的系统版本、数据兼容性(不同版本数据是否展示正确且相同)

易用性测试:产品是否容易上手、提升文字(登陆时)、打开软件的操作步骤提示

安全测试:产品网站系统,用户信息,页面数据展示的是是否恰当和合适

(用户的隐式数据)

登录时候是否加密

接口返回值—SQL注入

越权问题(垂直越权和水平越权):权限、管理员、普通用户

不同的角色对应不同的功能


1、水杯的测试用例


a78b012c72234eb2afc8fde506e9ea52.png

2、一个网站的登录测试用例


686cedab8df746ceb94ad26c35926462.png

37ff26c357f74ca4999955f1adc4c161.png


三、基于需求进行测试用例的设计

1、功能需求测试分析

2、非功能需求测试分析

详见测试 - 用例篇 - 细节狂魔_Dark And Grey的博客-CSDN博客_测试用例实战


四、测试用例的具体设计方法(根据需求)

实际上,在企业中我们往往都是根据需求文档来编写测试用例的,下面我们就来看看设计测试用例的具体方法。

1、等价类

  • 无效等价类
  • 有效等价类


例子

登录密码要求6<=密码长度<=18

有效等价类——测试密码长度为10

无效等价类——测试密码长度为4、20


69ee101962a441889f5ffddd901d108b.png


2、边界问题

边界值——》有效边界+无效边界

还是上面的例子,测试密码长度为6、18位数的(有效边界)

无效边界为5、19长度的密码

边界是最容易出现问题的(我们程序一个不小心,就会出现边界问题)


ffc2b0c2d66640969c2157252c97b13c.png


这个时候,如果我们不测试边界的话,就会出现问题。


3、判定表(因果图,使用场景较少)

使用场景比较少

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

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


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


🌰例子


当订单使用了红包或优惠金额大于300元,则该订单是优惠订单,否则不是。


1、确认输入条件和输出条件


输入条件:使用红包、优惠金额大于300元、订单已提交

输出条件:优惠订单、非优惠订单


2、找到输入条件和输出条件的关系

输入条件之间的组合与输出条件的关系

所有的可能的组合情况

空——》非优惠订单

使用红包(没提交)——》非优惠订单

优惠金额大于300(没提交)——》非优惠订单

订单提交——》非优惠订单

使用红包+订单提交——》优惠订单

优惠大于300+订单提交——》优惠订单

使用红包+优惠大于300(没提交)——》非优惠订单

使用红包+优惠大于300+订单提交——》优惠订单


3、画判定表


405326647f9f4106b68e578f3a1dad73.png

4、根据判定表编写测试用例

1、无红包,优惠金额小于等于300元,订单未提交,该订单为非优惠订单

2、有红包,优惠金额小于等于300元,订单未提交,该订单为非优惠订单

3、无红包,优惠金额大于300元,订单未提交,该订单为非优惠订单

4、无红包,优惠金额小于等于300元,订单提交,该订单为非优惠订单

5、有红包,优惠金额小于等于300元,订单提交,该订单为优惠订单

6、无红包,优惠金额大于300元,订单提交,该订单为优惠订单

7、有红包,优惠金额大于300元,订单未提交,该订单为非优惠订单

8、有红包,优惠金额大于300元,订单提交,该订单为优惠订单


网上大部分书籍和资料把这种方法叫做因果图,其实上面所说的判定表和所谓的因果图是很相似的 ,只不过因果图多了一步叫做 ”画因果图“ (非常难,且没有一个明确的且具体的画法)


4、场景设计法(不常见)

思路引导的作用——》告诉我们不能完全参照需求文档上写的基本流程,要尽可能多的设计可能存在的意想不到的流程


比如我们去ATM取款机过程


基本事件流(主流程)


插卡——》输入密码——》选择取款功能——》输入金额——》取钞票——》退卡


备选事件流(其他流程)


卡插不进去(插卡过程中)

密码输入错误(输入密码过程中)

选择了其他功能(选择功能过程中)

输入金额的限制(输入金额过程中)

钱出不来、钱出来了没人取(取钞票过程中)

卡退不出来、卡出来了没人取(退卡过程中)


编写测试用例

基本事件流的用例

插卡——》输入密码——》选择取款功能——》输入金额——》取钞票——》退卡


备选事件流的用例


插卡——》卡插不进去——》。。。。——》退卡

插卡——》输入密码——》密码输入错误——》。。。——》退卡

插卡——》输入密码——》选择了其他功能——》。。。。——》退卡

插卡——》输入密码——》选择取款功能——》输入金额——》输入金额的限制——》。。。——》退卡

。。。。。

5、正交法(用的比较少)

正交实验法指从打大量的实验中中挑选出适量的、有代表性的点,依据”正交表“从而合理的设计出测试用例。

回顾一下我们上面讲的判断表里:3个输入条件、2个输出条件,给出来8个测试用例()


🍑正交表的概念和特性

那么所谓的正交表是什么呢?

下面就一个正交表的例子。


337ea7b3448f4eb797cbbdf101b11940.png

该正交表可表示为,它表示需作9次实验,最多可观察4个因素,每个因素均为3水平

实验次数好理解,但因素和水平又是什么东东?


🌰举个例子


9d2b9aa0473747f6a1276def0023813e.png

 正交表的特性


c89861321f1b4a4998abd834f183dbcd.png

🍑根据正交表设计测试用例

整体步骤如下

1、找出因素数和水平数

2、生成正交表(用到了allpairs)

3、根据正交表来编写测试用例

4、补充可能存在遗漏但是非常重要的测试用例


比如我们要针对一个网站的用户注册页面来设计一个测试用例

0db471ae8c874ab1b286ca8bfd10d0f5.png



相关文章
|
2月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
282 1
|
2月前
|
人工智能 测试技术 调度
写用例写到怀疑人生?AI 智能测试平台帮你一键生成!
霍格沃兹测试开发学社推出AI智能测试用例生成功能,结合需求文档一键生成高质量测试用例,大幅提升效率,减少重复劳动。支持自定义提示词、多文档分析与批量管理,助力测试人员高效完成测试设计,释放更多时间投入核心分析工作。平台已开放内测,欢迎体验!
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
如何让AI更“聪明”?VLM模型的优化策略与测试方法全解析​
本文系统解析视觉语言模型(VLM)的核心机制、推理优化、评测方法与挑战。涵盖多模态对齐、KV Cache优化、性能测试及主流基准,助你全面掌握VLM技术前沿。建议点赞收藏,深入学习。
552 8
|
1月前
|
人工智能 自然语言处理 测试技术
让AI帮你跑用例-重复执行,不该成为测试工程师的主旋律
测试不该止步于重复执行。测吧科技推出用例自动执行智能体,通过AI理解自然语言用例,动态规划路径、自主操作工具、自动重试并生成报告,让测试工程师从“点点点”中解放,专注质量思考与创新,提升效率3倍以上,节约人力超50%,重构测试生产力。
|
5月前
|
测试技术
软考软件评测师——可靠性测试测试方法
软件可靠性是指软件在规定条件和时间内完成预定功能的能力,受运行环境、软件规模、内部结构、开发方法及可靠性投入等因素影响。失效概率指软件运行中出现失效的可能性,可靠度为不发生失效的概率,平均无失效时间(MTTF)体现软件可靠程度。案例分析显示,嵌入式软件需满足高可靠性要求,如机载软件的可靠度需达99.99%以上,通过定量指标评估其是否达标。
|
安全 Java 测试技术
python接口自动化(三)--如何设计接口测试用例(详解)
上篇我们已经介绍了什么是接口测试和接口测试的意义。在开始接口测试之前,我们来想一下,如何进行接口测试的准备工作。或者说,接口测试的流程是什么?有些人就很好奇,接口测试要流程干嘛?不就是拿着接口文档直接利用接口 测试工具测试嘛。其实,如果只是三五个接口,你可以这么做一个临时的接口测试。但是,如果是上百个接口,或者,你们公司的这个项目,第一次做接口测试,那么,我们还是很有必要严格遵守接口测试的流程。
485 0
python接口自动化(三)--如何设计接口测试用例(详解)
|
测试技术
正交试验测试用例设计及工具推荐
在科研和生产实践中,人们往往要做许多次实验来进行某项研究。实验条件一般包括很多因素,当因素的值不同时,实验的结果也不一样。如果想把每个因素的每个值都要实验一遍,总实验数就等于各因素的值的个数的乘积,而这个数往往很大,超过了可接受的成本。 例如,假设某个实验由A,B,C,D四个因素,每个因素都有10个不同的取值,那么如果想把每个因素都考虑到,我们需要做 10*10*10*10=10000次实验。 为了减少实验数目,我们必须选出那些最有代表性的例子。于是,就要用到了正交表法(Orthogonal Array Testing Strategy)。
709 0
正交试验测试用例设计及工具推荐
|
算法 安全 测试技术
【软件测试】测试用例的设计方法
测试用例写的过于简单,则可能失去了测试用例的意义,设计过于简单的测试用例其实并没有真正的进行设计,只是把需要测试的功能模块记录下来而已,它的作用仅仅是在测试过程中作为一个简单的测试计划,提醒测试人员测试的主要功能包括哪些而已,测试用例设计的本质应该是在设计的过程中理解需求,检验需求,并把对软件系统的测试方法的思路记录下来,以便指导将来的测试
【软件测试】测试用例的设计方法
|
安全 中间件 测试技术
【面试高频】给你一句话需求,让你设计测试用例,该怎么做?
【面试高频】给你一句话需求,让你设计测试用例,该怎么做?
【面试高频】给你一句话需求,让你设计测试用例,该怎么做?