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

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

一、测试用例的基本要素

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

测试用例(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



相关文章
|
5月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
480 1
|
5月前
|
人工智能 测试技术 调度
写用例写到怀疑人生?AI 智能测试平台帮你一键生成!
霍格沃兹测试开发学社推出AI智能测试用例生成功能,结合需求文档一键生成高质量测试用例,大幅提升效率,减少重复劳动。支持自定义提示词、多文档分析与批量管理,助力测试人员高效完成测试设计,释放更多时间投入核心分析工作。平台已开放内测,欢迎体验!
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
如何让AI更“聪明”?VLM模型的优化策略与测试方法全解析​
本文系统解析视觉语言模型(VLM)的核心机制、推理优化、评测方法与挑战。涵盖多模态对齐、KV Cache优化、性能测试及主流基准,助你全面掌握VLM技术前沿。建议点赞收藏,深入学习。
1506 8
|
4月前
|
人工智能 自然语言处理 测试技术
让AI帮你跑用例-重复执行,不该成为测试工程师的主旋律
测试不该止步于重复执行。测吧科技推出用例自动执行智能体,通过AI理解自然语言用例,动态规划路径、自主操作工具、自动重试并生成报告,让测试工程师从“点点点”中解放,专注质量思考与创新,提升效率3倍以上,节约人力超50%,重构测试生产力。
|
8月前
|
测试技术 Python
Python测试报告生成:整合错误截图,重复用例执行策略,调整测试顺序及多断言机制。
如何组织这一切呢?你可以写一本名为“Python测试之道”的动作指南手册,或者创建一个包含测试策略、测试顺序、多断言机制的脚本库。只要你的测试剧本编写得足够独到,你的框架就会像一位执行任务的超级英雄,将任何潜伏于代码深处的错误无情地揪出来展现在光天化日之下。这些整理好的测试结果,不仅有利于团队协作,更像冒险故事中的精彩篇章,带给读者无尽的探索乐趣和深刻的思考。
198 10
|
10月前
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
1401 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
|
8月前
|
测试技术
软考软件评测师——可靠性测试测试方法
软件可靠性是指软件在规定条件和时间内完成预定功能的能力,受运行环境、软件规模、内部结构、开发方法及可靠性投入等因素影响。失效概率指软件运行中出现失效的可能性,可靠度为不发生失效的概率,平均无失效时间(MTTF)体现软件可靠程度。案例分析显示,嵌入式软件需满足高可靠性要求,如机载软件的可靠度需达99.99%以上,通过定量指标评估其是否达标。
|
8月前
|
消息中间件 缓存 监控
性能测试怎么做?方法、流程与核心要点解析
本文系统阐述了性能测试的核心方法论、实施流程、问题定位优化及报告编写规范。涵盖五大测试类型(负载验证、极限压力、基准比对、持续稳定性、弹性扩展)与七项关键指标,详解各阶段任务如需求分析、场景设计和环境搭建,并提供常见瓶颈识别与优化实战案例。最后规范测试报告内容框架与数据可视化建议,为企业级实践提出建立基线库、自动化回归和全链路压测体系等建议,助力高效开展性能测试工作。
|
编解码 缓存 Prometheus
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
本期内容为「ximagine」频道《显示器测试流程》的规范及标准,我们主要使用Calman、DisplayCAL、i1Profiler等软件及CA410、Spyder X、i1Pro 2等设备,是我们目前制作内容数据的重要来源,我们深知所做的仍是比较表面的活儿,和工程师、科研人员相比有着不小的差距,测试并不复杂,但是相当繁琐,收集整理测试无不花费大量时间精力,内容不完善或者有错误的地方,希望大佬指出我们好改进!
868 16
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!

热门文章

最新文章