软件测试工程师必备:掌握场景分析法快速设计测试用例!

在传统测试中,测试人员通过业务场景、业务规则和已有的测试经验设计测试案例。各条测试案例具有独立性,每条测试案例针对一个固定的业务场景下的具体分支进行验证。然而,这种设计方式常常不能反映“真实的生产环境”(即软件或系统真正对客提供服务运营的环境,以下简称“生产环境”)的当前情况、用户使用习惯以及各种不同业务场景下所衍生延伸出来的复杂关联关系,导致无法有针对性地对被测系统进行测试,更无法达到应有的测试深度。

在传统案例设计方法中,大部分测试案例都归属同一业务场景下,一个固定的业务场景对应一条或者多条测试案例。这种设计方法将一个个场景看成孤岛,彼此之间缺少逻辑关联或程序层面的内在联系。当项目规模较大,多个测试部门协同编写测试案例开展测试时这种“孤岛”效应越发明显。在生产环境下,如果单独执行场景“X”和场景“Y”的案例,都没有问题。而在执行场景“Y”案例之后再执行场景“X”的案例,程序却会报错。

二、场景案例设计方法

(一)核心概念

1.1、场景案例设计方法:

场景:特定情景下的主体活动。

金融场景:特定情景下的金融功能实现方式。

测试场景:金融场景下的回归特定金融功能实现方式的验证。

测试场景案例设计:在特定的测试场景下,面向用户的测试案例设计。

测试场景案例分为单交易场景和多交易场景。

单交易场景测试案例:一支单独交易发生的场景不同,前置条件不同,输入的数据不同而产生的测试案例。

多交易场景测试案例:多支交易发生的场景不同,交易间的逻辑、顺序不同而产生的测试案例。

1.2、场景业务流的划分

场景业务流指不同的输入选择和不同的交易顺序组合产生的业务流程。场景业务流通常分为三种:基本流、备选流、异常流。

基本流:表示通过业务流程时所有的输入和选择都正确,最终能达到目标的流程。

备选流:表示通过业务流程时有部分或全部的输入错误(或者操作错误)导致流程存在反复,但通过系统逻辑的自行纠正仍能最终达到目标的流程。

异常流:异常流表示通过业务流程时输入或选择产生的错误(或操作错误)无法通过系统自动纠正达到目标,而是异常终止的流程(举例:银行卡插入ATM—>输入3次错误的密码—>ATM吞卡)。

基本流、备选流和异常流如下图所示:

图1基本流、备选流和异常流关系图

基本流和不同的备选流、异常流组合形成不同的场景,如下表所示。

表1基本流、备选流和异常流组合场景表

(二)场景案例设计方法的特点

场景案例的设计者需要将自己当成用户,尽可能的全面模拟用户的不同情况下的操作,设计对应的测试点。

(1)模拟用户完成主业务逻辑流程的操作,即正确操作——验证软件系统的主体功能是否实现。

(2)模拟用户错误操作(包括错误地输入数据和错误的操作流程)——验证软件的自主纠错功能是否实现。

做场景案例设计,最重要的是想到一些特定的、特殊的场景。设计贴近生产活动的场景案例才能最大可能的模拟生产活动,测出关键缺陷。下面几种方法渠道可以帮助获取真实、特殊的场景。

(1)技术类异常流:系统底层程序出现问题时,上层程序应该有相应的判断处理逻辑。举例:涉及到多系统之间的通信,如报错“通信异常”或“超时未返回”,应该有对应的处理逻辑。

(2)与一线柜员进行研讨,虚心请教,弥补短板。

(3)研读业务制度,规则。这里的业务制度不是需求说明书,而是最新的人行发文,法律法规(比如最新的资管新规等)。理解明晰制度,才能发现程序、甚至是需求说明书的逻辑漏洞。

(四)场景案例设计步骤

单交易场景和多交易场景的设计步骤相同。具体步骤如下:

步骤一:研读业务需求,确定业务流程(基本流、备选流、异常流)

