image

编辑人: 独留清风醉

calendar2025-06-05

message1

visits320

2011年11月软件评测师下午题答案及解析

一、问答题

1、阅读下列说明。    
[说明]    
场景法是黑盒测试中重要的测试用例设计方法,通过场景描述业务流程(包括基本流(基本业务流程)和备选流(分支业务流程)),设计测试用例遍历软件系统功能,验证其正确性。    
下面是对电子不停车收费系统(ETC.的基本流和备选流的描述。

1、使用场景法设计测试用例,指出所涉及到的基本流和备选流。基本流用A字母编号表示,备选流用表1-2中对应的字母编号表示。(5分)    例如:    
T01:A    
T02:A、B
2、针对问题1设计的测试用例,依次将初次读取车辆信息、最终读取车辆信息、账户号码、账户余额和账户状态等信息填入下述测试用例表中。表中行代表各个测试用例,列代表测试用例的输入值,用V表示有效数据元素,用I表示无效数据元素,n/a表示不适用,例如T01表示“成功通过”用例。(7分)

参考答案:


1、
T03:A、C    
T04:A、D    
T05:A、E    
T06:A、B、C    
T07:A、B、D    
T08:A、B、E


2、


解析:

本题考查的是场景法在黑盒测试中的应用。根据题干所描述的基本流和备选流,我们可以设计出一系列的测试用例。基本流用A字母编号表示,而备选流则使用表1-2中对应的字母编号表示。所以,我们得到的测试用例为:

T03涉及基本流A和备选流C;
T04涉及基本流A和备选流D;
T05涉及基本流A和备选流E;
T06涉及基本流A、备选流B和备选流C;
T07涉及基本流A、备选流B和备选流D;
T08涉及基本流A、备选流B和备选流E。

这些测试用例覆盖了所有可能的事件流,有助于全面测试电子不停车收费系统(ETC)的功能。

2、根据问题1中设计的所有测试用例,我们需要对初次读取车辆信息、最终读取车辆信息、账户号码、账户余额和账户状态等信息进行填充。具体的测试用例表格如下:

测试用例 初次读取车辆信息 最终读取车辆信息 账户号码 账户余额 账户状态
T01 V V V V V
…(其他测试用例类似填写)

其中,V表示有效数据元素,用于测试系统的正常反应;对于其他列,可以根据实际情况填写无效数据元素(I)或不适用(n/a)以测试系统的异常反应。这样的测试用例设计有助于测试人员全面测试系统功能,并评估测试结果。

2、阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。    
逻辑覆盖法是设计白盒测试用例的主要方法之一,它通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
1、请给出满足100%DC(判定覆盖)所需的逻辑条件。(6分)
2、请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.。(6分)
3、假设函数gz_open的参数mode是由26个小写字母'a'-'z'、数字'0'-'9'以及空格组成的字符串,请使用基本路径测试法构造1个测试用例,使之覆盖所有基本路径。(6分)

参考答案:1、

2、控制流图
环路复杂度V(G)=6
3、构造一个6个字符构成的字符串(设为x,y,z,u,v,w 6个字符),使得每个字符覆盖一条基本路径。其中,x='r',y='f',z∈['0'-'9'],u<'0',v>'9'并且v!='f',w任意,这6个字符可任意排列。例如mode="r0f aa"。

解析:

问题一解析:判定覆盖要求每个判定语句在测试中至少有一次为真和一次为假,以确保程序的所有分支都得到测试。根据提供的程序代码,我们需要构造测试用例使得mode参数满足上述条件,以覆盖所有的判定分支。因此,给出了满足判定覆盖所需的逻辑条件。

问题二解析:控制流图是描述程序控制流的图示方法,通过节点和边来表示程序的流程。根据程序代码绘制控制流图,并注意复合条件的处理。环路复杂度是衡量程序模块判定结构复杂度的指标,等于判定节点数加1。根据程序代码计算环路复杂度。

问题三解析:基本路径测试法是根据控制流图设计测试用例的方法。根据控制流图和环路复杂度,构造一个测试用例以覆盖所有基本路径。注意环路复杂度只是测试用例数的上限,实际测试用例数可能更少。根据程序代码的特点,给出了一个满足要求的测试用例。

3、阅读下列说明。    
[说明]    
在CNCERT/CC(国家计算机网络应急技术处理协调中心)处理的安全事件中,国内政府机构和重要信息系统部门的网页篡改类事件数量增长迅速。2011年6月的某一周,中国境内仅网页被篡改的网站就有660个,其中政府网站105个。网站内容复制容易,转载速度快,后果难以预料,网页如果被篡改,将直接危害该网站的利益,尤其是门户网站作为政府发布重要新闻、重大方针政策、法规和企业信息等的重要渠道,一旦被黑客篡改,将严重损害政府和企业形象。    
从网站页面被篡改的角度来看,存在两种攻击的可能,一种是网站被入侵,也就是说网站页面确实被篡改了,另外一种是网站被劫持,这种情况下网站的页面实际上并没有被篡改,但是攻击者劫持了网络访问并发送欺骗页面给来访者,进而造成页面被篡改的表象。
6、通过入侵从而进行网页篡改的可能途径有哪些?这些途径各对应安全系统防护体系的哪个层次?(6分)
7、针对网页被篡改的问题,从技术层面看有哪些防范措施?(6分)8、现在出现了一些基于监测与恢复的页面防篡改系统,这类防篡改系统应具备哪些基本功能?(3分)

参考答案:6、

7、
1)给服务器打上最新的安全补丁程序    
2)封闭未用但开放的网络服务端口    
3)合理设计网站程序并编写安全代码    
4)设置复杂的管理员密码    
5)设置合适的网站权限    
6)安装专业的网站防火墙和入侵检测系统
8、
7)自动监控    
8)自动备份和恢复    
9)自动报警    
10)区分合法更新与非法篡改

