实战案例:场景测试之ATM机取款业务测试

article/2025/10/28 21:48:07

在这里插入图片描述
本期,我们通过经典案例——ATM机的操作,来为大家详细说说如何撰写对应的测试用例。

【案例】

在我们日常生活中,ATM机是个大家都非常熟悉的事物。银行为例提高工作效率,方便客户随时办理基础的储蓄和提现业务,于是,ATM机就诞生了。我们都知道,所谓用户取款业务,就是指为用户提供插卡、校验和取款操作的全过程。那么,围绕用户取款业务,我们应该如何为之设计测试步骤呢?

【解析】

在这一场景下,我们首先需要做的,就是构造基本流和备选流。详情如下:

1)基本流

对于ATM机来说,它的基本流的初始状态是:荧幕出现欢迎页面,表示系统已经准备就绪,可以开始自主操作。接下来,它的业务处理流程基本如下:

① 插卡:用户将银行卡插入ATM机的卡槽;

② 卡校验:系统读取被插卡的账户代码,判断该卡是否为本系统可接受的卡。

▷▷在基本流中,插卡校验顺利通过后,即表示这是一张系统可以识别接受的ATM卡。因此,此处对应第1个校验点。

③ 密码输入:系统自动读取卡的账户,获取其预设密码,并要求用户输入6位数字取款密码。

④ 密码校验:系统根据卡账户的预设密码,并与用户输入的密码比较,判断二者是否一致。

▷▷对基本流而言,输入的密码正确,表示可接受该银行卡接受后续操作。所以,此处对应第2个校验点。

图片

⑤ 取款交易选择:基于我们是针对用户取款业务做的场景测试,因此,我们将在这一测试处,简化操作流程。默认我们直接选择取款交易,且该银行卡处于活期账户状态。在此处,我们暂时忽略系统还支持存款、查询余额、修改密码等其他操作,并忽略银行卡可能属于定期、冻结账户等状态;

⑥ 取款金额设置:系统要求用户输入要取款的金额数。注意,取款的金额应为50的整数倍,且应受到数目上的各种限制;

⑦ 取款校验:系统将账户、密码、交易类型(本例为“取款”交易)及金额数作为一笔交易发送给银行系统,启动校验过程。

▷▷对于基本流而言,系统处于联机状态,对用户的授权请求予以答复,且批准完成取款,并更新账户余额。此处对应第3个校验点。

⑧ 出钞:系统从现金槽中提供现金钞票。

⑨ 凭条打印选择:一般在处理完成一次事务后,系统会再次提示选择交易类型,为了简化流程,本案例中我们暂且忽略这个步骤。而是认为完成交易后,直接提示是否进入后续交易凭条打印环节。

▷▷对于基本流而言,用户选择打印交易凭条。此处对应第4个校验点。

⑩ 提供交易凭条:系统从ATM机的小票卡槽中提供交易凭条,并更新ATM机内部记录。

⑪ 退卡:系统返还用户的ATM卡。

▷▷用例至此结束,这时ATM机再次回到准备就绪状态。

2)备选流

基本流中得到4个关键校验点如下:

校验点1:对应步骤②,对卡的有效性进行校验,判断卡是否有效;

校验点2:对应步骤④,对用户输入的密码进行校验,判断输入的密码是否匹配预设密码;

校验点3:对应步骤⑦,对输入的取款金额进行校验,判断取款金额设置是否有效;

校验点4:对应步骤⑨,对凭条打印进行选择,判断是否需要打印交易凭条。

图片

根据上述4个校验点,我们可以分别得到各个校验点的备选流。对此,我们可以做出如下的分析判断:

① 备选流1:卡错误

在基本流步骤②处触发,在校验ATM卡时,发现该卡无效,则应提示无效卡并将卡退回。退回后,系统回到准备就绪状态,本用例终止。

② 备选流2:密码错误

在基本流步骤④处触发,校验密码时有3次输入密码的机会,当第一次或第二次密码输入错误后,仍有继续输入密码的机会,则系统提示密码错误,要求用户再次输入密码,系统返回密码输入状态,在步骤③处重新加入基本流。

③ 备选流3:密码失败

该备选流仍在基本流步骤④处触发,校验密码时,当密码第3次输入错误后不再有输入机会,此时系统提示密码失败,并直接吞掉用户的ATM卡,并提示用户到银行柜台办理相关取卡事宜,系统返回准备就绪状态,本用例终止。

▷▷值得我们注意的是,备选流2、3是由相同事件触发的(密码输入错误),区别只是在于触发次数问题。多次触发后,将导致系统产生不同的处理结果。这与程序执行中的循环结构,其实是非常类似的。

④ 备选流4:输入金额错误

在基本流步骤⑦处触发,校验用户输入的取款金额时失败,禁止取款,要求用户重新输入取款金额,系统返回金额输入状态,在步骤⑥处重新加入基本流。

