软件测试(第2版)_Paul学习03_01——Ch2举例_03

2.4 佣金问题

第三个例子是个典型的商务计算例子,包含了计算和决策。

2.4.1 问题陈述

步枪销售商销售制造商制造的步枪机(lock)、枪托(stock)和枪管(barrel)。枪机卖45美元,枪托卖30美元,枪管卖25美元。销售商每月至少要售出一只完整的步枪,且生产限额是大多数销售商在一个月内科销售70个枪机、80个枪托和90个枪管。每访问一个镇子之后,销售商都给制造商发出电报,说明在那个镇子中售出的枪机、枪托和枪管数量。到了月末,销售商要发出一封很短的电报,通知-1个枪机被售出。这样步枪制造商就知道当月的销售情况,并计算销售商的佣金如下:销售额不到(含)1000美元的部分为10%,1000(不含)~1800(含)美元的部分15%,超过1800美元的部分20%。佣金程序生成月份销售报告,汇总售出的枪机、枪托和枪管总数,销售商的总销售额以及佣金。

2.4.2 讨论

这个问题分为三个不同的部分:输入数据部分,用来处理输入数据有效性;销售额计算部分;以及佣金计算部分。在实现中省略数据输入有效性部分,使用while循环模拟电报规则。

2.4.3 实现

C语言实现代码如下:

 

2.5 SATM系统

为了更好地讨论集成和系统测试问题,需要一个适用范围更大的例子。这里介绍一个简化的ATM的系统SATM作为讨论的例子,其包含了各种功能和交互,是典型的客户-服务器系统的客户端。书中本章和后续章节只给出了需求规格、界面和有关业务的有限状态机、流程图等。后续考虑适用Java语言实现一个简单的模拟系统,在所有的基础问题讨论后,再专门进行一个分析和研究。

2.5.1 问题陈述

SATM系统通过如图2所示的15个屏幕与银行客户通信。采用具有如图1所示的功能终端,SATM客户可以选择三种事务中的任意一种:存款、取款和余额查询。这些事务可以在两类账户上完成:支票账户和储蓄账户。

 

软件测试(第2版)_Paul学习03_01——Ch2举例_03

图1 SATM终端

当银行客户来到SATM机前时,显示屏幕1.银行客户通过带有个人账户编号(PAN)编码的塑料卡片访问SATM系统,这是打开包含客户姓名和账户信息等的内部客户账户文件的钥匙。如果客户的PAN与客户账户文件中的信息匹配,系统向客户显示屏幕2.如果没有找到客户的PAN,则显示屏幕4,并留下卡片。

当出现屏幕2时,系统会提示客户输入个人标识编号(PIN)。如果所输入的PIN正确则系统显示屏幕5,否则显示屏幕3.客户有3次机会更正PIN,三次失败之后,会显示屏幕4,并留下卡片。

当出现屏幕5时,系统会向客户的账户文件中增加两条信息:当前日期和ATM会话递进编号。客户从屏幕5中显示的选项中选取所需的事务,然后系统立即显示屏幕6,从中用户选择被选事务要处理的账户。

如果请求查询余额,则系统会检查本地ATM文件,寻找未完成的事务,并使这些事务五从客户账户文件得到的该日开始余额一直。然后显示屏幕14.

如果请求存款,则存款信封槽的状态要通过终端控制文件中的一个字段确定。如果没有问题,则系统会显示屏幕7,获得事务金额。如果存款信封槽有问题,则显示屏幕12。一旦输入存款账户之后,系统显示屏幕13,接受存款信封,并处理存款。如果所输入的存款金额是本地ATM文件中的未完成金额,则每个月的存货计数加1。这些都由主ATM(中心)系统每天处理一次。然后显示屏幕14。

如果请求取款,则系统检查终端控制文件中的取款通道状态(是阻塞还是可用)。如果阻塞,则显示屏幕10,否则显示屏幕7,使客户能够输入取款金额。一旦输入取款金额,系统要检查终端文件状态,查看是否有足够存款可提取,如果存款不足,则显示屏幕9,否则处理取款。系统检查客户余额,如果资金不足,则显示屏幕8。如果账户余额足够,则显示屏幕11并付现金。提取金额被写入未完成的本地ATM文件中,每月取款技术加1。余额打印在事务收据上,与余额请求事务的处理过程相同,客户取走现金之后,显示屏幕14.

如果客户按下屏幕10、12、14中的按钮否,则系统会显示屏幕15,并退回客户的ATM卡。一旦卡从卡槽中取走,系统会显示屏幕1。如果客户按下屏幕10、12、14中的按钮是,则系统会显示屏幕5,使客户可以选择额外的事务。

 

软件测试(第2版)_Paul学习03_01——Ch2举例_03

图2 SATM屏幕

2.5.2 讨论

SATM系统是一个简化的ATM系统,有很多细节方面还不是那么完善,与真实的ATM有很多不同,与我们的ATM适用习惯也可能不同,只是为了讨论问题方便做了必要的简化,对于其的理解,尽可能从前面的问题陈述中去理解,不要仅仅凭经验去理解。

2.6 货币转换器

问题描述:这个应用程序将美元转换为任意四种货币:巴西瑞尔、加拿大元、欧元和日元。货币选择由单选按钮控制,这些按钮相互排斥。当选择了一个国家时,系统会通过使标签句子变得完整来回应。例如,如果点击了”加拿大”按钮,则标签”等于……”会变成”等于加拿大元”。此外,程序会在等量货币金额的输出位置旁边显示一面加拿大国旗。选择货币之前或之后,用户输入美元金额。一旦两个任务都完成,用户可以点击”计算”按钮、”清除”按钮或”退出”按钮。点击”计算”按钮会将美元金额转换为所选货币的等量金额。点击”清除”按钮可以重新设置货币选择、美元金额和等量货币金额及相关标签。点击”退出”按钮,则结束应用程序。

软件测试(第2版)_Paul学习03_01——Ch2举例_03

图3 货币转换器GUI

2.7 土星牌挡风玻璃雨刷

问题描述:土星牌挡风玻璃雨刷是由带刻度盘的控制杆控制的。这种控制杆有四个位置:停止、间歇、低速和高速,刻度盘有三个位置,分别是数字1、2和3。刻度盘位置指示三种间歇速度,刻度盘的位置只有当控制杆在间歇位置上才有意义。以下决策表给出了挡风玻璃雨刷对应控制杆和刻度盘的工作速度(每分钟摇摆次数)。

停止

间歇

间歇

间歇

低速

高速

——

1

2

3

——

——

0

4

6

12

30

60

来源:SoftwareBear

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年10月11日
下一篇 2016年10月11日

相关推荐