解析:

6、入侵者可以通过三种主要途径对网页进行篡改:第一种是利用操作系统、网络服务、数据库的漏洞来获得主机的控制权,这主要威胁到平台安全;第二种是通过猜测或破解密码获得管理员密码,这主要威胁到数据安全;第三种是利用Web存在的漏洞和设计上的缺陷进行攻击入侵,这主要威胁到应用安全。

7、为了防止网页被篡改,可以采取以下技术措施:及时更新服务器的安全补丁,封闭无用的网络服务端口,合理设计和编写安全的网站程序,设置复杂且定期更换的管理员密码,设置合适的网站权限,以及安装专业的网站防火墙和入侵检测系统。这些都是针对可能的入侵途径采取的防护措施。

8、防篡改系统应具备的基本功能包括自动监控网页的变动,一旦发现篡改自动备份和恢复网页,自动报警以及能够区分合法的网页更新与非法篡改。这些都是防篡改系统应该具备的核心功能,以确保网页的安全性和稳定性。

4、阅读下列说明。    
[说明]    
某数据管理系统有两个重要模块:数据接收模块和数据查询模块。数据接收模块按照一定的时间间隔从多个不同数据源接收数据进行一定的预处理后存入数据库中;数据查询模块根据用户请求从数据库中查询相应的数据并返回给用户。现需要对该系统执行负载压力测试。    
该数据管理系统的性能要求为:    
13交易执行成功率100%;    
14接收间隔最小为200ms;    
15查询响应时间在3s以内;    
16查询功能支持至少10个并发用户:    
17数据接收模块CPU利用率不超过40%;    
18数据查询模块CPU利用率不超过20%。
13、简述负载压力测试的主要目的。(3分)
14、对该数据管理系统进行性能测试时,主要关注哪些性能指标?(3分)
15、该系统数据接收模块和数据查询模块的测试结果如表5-1、表5-2所示,请分别指出测试结果是否满足性能需求并说明原因。(6分)
16、根据问题3的测试结果,试分析该系统的可能瓶颈。(3分)


参考答案:13、
1)在真实环境下检测系统性能,评估系统性能以及服务等级的满足情况   2)预见系统负载压力承受力,在应用实际部署之前,评估系统性能    
3)分析系统瓶颈、优化系统

14、
1)并发用户数    2)响应时间    3)资源利用率