▷▷这里需要注意的是,取款金额错误可分多种情况。包括:取款账户的余额不足;金额格式错误;ATM机现金不足;达到账户单次取款的最大金额等等。但是,机智的小伙伴可能发现了,我们比昂没有针对所有可能出现的错误情况,分别构建不同的备选流,这是为什么呢?感兴趣的小伙伴,可以在留言区告诉小编你的答案。

(我们将从答对的小伙伴中抽取一人,给与奖励哦。)

⑤ 备选流5:不打印凭条

在基本流步骤⑨处触发,选择是否打印交易凭条时选择不打印,则直接退还用户的ATM卡。

小结:我们通过上述所有的基本流与备选流,可以得出一张清晰的画像,如下图:

图片

值得一提的是,在卡密码校验处,一旦用户3次输入密码错误,系统将会把用户的卡没收。之后,ATM机仍会回到系统欢迎画面。这似乎应从基本流的退出状态来结束?但事实上,由于此处包含了一个吞卡的动作,因此,与备选流1和备选流5的执行结果不完全一致。所以,备选流3的执行结果是不同于备选流1和备选流5的。

【场景设计】

根据取款业务的基本流和5个备选流得到的场景集合如下:

场景1(取款成功,且打印凭条):基本流;

场景2(卡错误):基本流+备选流1;

场景3(密码错误):基本流+备选流2;

场景4(密码失败):基本流+备选流3;

场景5(取款金额错误):基本流+备选流4;

场景6(取款成功,不打印凭条):基本流+备选流5。

【测试用例设计】

虽然每个场景对应系统业务流程(从开始到结束状态)的一系列执行过程,但实质上,它仍然是对应测试用例的一组输入和预期输出。因此,对应每个场景可设计一个或多个测试用例。比如:

(1)根据某场景所包含的执行流程,分析出系统应满足的所有输入条件和预期输出;

(2)当场景中包含备选流时,应确定触发该备选流执行的输入条件,并予以标记。

由此,我们可以得出如下结论:

(“V”表示该条件必须有效才可以执行该用例;“I”表示其是触发对应某个备选流的条件;“N/A”表示此测试用例中不需要设置该输入条件。)

图片

为了保证覆盖准确率,我们可以通过以下途径来判断:

(1)应用独立路径测试的策略,每条独立路径对应一个场景;

(2)检查测试用例表,查看是否所有输入都取到“I”的情况,即曾经作为测试用例的触发条件,只要存在某条件从未取到“I”,就证明测试用例存在漏洞,未覆盖所有的场景。

另外,我们还应注意测试数据的设计。对于测试用例来说,我们可以继续根据边界值、等价划分等方法,为它们一一设计具体的测试数据。举个例子,假设正确密码是8个8,那么,我们会得到如下测试结果:

图片

写在最后

通过上述内容,相信大家对场景测试的内容有了一定的了解,希望大家在实际工作中,也能按照上述方法一步一步去做,通过多次实践,对场景测试有更加深刻的认识。祝大家在测试的道路上越走越顺畅~

下面是测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
在这里插入图片描述

最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…


http://chatgpt.dhexx.cn/article/4rD1oF3B.shtml

相关文章

干货收藏!快速掌握用户画像项目的开发流程(附流程图)

导读:随着大数据技术的深入研究与应用,企业的关注点日益聚焦在如何利用大数据来为精细化运营和精准营销服务,而要做精细化运营,首先要建立本企业的用户画像。 在画像系统的项目规划阶段需要明确好项目的开发上线流程以及项目各个阶…

音乐软件案例分析

项目内容这个作业属于哪个课程2023年北航敏捷软件工程这个作业的要求在哪里软件案例分析我在这个课程的目标是学习软件工程理论,在实践中体会并运用软件工程理论,收获团队开发和软件工程实践经验这个作业在哪个具体方面帮助我实现目标实践了软件案例分析…

计算机转岗测试,软件测试人员转岗哪些岗位

对于大多数的大龄程序员来说,转岗也是比较常见的一种职业发展方向,而今天我们就通过案例分析来了解一下,软件测试人员转岗哪些岗位。 1.项目经理 测试人员,尤其是敏捷团队的测试人员,涉及到项目质量相关的方方面面&…

如何构建用户画像?

在《4个问题带你了解用户画像》中,我们了解了用户画像的定义、作用及使用注意事项等。 就有用户留言问了:在实际工作中,构建用户画像的方法有哪些?如何构建用户画像呢? 下面我将结合通过案例,带你了解构建用…

软件工程-案例分析

软件工程-案例分析 Mashiroln 项目内容这个作业属于哪个课程https://bbs.csdn.net/forums/buaa-ase2023这个作业的要求在哪里https://bbs.csdn.net/topics/613598122我在这个课程的目标是通过案例分析总结经验和教训,学习以现代软件工程的视角思考问题这个作业在哪…

