模拟试卷一
“商场管理信息系统”问题描述:
库房管理员负责录入商品的入库和出库信息,系统自动根据库房管理员的输入修改库房的库存商品信息;当商品的库存数量低于临界值,系统自动打印出缺货商品的采购单交给采购员。售货员负责登入商品销售信息(品名,编号,销售量,单价),系统根据售货员的输入,自动修改前台商品库存信息,当前台商品数量低于临界值,系统打印出领货通知单交给库房管理员。
问题1:画出尽可能详细的“商场管理信息系统”数据流图。
问题2:按照软件工程的规范写出“商品入/出库信息”的数据字典(定义到第2层)。
问题3:根据问题1中你所画的数据流图,采用面向数据流的方法,画出系统的软件结构图 问题4:已知“销售模块”的IPO表如下,请画出该模块的程序流程图。
IPO表 系统:商场管理信息系统 作者:××× 模块:销售模块 日期:×××× 被调用: 调用: 商场管理信息系统 s001:打印领货通知单 s002:根据销售商品的编号在前台库存信息中定位该商品 输入: 输出: 商品销售信息 前台商品库存信息 前台商品库存信息 领货通知书 当前商品数量 处理: 根据售货员录入的商品销售信息,自动修改前台商品库存信息,当前台商品数量低于临界值,打印出领货通知单交给库房管理员 局部数据元素: 商品数量临界值为10,前台商品数量为NG,NG可从前台商品库存信息中取得,在程序流程图中用“NG←前台商品库存信息”表示,销售量为SN 问题5:请至少用两种测试方法设计出两套测试数据,用于测试问题4中你设计的程序,并说明你采用了什么测试方法。 参考答案 问题1.
库房管理员 录入商品进 出库信息 更新库 存信息 打印进 存单 采购员 商品进出信息 商品库存信息 销售员 录入商品 销售信息 更新前台库存信息 打印领 货单 商品销售信息 前台商品库存信息
问题2.
商品入/出库信息={品名+编号+生产厂家+数量+单价+入/出库日期+经手人} 品名=20{ 字符 }20
编号=10{ 数字} 10 数量=10{ 数字} 10
生产厂家=20{ 字符 }20 单价=5{ 数字} 5+”.”+2{ 数字} 2
入/出库日期=10{ 数字 }10 经手人=10{ 字符 }10 问题3.
商场管理信息系统 仓库管理 销售管理 录入商品入出库信息 问题4:
更新 商品 库存 信息 打印 订货单 录入 商品销售信息 更新前台库存信息 打印 领货单
Begin 根据销售商品的编号 在前台库存信息中定位该商品 Ng←前台商品信息 NG=NG-SN 前台商品信息←Ng true ng<10? 返回当前商品数量 打印领货通知单 End
问题5
由于流程图只有一个判断语句,且判断语句中的变量(ng)只有一个,而临界值是一个常数10,所以测试数据的选取只与ng有关。 1、取ng=10,可对该程序进行边界值测试法,这属于黑盒测试,测试目的在于测试程序能不能处理商品数量刚好等于临界值的情况。 2、取: ng =11,
ng=8
可对该程序进行语句覆盖或判定覆盖测试,属于白盒测试。语句覆盖的测试目的在于将程序的每条语句都执行到,以判断语句有无错误;判定覆盖测试目的在于通过测试将程序中判定的真假分支都执行一遍,以观察判定的每个分支有无错误产生。
模拟试卷二
“报刊订阅系统”问题描述:
系统保存所有通过邮局发行的报刊的与发行有关的信息;接受订阅者的订阅和付款,并保存订阅、付款日期和金额、以及投递信息;输出投递和订阅清单;接受顾客的查询服务;统计各报刊的各阶段的总订阅数,并输出各报社、各杂志社的订单汇总表。
问题1:画出尽可能详细的“报刊订阅系统”数据流图。
问题2:按照软件工程的规范写出“报刊订单”的数据字典(定义到第2层)。
问题3:根据问题1中你所画的数据流图,采用面向数据流的方法,画出系统的软件结构图
问题4:已知“订阅模块”的IPO表如下,请画出该模块的程序流程图。 IPO表 系统:报刊订阅系统 作者:××× 模块:订阅模块 日期:×××× 被调用: 调用: 报刊订阅系统 s001: 根据报刊号在报刊信息中定位要订阅的报刊 s002: 打印订单 输入: 输出: 订阅信息 成败信息 报刊信息 订单 订单文件 订阅费用 处理: 根业务员输入订阅者的订阅信息,系统根据订阅信息中的报刊号,查询报刊信息库,是否存在该报刊,如果存在则提取期刊的单价等信息,再根据订阅信息中起始月和期限计算订阅费用,如果订阅户付款则保存订阅信息到订单文件,打印订单;否则本次操作无效 局部数据元素: 设单价为DJ,订阅费用为DF,起始月为SM,期限为L。DJ可从报刊信息中获取,在程序流图中用“DJ←报刊信息”表示
问题5:请至少设计出两组测试数据,用于测试问题4中你设计的程序,并说明你采用了什么测试方法和目的。 参考答案: 问题 1.
说明:绘制数据流图可以采用分层的方法,即先绘制出顶层数据流图,用于说明整个系统的概貌,然后再分块绘制下层数据流图。本题答案给出的是顶层数据流图,大家可自行绘制“订阅,付费”,“订单统计”等下层数据流图。 问题 2.
数据流名 报刊订单 .. .. .. .. .. .. .. .. .. .. .. .. 名称 订单号 订阅人 投递地址 邮政编码 联系电话 订阅日期 报刊名 报刊号 单价 订阅份数 起始月 期限 实付金额 别名 类型 长度 数字 8 处理 来源 流向 自动增1 人工输入 人工输入 人工输入 人工输入 备注 年、月、日 元/月 年、月 订阅季数 订阅单位 文本 40 文本 60 数字 文本 12 付款日期 日期 自动 自动 文本 16 文本 10 金额 数字 日期 数字 金额 期限*3*单价*订阅份数 人工输入 自动 人工输入 人工输入 人工输入 自动 说明:数据字典的编制可以采用上面的表格方法,也可以采用模拟试卷一中的方法。 问题 3.
问题 4
Begin 根据报刊号在报刊信息中 定位要订阅的报刊 true 存在该报刊? dj←报刊信息 DF←DJ*L 显示DF 报错 付款? true 本次操作无效 订单文件←订阅信息,DF End 打印订单
问题5: 因为程序中有两个判断,所以测试数据围绕这两个判断展开,令“存在该报刊”为X,“付款”为Y,则 为达到条件覆盖,需要四组测试数据:
(X=true,Y=true) (X=true,Y=false) (X=false,Y=true) (X=false,Y=false)
条件覆盖的含义是,不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。
为达到判定覆盖,需要三组测试数据:
(X=true,Y=true) (X=true,Y=false)
(X=false,Y=true或false)
判定覆盖又叫分支覆盖,它的含义是,不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次。
因篇幅问题不能全部显示,请点此查看更多更全内容