例如:资金保付产品的退金交易。

1.基本流:退金成功。

2.备选流:在退金过程中出现的分支路径。

3.异常流:异常流表示通过业务流程时输入错误数值(比如退金金额等)产生异常终止流程。

步骤二:绘制流程图,再次确认流程路径。根据基本流、备选流和异常流,生成场景。

步骤三:根据流程图,提取测试路径(每条测试路径需至少包含一条未走过的路径)

步骤四:对路径进行细化,通过边界值等价类等方法细化路径,根据场景编写测试案例,场景和测试案例不一定是完全映射关系。

三、案例实战:资金保付项目场景案例设计

资金保付迎合互联网交易市场发展的需要,以大型银行为保障,将交易各方纳入资金管控体系,实现资金流、信息流、物流的有效融合,从而形成互联网交易平台的金融服务综合解决方案。入金:钱从买家账户到银行保付账户(类似于支付宝的功能)。出金:前从银行保付账户进入卖家账户。退金:退货时钱从银行保付账户退回到买家账户。

(一)单交易场景:资金保付项目退金交易案例:

步骤一:确定业务流程

基本流:农行对农行入金后,再退金,退金成功。

备选流1:退金走二代渠道,退金成功

备选流2:退金走银联渠道,退金成功

备选流3:退金时,订单根据费用分拆。

备选流4:退金时,订单费用是扣除,还是退回。

备选流5:订单未确认时,就退金。退金成功。

异常流1:退金金额不符,退金失败。

步骤二:绘制流程图

图2单交易场景流程图

步骤三:抽取测试路径

表2单交易场景测试路径(节选前7个场景)

步骤四:细化路径,抽取测试用例。由于篇幅限制,退金场景选取1条案例举例。

表3单交易场景测试案例

(二)多交易场景:资金保付项目子合约签约联机全流程案例:

上述编写案例针对的是退金一支交易,是单交易场景,而项目涉及退金、入金、出金、子合约签约、解约以及四种渠道,涉及的场景更为复杂,我们称之为多交易场景。多交易场景的案例设计方法步骤是一样的,具体步骤如下。

基本流:子合约签约->收款白名单增加->入金(本行到本行)->日终跑批生成对账单->对账单正确->确认订单->出金->子合约解约。

备选流1:入金走超网渠道

备选流2:入金走二代渠道

备选流3:退金走二代渠道

备选流4:退金时,走农行对农行。

备选流5:对账单错误,退金。

备选流6:确认订单后,退金。

异常流1:子合约签约->出金。

异常流2:子合约签约->退金。

异常流3:入金完成->子合约解约。

异常流4:入金完成->再次重复签约。

资金保付项目交易级案例场景-联机签约

图3多交易场景流程图

根据基本流和备用流确定场景:

表4多交易场景测试路径(节选前8个场景)

步骤四:细化路径。抽取测试用例。由于篇幅所限,下面以场景1举例完成测试案例的设计。

表5多交易场景测试案例(节选)

四、结语

场景案例测试方法打通了不同交易场景之间的壁垒,解决了传统测试案例难以有效覆盖全部隐性测试点的难题。通过对项目背景的理解和对客户特征的剖析,可以有针对性地选择一些特殊案例加入到测试案例中,删掉冗余重复的案例,节省测试资源,降低业务场景测试成本,进而高效地提高测试效率,保障软件程序能安全、快捷、高质量地投产。