15、
数据接收模块的测试结果不满足性能指标。当接收间隔为200ms时,存数据库交易成功率为80%,不满足交易成功率100%的要求;当接收间隔为200ms时,CPU利用率为43.8%,不满足不超过40%的要求。    
数据查询模块的测试结果满足性能指标。要求至少支持10个并发用户,所以在15个并发用户的时候响应时间超出3s不能算作不满足。

16、
1)数据接收模块软件没有采用合适的并发/并行策略    
2)服务器CPU性能不足

解析:

本题主要考察了对负载压力测试的理解,性能测试的指标以及根据测试结果分析系统瓶颈的能力。

对于负载压力测试,其主要目的是在真实环境下检测系统的性能,评估系统能否满足服务等级的要求,并预见系统的负载压力承受力。此外,还可以通过测试分析系统的瓶颈,以便进行优化。

性能测试的主要指标包括并发用户数、响应时间和资源利用率等。对于该数据管理系统,主要关注的性能指标为并发用户数、查询响应时间和CPU利用率。

根据提供的测试结果,可以判断数据接收模块不满足性能需求,因为交易成功率未达到100%,并且CPU利用率超过了设定的上限。而数据查询模块则满足了性能需求。

对于系统的可能瓶颈,根据测试结果分析,可能是数据接收模块软件未采用合适的并发/并行策略,导致在高并发情况下性能下降。此外,服务器CPU性能不足也是一个可能的瓶颈。另外,数据库的设计或优化可能也是影响系统性能的重要因素。

5、阅读下列说明。    
[说明]    
某公司开发基于Web的招聘系统,采用Java EE系统架构。系统提供用户注册、职位设置、接受应聘者的申请和评估录取应聘者等功能。接受申请主要是验证应聘者提交的姓名、地址、照片、简历和预申请职位等信息的完整性,并发送给应聘者相关通知;评估应聘者主要是根据部门经理设置所需职位,对已经受理的申请进行资格审查,发送给应聘者录用与否的相关决策信息。    
系统要支持:    
9在50个用户并发时,主要功能的处理能力至少要达到5个请求/秒,平均数据量12KB/请求;    
10用户可以通过PC、移动设备上的不同操作系统和浏览器进行访问。9、简要叙述招聘系统链接测试的主要测试内容。(3分)
10、简要叙述为了达到系统要支持的(2),需要进行哪些兼容性测试,并设计一个兼容性测试矩阵实例。(4分)
11、在满足系统要支持的(1)时,计算系统的通信吞吐量。(3分)
12、系统实现时,对用户的登录判断所用的动态SQL语句如下:    "SELECT*FROM Users WHERE User_ Name='"+ strUserName+"'AND Password='"+ strPassword+"';"    
该SQL语句是否能防止SQL注入?请设计一个测试用例,以测试SQL注入,并说明防止SQL注入的方法。(5分)

参考答案:9、
招聘系统的链接测试主要测试如下3个方面:    1)每个链接是否能够链接到目标页面    2)被链接的页面是否存在    3)是否存在孤立页面
10、招聘系统的兼容性测试:    1)平台兼容性和浏览器兼容性。    2)兼容性测试矩阵示例如下:

11、通信吞吐量:P=N(并发用户的数量=50)×T(每单位时间的在线事务数量=5)×D(事务服务器每次处理的数据负载=12KB/s)=50×5×12=3000KB/s。

12、
该SQL语句不安全,容易造成SQL注入。    
设计测试用例:    
[注:设计类似如下用例的一个即可,其中应包含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语句的功能符号。

解析:

本题主要考查了招聘系统的链接测试、兼容性测试、通信吞吐量的计算以及SQL注入的测试与防止方法。链接测试主要测试链接的有效性、目标页面的存在性和孤立页面的检测。兼容性测试需要测试系统在不同操作系统和浏览器上的表现。通信吞吐量的计算基于并发用户数量、每单位时间的在线事务数量和事务服务器每次处理的数据负载。关于SQL注入,需要设计测试用例测试系统的安全性,并采取相应的措施来防止SQL注入攻击。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2011年11月软件评测师下午题答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share