测试思想-测试设计 授客细说场景测试用例设计与实践

简介: 测试思想-测试设计 授客细说场景测试用例设计与实践

授客细说场景测试用例设计与实践


测试是一种思想,短视者把工具当目的,远视者把工具当手段.....

 

软件设计

1)单个用户操作->触发单个事件->事件处理

2)按顺序执行多个用户操作->按顺序触发多个事件,形成事件流

 

注:通常事件是操作触发的,和操作往往是一一对应的关系,所以,这里为了便于理解,暂且把“操作”名称,称为事件名。

 

举例:在windows画图榜中画线为例

 



这里简单说,触发了三个事件:鼠标左键按下,鼠标左键弹起,鼠标移动。

事件处理:

鼠标左键按下时,用两个不同名称的变量保存鼠标的点击点,作为直线的起点和终点;

鼠标移动时,不断用最新的鼠标点代替线条中线条终点,并擦除之前画的线条;

鼠标左键弹起时,保存最后一个点作为直线终点,并画线。

 

当然,我们可以稍微宏光的把多个“较小”的用户操作整合为一个“较大”的用户操作,比如上述的三个操作(按下鼠标左键,移动鼠标,松开鼠标左键),可以整合为一个操作--“画线”。

 

借鉴软件设计的思想,引进“按场景设计用例”的思想

 



 

 

基本流用黑色表示,是经过用例的最简单的路径。

备注:个人理解,这个称为“最主要”的路径会比较合适,具体理由见下文说明

 

备选流用不同的彩色表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流13);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流24

 

 

什么叫场景

通俗的将,场景为用户活动和活动环境的结合。

其中,用户活动通常是由一系列操作组成,活动环境则通常是操作时的软、硬件环境。

 

->按场景来设计用例,其实就是设计不同系列的操作,按顺序去触发每个系列的操作,查看其结果是否和预期保持一直。

 

问题来了,那么多用户操作,每个系列的操作要怎么安排??

 

设计思想:

产品是给用户使用的->用户是怎么使用产品的?->操作产品:

1)如果顺利完成操作,产品功能好

2)如果不能完成操作,产品功能差

 

->测试人员要模拟用户操作->用户怎么操作的?:

1)用户会按模拟的那样,操作产品(不管是有意还是无意),测试投入有价值

2)用户永远不会那么操作,测试投入约等于无价值。

 

->按优先级模拟操作:优先模拟用户最有可能的系列操作,即用户场景,然后模拟次可能的场景操作。

 

注意:不管是不是按场景设计用例,这也是作为用例优先级安排的一条最最基本的原则。

 

 

看完了似乎还是没解决怎么安排的问题,对吧

烦先看文章“细说软件产品和业务&业务过程(流程) &业务逻辑

 

看完了文章,可以容易得出

1)业务逻辑之业务过程是用户最有可能执行的场景操作--应设计为基本流

2)业务逻辑之业务规则是用户次有可能执行的场景操作--应设计为被选流

 

注:以上这种对应关系仅是大致思想,基本是那样,并不绝对。

 

设计实践

1.绘制事件流景

2.描述事件流

3.用例设计

 

例子:以学校学生申请助学金为例子

业务过程:

学生申请助学金->班主任审批->分院负责人审批->学工处审批->资助领导小组审批

 

附加说明:

审批时可选择助学金等级:1等,2等,3

1.班主任仅可见其管理班级的学生提交的申请表

2.分院负责人仅可见其管理院系的学生提交的申请表

3.学工处和资领小组审批可见所有审批拒绝通过的申请表

