2007 上半年软件评测师考试真题及答案-下午卷
试题一
阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
【说明】
以下代码由 C 语言书写,能根据指定的年、月计算当月所含天数。
int GetMaxDay( int year, int month )
{
int maxday = 0;
if ( month >= 1 && month <= 12 )
{
if ( month == 2 )
{
if ( year % 4 == 0 )
{
if ( year % 100 == 0 )
{
if ( year % 400 == 0 )
maxday = 29;
else
maxday = 28;
}
else
maxday = 29;
maxday = 28;
}
else
}
else
{
if ( month == 4 || month == 6 || month == 9 || month == 11 )
maxday = 30;
maxday = 31;
else
}
}
return maxday;
}
【问题 1】
请画出以上代码的控制流图。
【问题 2】
请计算上述控制流图的环路复杂度 V(G)。
【问题 3】
假设 year 的取值范围是 1000 < year < 2001,请使用基本路径测试法为变量 year、
month 设计测试用例(写出 year 取值、month 取值、maxday 预期结果),使之满足基本
路径覆盖要求。
答案:
解析:
本题考查白盒测试中的基本路径法的应用。
【问题 1】
模块控制流图是与程序流程图相类似的由许多节点和连接节点的边组成的一种图形,其
中一个节点代表一条语句,边表示节点间的控制流向,它显示了一个函数的内部逻辑结构。
【问题 2】
V(G) = 区域数 = 判断节点数+1。
【问题 3】
在进行程序的基本路径测试时,从程序的环路复杂性,可导出程序基本路径集合中的独
立路径条数,这是确保程序中每个可执行语句至少执行 1 次所必须的测试用例数目的上界。
独立路径是指包括一组以前没有处理的语句或条件的一条路径。
试题二
阅读下列说明,回答问题 1 至问题 5,将解答填入答题纸的对应栏内。
【说明】
负载压力性能测试是评估系统性能、性能故障诊断以及性能调优的有效手段。下述表格
是针对税务征管系统中“税票录入”业务的测试结果,系统服务器端由应用服务器和单节点
数据库服务器组成。
并发用户数
交易吞吐量平均
交易响应时间平
数据库服务器
应用服务器 CPU
值(trans/s)
均值(s)
CPU 平均利用率
平均利用率
10
20
30
50
0.56
2.15
3.87
7.02
0.57
1.16
3.66
6.63
37.50%
57.32%
70.83%
97.59%
13.58%
24.02%
39.12%
53.06%
【问题 1】(4 分)
简述交易吞吐量和交易响应时间的概念。
【问题 2】(2 分)
试判断随着负载增加,当交易吞吐量不再递增时,交易响应时间是否会递增,并说明理
由。
【问题 3】(3 分)
根据上述测试结果,判断服务器资源使用情况是否合理,为什么?
【问题 4】(5 分)
在并发用户数为 50 时,如果交易吞吐量和交易响应时间都不满足需求,简述数据库端
造成此缺陷的主要原因,有效的解决方案是什么?
【问题 5】(2 分)
去年全年处理“税票录入”交易约 100 万笔,考虑到 3 年后交易量递增到每年 200 万笔。
假设每年交易量集中在 8 个月,每个月 20 个工作日,每个工作日 8 小时,试采用 80/20 原
理估算系统服务器高峰期 “税票录入”的交易吞吐量(trans/s)。
答案:
【问题 1】
交易吞吐量:系统服务器每秒能够处理通过的交易数。
交易响应时间:系统完成事务执行准备后所采集的时间戳和系统完成待执行事务后所采
集的时间戳之间的时间间隔,是衡量特定类型应用事务性能的重要指标,标志了用户执行一
项操作大致需要多长时间。
【问题 2】
随着负载增加,当交易吞吐量不再递增时,交易平均响应时间一般会递增。当系统吞吐
量达到极限时,客户端交易会在请求队列中排队等待,等待的时间会记录在响应时间中,故
交易平均响应时间一般会递增。
【问题 3】
数据库服务器资源使用不合理。当用户数达到 50 时,数据库服务器 CPU 利用率达到
97.5%,属于不合理范围。
【问题 4】
数据库端造成此缺陷的主要原因包括服务器资源负载过重、数据库设计不合理、数据库
单个事务处理响应时间过长、系统并发负载造成最终用户响应时间过长。有效的解决方案是:
采用数据库集群策略,并注意配置正确。
【问题 5】
(1000000*2*80%)/(8*20*8*3600*20%)=1.74trans/s。
解析:
本题考查负载压力性能测试的应用。
【问题 1】
考查交易吞吐量和交易响应时间的概念。
【问题 2】
考查交易吞吐量与交易平均响应时间的关系。
当系统吞吐量未达到系统处理极限时,系统性能不会衰减,交易平均响应时间一般不
会递增。当系统吞吐量达到极限时,客户端交易会在请求队列中排队等待,等待的时间会记
录在响应时间中,故交易平均响应时间一般会递增。
【问题 3】
服务器资源使用中最主要的指标是 CPU 利用率,对于一般的应用系统,在负载压力期
间,当 CPU 利用率平均值持续达到 85%以上时,表示服务器资源使用出现瓶颈,视为不合
理。
【问题 4】
当交易吞吐量和交易响应时间都不满足需求,数据库端造成此缺陷的主要原因,可以从
数据库设计、资源使用以及应用开发几个角度去分析。最有效的解决方案是采用 Oracle RAC
集群策略。
【问题 5】
80/20 法则的原理可以概括为:每个工作日中 80%的业务在 20%的时间内完成。本题中,
业务量为 1000000*2,处理时间为 8*20*8*3600。