【问题4】(3分)根据问题3的测试结果,试分析该系统的可能瓶颈。
2011 年下半年软件评测师下午试卷参考答案
试题一(共 15 分)
【问题 1】(3 分,每个 0.5 分) T03:A、C T04:A、D T05:A、E T06:A、B、C T07:A、B、D T08:A、B、E
【问题 2】(12 分。每个 2 分,5 个数据列为 1 分,预期结果 1 分)
试题二(共 15 分)
【问题 1】(4 分,每个 0.5 分) 31
构造一个 6 个字符构成的字符串(设为 x,y,z,u,v,w 6 个字符),使得每个字符覆盖一条基
本路径。其中,x='r',y='f',z∈['0'-'9'],u<'0',v>'9'并且 v!='f',w 任意,这 6
【问题 2】(8 分)
控制流图(6 分,基本画对即可给满分;节点编号与否,不影响评分)
环路复杂度 V(G)=6(2 分)
【问题 3】(3 分)
个字
符可任意排列。例如,mode=\试题三(共 15 分)
【问题 1】(6 分,每个 1 分)
【问题 2】(6 分,每个 1 分)
1)给服务器打上最新的安全补丁程序 2)封闭未用但开放的网络服务端口 3)合理设计网站程序并编写安全代码 4)设置复杂的管理员密码 5)设置合适的网站权限
6)安装专业的网站防火墙和入侵检测系统
【问题 3】(3 分,答对 1 个给 1 分,最多 3 分) 1)自动监控
2)自动备份和恢复 3)自动报警
4)区分合法更新与非法篡改
试题四(共 15 分)
【问题 1】(3 分,每个 1 分)
招聘系统的链接测试主要测试如下 3 个方面: 1)每个链接是否能够链接到目标页面 2)被链接的页面是否存在 3)是否存在孤立页面
【问题 2】(4 分)
招聘系统的兼容性测试:
1)平台兼容性(1 分)和浏览器兼容性(1 分)。 2)兼容性测试矩阵示例如下:
32
注:上述矩阵中包含“平台”和“浏览器”(1 分),具体名称合理,体现出移动(1 分)。
【问题 3】(3 分)
通信吞吐量:P=N(并发用户的数量=50)×T(每单位时间的在线事务数量=5)×D(事务服务
器每次处理的数据负载=12KB/S)=50×5×12=3000KB/S 【问题 4】(5 分)
该 SQL 语句不安全,容易造成 SQL 注入。(1 分) 设计测试用例:(2 分)
【注:设计类似如下用例的一个即可,其中应包含 SQL 功能符号,使得该 SQL 语句变得不
符合设计意图即可,例如,包含了“--”或“',DROP??”等】 参考用例 1:
strUserName:Zhang'-- strPassword:San 【注:上述用例将使得该 SQL 语句变为:
SELECT * FROM Users WHERE User_Name=‘Zhang'-- AND Password=‘San'; 】
参考用例 2:
strUserName:Zhang'or‘a'='a strPassword:San’or‘a'='a 【注:上述用例将使得该 SQL 语句变为:
SELECT * FROM Users WHERE User_Name=‘Zhang'or‘a'=‘a' AND Password=‘San'or ‘a'='a'; 】
防止 SQL 注入的方法主要有:拼接 SQL 之前对特殊符号进行转义,使其不作为 SQL 语句的
功能符号。(2 分)【如果回答:页面输入域验证(1 分)】
试题五(共 15 分)
【问题 1】(3 分,每个 1 分)
1)在真实环境下检测系统性能,评估系统性能以及服务等级的满足情况 2)预见系统负载压力承受力,在应用实际部署之前,评估系统性能 3)分析系统瓶颈、优化系统 【问题 2】(3 分,每个 1 分) 1)并发用户数
2)响应时间 3)资源利用率 【问题 3】(6 分)
数据接收模块的测试结果不满足性能指标。(1 分)当接收间隔为 200ms 时,存数据库交易 成功率为 80%,不满足交易成功率 100%的要求;(1 分)当接收间隔为 200ms 时,CPU 利用率为
43.8%,不满足不超过 40%的要求。(1 分)
数据查询模块的测试结果满足性能指标。(1 分)要求至少支持 10 个并发用户,所以在 15 个并发用户的时候响应时间超出 3s 不能算作不满足。(2 分) 【问题 4】(3 分,每个 1 分)
1)数据接收模块软件没有采用合适的并发/并行策略 2)服务器 CPU 性能不足 3)数据库设计不足或者优化不够 2012年下半年软件评测师上午试题解析及答案
在输入输出控制方法中,采用(1)可以使得设备与主存间的数据块传送无需CPU干预。 (1)A.程序控制输入输出 B. 中断 C.DMA D. 总线控制 解析:
Direct Memory Access(存储器直接访问)。这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。整个数据传输操作在一个称为\控制器\的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外,在传输过程中CPU可以进行其他的工作。这样,在大部分时间里,CPU和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提高。
DMA的概念:DMA是在专门的硬件( DMA)控制下,实现高速外设和主存储器之间自动成批交换数据尽量减少CPU干预的输入/输出操作方式。通常有三种方式:
◎ 停止CPU访内 ◎周期挪用方式 ◎DMA与CPU交替访内存
缺点: 因为DMA允许外设直接访问内存,从而形成对总线的独占。 参考答案: C
若某计算机采用8位整数补码表示数据,则运算(2)将产生溢出。 (2)A.127+1 B.-127-1 C.-127+1 D.127-1 参考答案:A
若内存容量为4GB,字长为32.则(3)
(3)A.地址总线和数据总线的宽度都为32
B.地址总线的宽度为30,数据总线的宽度为32 C.地址总线的宽度为30,数据总线的宽度为8 D.地址总线的宽度为32,数据总线的宽度为8
解析:4GB=4*2^30B=2^32B 所以地址总线和数据总线的宽度都为32 。参考答案:A
设用2K X 4位的存储芯片组成16K X 8位的存储器(地址单元为0000H~3FFFH,每个芯片的地址空间连续),则地址单元0B1FH所在芯片的最大地址编号为 (4)
33
(4)A.0000H B.2800H C.2000H D.0800H 参考答案 D
解析:2K*4位的存储器芯片,要组成8位的存储器,所以在逻辑上可以把前面的存储器看作是1K*8的,这个是按照地址来说的。也就是说每一个单元存储芯片的地址范围是3FFH(2^10),所以看答案,0800H+3FFH=BFF,由此可以看出0B1FH包含在其中,所以答案为D。
或:2K*4相当于 1K*8,需要16个 1K=1024=0400H也就是每片3FF,算下来开始空间0000,0400,0800,0C00 所以,0B1F在0800开头的那块上
编写汇编语言程序时,下列寄存器中程序员可访问的是(5) (5)A.存储器地址寄存器(MAR) B.指令寄存器(IR) C.存储器数据寄存器(MDR) D.程序计数器(PC)
解析:为了保证程序(在操作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。 当程序转移时,转移指令执行的最终结果就是要改变PC的值,此PC值就是转去的地址,以此实现转移。有些机器中也称PC为指令指针IP(Instruction Pointer)。参考答案:D
CMM对软件测试没有提供单独的关键过程领域(KPA),所以许多研究机构和测试服务机构从不同角度出发提出有关软件测试方面的能力成熟度模型,其中软件测试成熟度模型(TMM)是当前影响力最大的软件测试过程模型。TMM制定了五个成熟度等级,它们依次是:初始级,阶段定义级,集成级。管理和度量级,(6)。
(6) A. 优化、缺陷预防和可重复级 B. 优化缺陷预防和质量控制级 C.缺陷预防和质量控制级 D. 优化和质量控制级
解析: TMM制定了五个成熟度等级:初始级,阶段定义级,集成级,管理和度量级,优化、缺陷预防和质量控制级。各级成熟度水平包含了一组成熟度目标和子目标,以及支持它们的任务、职责和活动。如图所示:
参考答案:B
以下关于软件生命周期的叙述不正确的是(7)。 (7) A.软件生命周期包括以下几阶段:项目规划,需求定义和需求分析、软件设计、
程序编码、软件测试、运行维护
B.程序编码阶段是将软件设计的结果转换成计算机可运行的程序代码。为了保
证程序的可读性、易维护性和提高程序的运行效率,可以通过在该阶段中制定统一并符合标准的编写规范来使编程人员程序设计规范化
C.软件设计阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统
框架设计,数据库设计等 D.需求分析阶段对软件需要实现的各个功能进行详细分析。软件需求一旦确定,
在整个软件开发过程就不能再变化,这样才能保证软件开发的稳定性,并控制风险
解析:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。\唯一不变的是变化本身。\,同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。 参考答案:D
34
在软件工程中,不属于软件定义阶段的任务是(8)。 (8)A.制定验收测试计划 B. 制定集成测试计划
C.需求分析 D. 制定软件项目计划 解析 B
软件设计阶段一般又可分为(9)。 (9)A.逻辑设计与功能设计 B. 概要设计与详细设计
C.概念设计与物理设计 D. 模型设计与程序设计 解析:
软件工程基本概念:软件设计阶段一般又可分为概要设计与详细设计。 参考答案:B
(10)程序描述语言(PDL)是软件开发过程中用于 阶段的描述工具。 A.需求分析 B. 概要设计 C.详细设计 D. 编程 参考答案:C
过程设计语言PDL:PDL也称为伪码,这是一个笼统的名称,现在有许多种不同的过程设计语言在使用。它是用正文形式表示数据和处理过程的设计工具。 软件详细设计
1. PAD图指问题分析图(Problem Analysis Diagram),是一咱算法描述工具,它是一种由左往右展开的二维树型结构.PAD图的控制流程为自上而下,从左到右地执行.
2. 过程设计语言(Process Design Language,简称PDL),也称程序描述语言(Program Description Language),又称为伪码.它是一种用于描述模块自法设计和处理细节的语言.
软件测试的目的是(11)。P7
(11) A. 试验性运行软件 B. 找出软件中全部错误 C. 证明软件正确 D. 发现软件错误
解析:软件测试的目的是以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。
关于软件测试的目的,有以下的一些观点:
①、软件测试是为了发现错误而执行程序的过程;
②、测试是为了证明程序有错,而不是证明程序无错误。 ③、一个好的测试用例是在于它能发现至今未发现的错误; ④、一个成功的测试是发现了至今未发现的错误的测试。 参考答案: D
按照测试实施组织,可将测试划分为开发方测试、用户测试、第三方测试。下面关于开 发方测试的描述正确的是(12)。P11
①开发方测试通常也叫“验证测试”或“Alpha测试” ②开发方测试又称“Beta测试”
③开发方测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后在开始
④开发方测试主要是把软件产品有计划地免费分发到目标市场,让用户大量使用,并评价、检查软件
(12) A. ②③ B. ①③ C. ②④ D. ①②③ 解析:
按实施组织划分有开发方测试(a测试)、用户测试(B测试)、第三方测试
开发方测试(a测试):通常也称为“验证测试”或“a测试”。开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求。
用户测试(B测试):通常被看成是一种“用户测试”。 β测试就是在软件公司外部展开的测试,可以由非专业的测试人员执行的测试。B测试主要是把软件产品有计划地免费分发到目标市场,让用户大量使用,并评价、检查软件。通过用户各种方式的大量使用,来发现软件存在的问题与错误,把信息反馈给开发者修改。
第三方测试:第三方测试也称为独立测试,是由相对独立的组织进行的测试。由在技术、管理和财务上与开发方和用户方相对独立的组织进行的测试。 参考答案:B
? 黑盒测试法是根据产品的(13)来设计测试用例的。P57
(13)A.功能 B. 输入数据 C. 应用范围 D.内部逻辑 黑盒测试:也称功能测试。
它是通过软件外部表现来发现其缺陷和错误。黑盒测试法把测试对象看成一个黑盒子、完全不考虑程序内部结构和处理过程。黑盒测试是在程序界面处进行测试,它只是程序是否按照需求说明书的规定正常实现。 参考答案:A
? 软件生命周期中持续时间最长的是(14)阶段。
(14) A.需求分析 B. 程序编码 C. 软件测试 D.软件运行维护 解析:软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。 参考答案:D
? 软件工程概念的提出是由于(15)。
(15) A.计算技术的发展 B. 软件危机的出现
C. 程序设计方法学的影响 D.其他工程科学的影响
解析:软件工程概念的提出是由于软件危机的出现。 参考答案: B
? 关系数据库管理系统应能实现的专门关系运算包括(16).。 (16)A、选择、索引、统计 B、选择、投影、连接 C、关联、更新、排序 D、显示、打印、制表
解析:关系数据库管理系统应能实现的专门关系运算包括选择、投影、连接。 参考答案:B
? 为了是软件测试更加高效,应遵循的原则包括(17)。P8
① 所有的软件测试都应追溯到用户需求、充分注意缺陷群集现象 ② 尽早地和不断地进行软件测试、回归测试
③ 为了证明程序的正确性,尽可能多的开发测试用例 ④ 应由不同的测试人员对测试所发现的缺陷进行确认 ⑤ 增量测试,由小到大
(17)A、①②③④ B、①②③⑤ C、②③④ D、①②④⑤ 解析:软件测试原则(八大原则)
1)、所有的软件测试都应追溯到用户需求
2)、应把“尽早地和不断的进行软件测试”作为测试者的座右铭 3)、完全测试是不可能的,测试需要终止 5)、充分注意测试中的群集现象
6)、程序员避免测试自己的程序(注意不是指对程序的调试) 7)、尽量避免测试的随意性,增量测试,由小到大
35