python用户画像_python用户画像

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 06某用户画像案例这里通过一个实践案例来将大家更好地带入实际开发画像、应用画像标签的场景中。 本节主要介绍案例背景及相关的元数据,以及开发标签中可以设计…

实战项目:Java分布式优惠券系统后台(持续更新)

前言 陆陆续续总算是把Java基础、计算机网络基础以及数据库相关技术初步看完了,离深层次的理解还有一定的距离。今天开始准备跟着做一个实际项目吧,也希望在过程中能够把相关技术跟实际应用结合起来,俗话说实践出真知,希望通过这次…

Java生鲜电商平台-优惠券系统设计详解

Java生鲜电商平台-优惠券系统设计详解 Java生鲜电商平台-优惠券系统设计详解 优惠券作为电商最常用的营销手段,对于商家而言可以起到拉新、促活、提高转化的作用,对用户而言也可以获得实惠,今天就来谈谈优惠券系统的设计逻辑。 我对于优惠…

vivo全球商城优惠券系统架构设计与实践

业务背景 优惠券是电商常见的营销手段,具有灵活的特点,既可以作为促销活动的载体,也是重要的引流入口。优惠券系统是vivo商城营销模块中一个重要组成部分,早在15年vivo商城还是单体应用时,优惠券就是其中核心模块之一。…

电商系统之优惠券设计

优惠券在电商系统中,主要起着营销、促销等作用,是给以用户一定的优惠额度,以吸引用户下次继续购买。 优惠券框架 优惠券设计和开发的难点在于各种条件的限制,如图: 上图基本涵盖了整个优惠券系统里要设计的内容&#…

构架稳定与可扩展的优惠券系统

每次打完滴滴, 我们都可以分享领券页面到朋友圈, 让大家一起来领券. 而领完券后, 一大堆5折券到账的感觉一定很爽(可惜现在的折扣越来越少了). 想必大家都对滴滴的优惠券影响深刻. 滴滴的用户规模如此之大, 送券力度如此之高, 如果由我们来做,该如何构架这样一个稳定且有扩展性…

Java生鲜电商平台-优惠券系统的架构设计与源码解析

电商后台:实例解读促销系统 电商后台系统包括商品管理系统、采购系统、仓储系统、订单系统、促销系统、维权系统、财务系统、会员系统、权限系统等,各系统之间相互关联、相互依托,为前端的正常业务流转建立结实稳固的基础。 促销系统的主要…

电商项目中的优惠券系统这样设计,同事直呼 666 !

正文 Hollis的新书限时折扣中,一本深入讲解Java基础的干货笔记! 1 Scenario 场景 电商大厂常见促销手段: 优惠券拼团砍价老带新 1.1 优惠券的种类 满减券直减券折扣券 1.2 优惠券系统的核心流程 1.2.1 发券 发券的方式:同步发送…

优惠券系统应该如何设计?

优惠券是一套规则的组合,它的基本信息包括优惠券名称、发放数量、优惠券是否可叠加、每人限领张数、是否和其他促销同时使用(优惠优先级)、使用规则等。那优惠券系统应该如何设计?一起来文章中中看看~ 知识总结很重要,…

实战!如何从零搭建10万级 QPS 大流量、高并发优惠券系统

动手点关注 干货不迷路 👆 需求背景 春节活动中,多个业务方都有发放优惠券的需求,且对发券的 QPS 量级有明确的需求。所有的优惠券发放、核销、查询都需要一个新系统来承载。因此,我们需要设计、开发一个能够支持十万级 QPS 的券系…

从零开始设计开发优惠券系统

什么是优惠券系统 说到电商平台上,无人不知优惠券体系,它是一种常见的促销方式,在规定的周期内,购买对应商品类型和额度商品时,下单结算时会减免一定金额。不过要注意的是优惠券系统和营销系统是不同的,营…

设计电商平台优惠券系统

阅读本文大概需要 4.2 分钟。 引言 每次过节的时候,各大电商的优惠券已经成为了绝对的关键词,最近一直在做优惠券需求,从最初的一无所知到现在建立初步的优惠券框架结构,一路也是磕磕碰碰。今天就把这段时间的输入总结一下然后输…

优惠券系统设计

知识总结很重要,不管是每周的周报,还是阶段性的项目总结,都是一个复盘的过程。近两周一直在做优惠券需求,从最初的一无所知到现在建立初步的优惠券框架结构,一路也是磕磕碰碰。今天就把这段时间的输入总结一下然后输出…

大厂的优惠券系统的设计

原文 : 优惠卷设计 1.Scenario 场景 电商大厂常见促销手段: 优惠券 拼团 砍价 老带新 1.1 优惠券的种类 满减券 直减券 折扣券 1.2 优惠券系统的核心流程 1.2.1 发券 发券的方式:同步发送 or 异步发送 1.2.2 领券 谁能领&#…