4.职位较低的审批人拒绝通过,不影响较高职位的人(学工处及资助领导处)对申请进行审批、删除(如果审批人有权限的话

5.如果前面的审批人选择审批通过,那么后面的审批人仅在表单流程走到自己的审批节点时才可以看到表单

 

绘制事件流图

 



特别说明:

1.如图,为了画图和事件流描述方便、易于理解,我们可以增加“虚事件”--不需要实际操作去触发的事件,之所以说是虚事件,因为没有用户、系统提供实际操作,就不会产生事件。

2.如图,为了便于理解,通常把“事件流”拆分成一个一个事件(过程中,某个过程节点上的主选事件和备选事件,分别用不通颜色代替),也就是说上面每根带箭头的线条,宏光上仅代表一个事件,所谓的事件流是由这些事件按一定顺序触发后才形成的。

 

描述事件流

推荐书写格式

场景名称(描述这一整个事件流为了完成什么事情?目的)

事件1

事件2

...

事件N

 



用例设计

通常情况下,可以把每个场景当作一条用例。这里需要注意的是,这里的事件流侧重事件触发逻辑顺序,设计用例时,还要注意测试数据(按我的观点,测试逻辑和测试数据一般是要分开的)

 

根据上述例子中的附加说明,每条用例可能有多条测试数据。因为审批过程中是可修改助学金等级的,这个很重要,所以要测试不同等级的审批结果。

 

适用范围:

通常,按场景设计用例,比较适合流程性比较强的测试,比如业务测试。

 

当然,这种思想,也可以应用用在局部功能的测试上,具体参见文章“测试用例设计实践总结”描述中,其核心思想和这个场景测试是差不多的。

 

pdf版下载:

授客细说场景测试用例设计与实践.pdf

 

目录
相关文章
|
9月前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
190 4
|
4月前
|
边缘计算 安全 5G
高精度时钟同步测试仪:构建全场景时间同步生态
在数字化转型中,时间同步至关重要。西安同步电子科技的 SYN5106 高精度时钟测试仪,具备±20ns 时差测量精度与 GPS/北斗双模授时能力,广泛应用于电力、通信、金融和科研领域。它解决变电站时间偏差、5G 基站同步误差及高频交易延迟等问题,助力智能电网、5G 网络和科研实验。产品便携可靠,支持多协议,满足国家安全要求,为各行业提供精准时间同步解决方案。未来将探索量子通信与深空探测等领域,持续推动技术创新。
|
4月前
|
缓存 测试技术 API
RESTful接口设计与测试实践
通过理解和实践上述原则和步骤,你就可以设计和测试你的RESTful接口了。最后,它可能会变成你为优化系统性能和用户体验所使用的重要工具,因为好的接口设计可以使得从服务器端到客户端的通信更加直接和有效,同时提升产品的使用体验和满意度。如此一来,写一个好的RESTful接口就变成一种享受。
158 18
|
5月前
|
监控 测试技术 数据库连接
利用 RunnerGo 深度探索 API 性能测试:从理论到实践
API性能测试是保障应用稳定性和用户体验的关键环节。本文详细探讨了如何使用RunnerGo全栈测试平台进行高效API性能测试,涵盖测试计划创建、场景设计、参数配置到执行与分析全过程。通过电商平台促销活动案例,展示了高并发下的测试策略与优化措施,如代码与数据库查询优化、数据库连接池扩容、服务器资源配置调整及缓存策略实施等。最终显著提升系统性能,满足高并发需求。API性能测试需持续关注与优化,以适应业务发展和用户需求变化。
202 33
|
5月前
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
698 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
|
9月前
|
人工智能 JavaScript 前端开发
自动化测试框架的演进与实践###
本文深入探讨了自动化测试框架从诞生至今的发展历程,重点分析了当前主流框架的优势与局限性,并结合实际案例,阐述了如何根据项目需求选择合适的自动化测试策略。文章还展望了未来自动化测试领域的技术趋势,为读者提供了宝贵的实践经验和前瞻性思考。 ###
199 11
|
4月前
|
编解码 5G 定位技术
时间频率综合测试仪优势所在及场景使用介绍
时间频率综合测试仪是保障系统精准运行的关键设备。以西安同步电子科技有限公司的SYN5104型为例,它集时间标准源、时差测量和频率测试于一体,功能涵盖时间准确度、频率分析、PPS/B码/E1/PTP/NTP测试等,精度达30ns。其便携设计适用于研发、标定、现场检测,支持电力系统校准、通信同步测试及科研校准等场景,助力高精度时频同步与产品质量提升。文章版权归西安同步电子科技有限公司所有,严禁侵权。
|
7月前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
293 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
6月前
|
数据可视化 JavaScript 前端开发
利用Postman和Apipost进行API测试的实践与优化-动态参数
在API测试中,Postman和Apipost是常用的工具。Postman内置变量功能有限,面对复杂场景时需编写JavaScript脚本,增加了维护成本。而Apipost提供丰富的内置变量、可视化动态值配置和低代码操作,支持生成真实随机数据,如邮箱、手机号等,显著提升测试效率和灵活性。对于复杂测试场景,Apipost是更好的选择,能有效降低开发与维护成本,提高测试工作的便捷性和可维护性。
|
9月前
|
测试技术 Python
探索软件测试的深度与广度:从理论到实践
在数字化时代,软件已成为我们生活中不可或缺的一部分。随着技术的不断进步和用户需求的多样化,确保软件质量变得尤为重要。本文将深入浅出地介绍软件测试的核心概念、类型及其在软件开发生命周期中的重要性。我们将通过实际案例,展示如何实施有效的测试策略,并探讨自动化测试的未来趋势,旨在为读者提供一套完整的软件测试知识体系,帮助提升软件质量和开发效率。