THE END
1.软件测试各阶段测试方法详细解读软件测试过程 一、单元测试 单元测试又称为模块测试,是Zui小单位测试。 · 单元测试具有独立性,可以与系统其他部分分隔离出来,从而完成测试,其依据是详细设计。 · 其测试对象是软件设计的Zui小单位模块与组件,类、文件、窗口、函数、菜单、报表或一个存储过程都可以作为一个单元进行测试。 http://102209092.b2b.11467.com/news/4027074.asp
2.ChatGPT生成测试用例的最佳实践——用ChatGPT做软件测试(3)ChatGPT根据业务用例UC-01补充了测试用例,这使得测试用例在操作流程的使用场景方面覆盖得更加全面。 4)用例评审和改进:对测试用例的评审和改进是确保软件质量的关键环节。结合前面ChatGPT生成的功能和安全测试用例,进行测试团队内部测试用例评审,在进行内部评审时,测试团队成员发现以下问题。 http://www.51testing.com/mobile/view.php?itemid=7803832
3.软件测试项目实战案例本文将介绍一个软件测试项目实战案例,展示在一个实际的软件开发项目中,如何运用不同的测试方法和工具来进行测试,以提高软件质量。 2. 项目为一款在线电子商务平台的开发,旨在提供一个便捷的购物和支付平台。该平台具有商品展示、购物车、支付、订单管理等核心功能。在项目中,我们将使用不同的测试方法和工具,以确保https://wenku.baidu.com/view/f4068bad2c60ddccda38376baf1ffc4ffe47e2b7.html
4.十几个软件测试实战项目外卖/医药/银行/电商/金融搭建Mock服务协助接口测试。 测试框架图 这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。 【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】 一、Python编程入门到精通 二、接口自动化项目实战 三、Web自动化项目实战 https://blog.csdn.net/2301_78276982/article/details/134949708
5.十几个软件测试项目实战,别再说简历项目不知道怎么写了责任描述:负责一部分模块需求评审,测试用例编写,数据准备,执行案例,提交缺陷,追踪缺陷,接口测试,同时也参与了单接口自动化。 项目10:平安信用卡进件系统 项目描述:该项目主要是针对信用卡进件流程系统,是从申请到发卡的流程测试,专门给内部员工使用的一套软件系统。是根据客户提交资料审核客户是否符合发卡资质以及授予多少https://maimai.cn/article/detail?fid=1796989824&efid=ER52PbSbHR5ZdyM4rUeQ_Q
6.软件测试工程师项目案例库专题软件系统测试案例库,提供给测试人员了解更多的测试项目类型。https://www.jianshu.com/c/af7b6dad8035
7.软件测试实例整理20、请问你有没有写过测试脚本,怎么写的? 21、请问你有没有写过web测试,怎么写的? 23、请你回答一下如何测试手机开机键? 24、请问你遇到过哪些印象深刻的bug,接口测试出现bug的原因有哪些? 25、你在做项目中有做过压力测试吗,怎么做 26、请问你在项目中关于功能测试和接口测试是怎么做的 https://zhuanlan.zhihu.com/p/517824402
8.软件项目的沟通管理案例分析软件项目的沟通管理案例分析 引导语:在项目管理中,沟通是一个软指标,其所起的作用不好量化,沟通对项目的影响往往也是隐形的。下面是yjbys小编为你带来的软件项目的沟通管理,希望对大家有所帮助。 项目沟通管理是现代项目管理知识体系中的九大知识领域之一,项目沟通管理在成功所必须的因素—人、想法和信息之间提供了一https://www.yjbys.com/edu/guanligoutong/299336.html
9.软件工程专业培养方案(2022)4.软件工程专业知识。软件工程概论、UML建模、Java EE编程、Java EE框架技术、软件项目管理与案例分析、软件测试技术等。 5.工具性知识。掌握数学、外语、计算机与信息技术应用、社会调查与研究方法、专业论文写作等知识。 6.法律与管理知识。掌握从事软件工程专业所需的法律、法规、标准及工程管理、经济决策知识。 https://www.csust.edu.cn/jtxy/info/1302/20908.htm
10.检测服务如:软件系统性能测试工具LoadRunner、网络测试仪NetScout、线缆认证分析仪Fluke DSX2-5000等,共计5个大类60余款。 Q8:正中信息做过哪些检测项目案例? ◎ 正中信息从事检测行业20余年,累计服务项目案例1000+,其中主要客户有山东省大数据局、山东省人民检察院、山东省高级人民法院、山东省畜牧局、山东省公安厅、山东省http://www.sdzz.cn/service/120.html
11.软件测试缺陷案例6篇(全文)软件实际运行情况错综复杂,任何情况都可能发生,对于空指针判断不能存在任何侥幸心理。 3 结束语 本文通过对软件测试过程中的典型案例的分析和描述,总结出问题的解决方法和预防措施。这些案例均来自于软件测试项目中遇到的实际问题,都是在前人的错误和弯路中总结出来的实战经验。尽管看起来像是初学者犯的低级错误,但实质https://www.99xueshu.com/w/files0wahym9.html
12.《包邮软件测试技术及项目案例实战图书 > 计算机与互联网 > 软件工程及软件方法学 > 包邮 软件测试技术及项目案例实战-微课视频版 乔冰琴,郝志卿,孔德瑾,王建虹,李含欢,李琳,杨泽辉 网书网图书专营店 京东价 ¥ 促销 展开促销 配送至 --请选择-- 支持https://item.jd.com/10036115719355.html
13.软件测试报告必备6篇3.3 测试结果 {按顺序给出每一测试项目的:a.实测结果数据;b.与预期结果数据的偏差;c.该项测试表明的事实;d.该项测试发现的问题。} 3.3.1 3.3.2 测试环境: 测试案例及测试结果: 4 软件需求测试结论 {按顺序给出每一项需求测试的结论。包括:a.正式的软件能力;b.局限性(即此项需求为得到分测试的情况及原因https://www.liuxue86.com/a/4930139.html
14.软件测试之困:测试工程化实践之路本书以软件测试工程化思维为基础,立足项目,采用描述、对话和独白等方式讲述测试工作中发生的故事,内容丰富、实用性强,是一本能帮助测试人员快速成长的图书。 本书首先介绍了测试工程化的认识和测试人员的商业意识;接着介绍了测试流程设计,以及如何通过流程拉齐各成员之间的目标,达到成员之间的合作有序和软件产品的质量https://labs.epubit.com/bookDetails?id=UB7da3e1c3b3dfd
15.2015年软件评测师考试真题(案例分析)软考摘要:希赛网为广大考生整理了2015年软件评测师考试真题,以下为下午案例分析部分,供大家参考学习。希赛网为广大考生整理了2015年软件评测师考试真题,以下为下午案例分析部分,供大家参考学习。 ●阅读下列java程序,回答问题1至问题3,将解答填入答题纸内对应栏内。【Java程序】https://www.educity.cn/rk/1788764.html
16.中国赛宝官方网站l 五所软件质量工程中心有十余年软件性能测试的经验, l 通过CNAS(17025、17020、17043)认可、CMA认证 l 广东省软件产品质量监督检验站 l 接触过包括电子政务、电力、银行等数万种应用系统,拥有丰富的性能专项测试案例库。 典型案例 l 广东省工业互联网安全监测与态势感知平台性能测试项目 l 广东省政务服务数据管理https://www.ceprei.com/contents/232/7919.html
17.淘宝深度分享:如何用真正的机器人模拟真实用户做测试?下图是 UEE 测试系统线下端到端测试的案例,图中分别为 UEE 和联通合作、天猫无人超市、阿里未来酒店的场景。 阿里未来酒店存在 300 多间房,测试人脸识别购买不能只在软件层做回归,但硬件测试找真实的人去测成本高。我们通过机器人测试对未来酒店人脸购买做了自动化验收。 https://www.infoq.cn/article/mw76kp361AqVGcqckuo0
18.月薪最高12000!看看这些宝山岗位有没有你心仪的~软件测试工程师 招聘人数:3人 工作内容: 1、负责测试研发,包括确定测试范围、制定测试方案、优化测试过程、提高测试效率、编写测试计划及用例; 2、负责测试项目的质量控制,积极推进和实施功能、自动化、接口测试、性能测试、功能测试; 3、根据测试需求分析,设计、开发测试案例,执行测试案例; https://www.thepaper.cn/newsDetail_forward_10714673