image

编辑人: 人逝花落空

calendar2025-05-10

message1

visits745

2012年11月软件评测师下午题参考答案

一、问答题

1、【老版知识点】[说明]
某酒店预订系统有两个重要功能,检索功能和预订功能。检索功能根据用户提供的关键字检索出符合条件的酒店列表,预订功能是对选定的某一酒店进行预订,现需要对该系统执行负载压力测试。    
该酒店预订系统的性能要求为:  
1交易执行成功率100%;    
2检索响应时间在3s以内;    
3检索功能支持900个并发用户;    
4预订功能支持100个并发用户;    
5CPU利用率不超过85%;    
6系统要连续稳定运行72小时
1、[问题1] 简述该酒店预订系统在生产环境下承受的主要负载类型。(3分)
2、[问题2] 对系统检索功能执行负载压力测试,测试结果如表1-1所示。请指出响应时间和交易执行成功率的测试结果是否满足性能需求并说明原因。(5分)
表1-1  检索功能测试结果3、[问题3] 对系统检索功能及预订功能执行负载压力测试,测试结果如表1-2所示。请指出服务器资源利用情况cpu占用率的测试结果是否满足性能需求并说明原因。(5分)    
表1-2  系统测试结果

4、[问题4] 根据[问题2]和[问题3]的测试结果,试分析该系统的可能瓶颈。(6分)   

参考答案:1、该酒店预订系统在生产环境下承受的主要负载类型:    
(1)检索功能、预订功能并发用户的操作是属于并发执行负载;    
(2)连续运行72小时是属于疲劳强度负载;
(3)大量“稿件查询”操作是属于大数据量负载。    
2、对系统检索功能执行负载压力测试,响应时间和交易执行成功率的测试结果不能满足性能需求。    
因为:    
(1)、系统检索功能执行并发用户数为900时,其响应时间为3.7s与检索响应时间在3s以内不能满足性能需求,交易执行成功率为100%满足性能需求。
(2)、系统检索功能执行并发用户数为1000时,其响应时间为6.6s与检索响应时间在3s以内不能满足性能需求,交易执行成功率为98%不能满足性能100%需求。    
3、暂缺答案    
4、根据[问题2]和[问题3]的测试结果,该系统的存在瓶颈。    
服务器资源利用情况:    
(1)、在执行检索功能测试时并发用户为900、1000时响应时间超过3s; 
(2)、在检索功能并发用户为900,预订功能并发用户数为100时,CPU占用率(%)(平均值)达到87.3超过85%;    
(3)、在检索功能并发用户为1000,预订功能并发用户数为120时,CPU占用率(%)(平均值)达到92.6超过85%;    
可能的瓶颈如下:    (1)服务器CPU 性能不足;    (2)数据库设计不足或者优化不够;    (3)检索功能预订功能应用软件设计不足或没有优化;    (4)网络带宽不足。


2、阅读下列说明,回答下列问题。
[说明] 逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
Struct_ProtobufCIntRange{
Int start_value;
Unsigned orig_index;
};

typedef struct_ProtobufCIntRange ProtobufCIntRange;
int int_range_lookup(unsigned n_ranges,const ProtobufCIntRange*ranges,int value)  {
unsigned  start,n;                                                         //1
start=0;
n=n_ranges;

while (n>1)  {                                                           //2
    unsigned mid=start+n/2;
    if(value< ranges[mid].start_value) {    //3
         n=mid-start;   //4
    }
    else if (value>=ranges[mid].start_value+ (int)(ranges[mid+1].orig_index-ranges[mid].orig_index)) {   //5
        unsigned new_start=mid+1;                              //6
        n=start+n-new_start;
        start=new_start;
    }
    else                                   //7
        return  (value-ranges[mid].start_value)+ranges[mid].orig_index;
    }
    if(n>0){                      //8
        unsigned start_orig_index=ranges[start].orig_index;
        unsigned range_size=ranges[start+1].orig_index-start_orig_index;
        if (ranges[start].start_value<=value && value<(int)(ranges[start].start_value+range_size))         //9,10
        return  (value-ranges[start].start_value)+start_orig_index;      //11
    }
    return -1;                                               //12
}  //13
5、[问题1] 请给出满足100%DC(判定覆盖)所需的逻辑条件。(6分)6、[问题2] 请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.。(6分)
7、[问题3] 请给出[问题2]中控制流图的线性无关路径。(4分)

参考答案:

5、本题考查白盒测试法的应用。    

本问题考查白盒测试用例设计方法中的判定覆盖法。    
判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次。本题中程序有5个判定,所以满足判定覆盖一共需要10个逻辑条件,如下表所示。

6、本问题考查白盒测试用例设计方法中的基本路径法。涉及到的知识点包括:根据代码绘制控制流图、计算环路复杂度。    
控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:

根据题中程序绘制的控制流图如下所示。其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。本题程序中,if (ranges[start].start_valueihg<=value&&value<(int)(ranges[start].start_value+range_size))这条判断语句中的判定由两个条件组成,因此在画控制流图的时候需要拆开成两条判断语句。

环路复杂度用来衡量一个程序模块所包含的判定结构的复杂程度,数量上表现为独立路径的条数,即合理地预防错误所需测试的最少路径条数。环路复杂度等于图中判定结点的个数加1,图中判定结点个数为6,所以(G)=7。    
7、本问题考查白盒测试用例设计方法中的基本路径法。    

(1) 1-2-3-4-2...         
(2) 1-2-3-5-6-2...         
(3) 1-2-3-5-7-13 l
(4) 1-2-8-9-10-11-13                                  
(5) 1-2-8-9-10-12-13
(6) 1-2-8-9-12-13                                        
(7) 1-2-8-12-13


3、阅读下列说明回答下列问题。
[说明] 某企业想开发一套B2C系统,其主要目的是在线销售商品和服务,使顾客可以在线浏览和购买商品和服务,系统的用户的IT技能,访问系统的方式差异较大,因此系统的易用性、安全性、兼容性等方面的测试至关重要。    
系统要求:    
1、所有链接都要正确;    
2、支持不同移动设备,操作系统和浏览器;    
3、系统需通过SSL进行访问,没有登录的用户不能访问应用内部的内容。
[问题1] 简要叙述链接测试的目的以及测试的主要内容。(5分)
[问题2] 简要叙述为了达到系统要求(2),要测试哪些方面的兼容性。(4分)
[问题3] 本系统强调安全性,简要叙述Web应用安全测试应考虑哪些方面。(4分)
[问题4] 针对系统要求(3),设计测试用例以测试Web应用的安全性。(4分)

参考答案:1、链接测试的目的:用来检验Web 网站提供信息的正确性、准确性和相关性。
测试的主要内容:系统的链接测试主要测试如下3 个方面:
1)每个链接是否能够链接到目标页面
2)被链接的页面是否存在
3)是否存在孤立页面     

2、浏览器兼容性测试、操作系统兼容性测试、移动终端浏览测试、打印测试等。

3、Web应用安全体系测试可以从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密、参数操作、异常管理、审核和日志记录等多个方面进行。
  
4、SQL注入测试用例:用户名:name’or’a’=’a,密码:password’ or’a’=’a;或者用户名:name’--,密码:password。(name为系统内有或者无的用户名)。   
测试SSL:某链接URL的https://换成http://:
内容访问:https://domain/foo/bar/content.doc;(注:域名和路径为应用的域名和路径)
内部URL拷贝:将登录后的某URL拷贝出来,关闭浏览器并重启后将URL粘贴在地址栏访问内部内容。


4、阅读下列说明,回答下列问题。
[说明] 某企业为防止自身信息资源的非授权访问,建立了如图4-1所示的访问控制系统。

企业访问控制系统    
该系统提供的主要安全机制包括:    
12认证:管理企业的合法用户,验证用户所宣称身份的合法性,该系统中的认证机制集成了基于口令的认证机制和基于PKI的数字证书认证机制;    
13授权:赋予用户访问系统资源的权限,对企业资源的访问请求进行授权决策;    
14安全审计:对系统记录与活动进行独立审查,发现访问控制机制中的安全缺陷,提出安全改进建议。
12、[问题1] 对该访问控制系统进行测试时,用户权限控制是其中的一个测试重点。对用户权限控制的测试应包含哪两个主要方面?每个方面具体的测试内容又有哪些?(6分)
13、[问题2] 测试过程中需对该访问控制系统进行模拟攻击试验,以验证其对企业资源非授权访问的防范能力。请给出三种针对该系统的可能攻击,并简要说明模拟攻击的基本原理。(3分)
14、[问题3] 对该系统安全审计功能设计的测试点应包括哪些?(3分)

参考答案:12、两个方面:    
①评价用户权限控制的体系合理性,是否采用三层的管理模式即系统管理员、业务领导和操作人员三级分离;    
②用户名称基本采用中文和英文两种,对于测试来说,对于用户名称的测试关键在于测试用户名称的唯一性。    
用户名称的唯一性体现有哪些方面?    
●同时存在的用户名称在不考虑大小的状态下,不能够同名;
●对于关键领域的软件产品和安全要求较高的软件,应当同时保证使用过的用户在用户删除或停用后,保留该用户记录,并且新用户不得与之同名。      
13、模拟攻击试验:对于安全测试来说,模拟攻击试验是一组特殊的黑盒测试案例,我们以模拟攻击验证软件或信息的安全防护能力。可采用冒充、重演、消息篡改、服务拒绝、内部攻击、外部攻击、陷阱门、特洛伊木马方法进行测试。    
泪滴(teardrop)。泪滴攻击利用那些在TCP/IP堆栈实现中信任IP碎片中的包的标题头所包含的信息实现自己的攻击。IP分段含有指示该分段所包含的是原包的哪一段的信息,某些TCP/IP(包括service pack 4以前的NT)在收到含有重叠偏移的伪造分段时将崩溃。防御措施有服务器应用最新的服务包,或者在设置防火墙时对分段进行重组,而不是转发它们。    
口令猜测。一旦黑客识别了一台主机而且发现了基于NetBIOS、Telnet或NFS这样的服务的可利用的用户账号,然后因为使用简单的密码或者没有设密码,导致黑客能很快的将口令猜出。当然事实上用蛮力是可以破解任何密码的,关键是是否迅速,设置的密码是否能导致黑客花很大的时间和效率成本。防御措施有要选用难以猜测的口令,比如词和标点符号的组合。确保像NFS、NetBIOS和Telnet这样可利用的服务不暴露在公共范围。如果该服务支持锁定策略,就进行锁定。
伪造电子邮件。由于SMTP并不对邮件的发送者的身份进行鉴定,因此黑客可以对你的内部客户伪造电子邮件,声称是来自某个客户认识并相信的人,并附带上可安装的特洛伊木马程序,或者是一个引向恶意网站的链接。防御措施有使用PGP等安全工具并安装电子邮件证书。      14、对该系统安全审计功能设计的测试点应包括:    
①能否进行系统数据收集,统一存储,集中进行安全审计;    
②是否支持基于PKI的应用审计;    
③是否支持基于XML的审计数据采集协议;    
④是否提供灵活的自定义审计规则。


5、阅读以下说明,回答下列问题。
[说明]现代软件的飞速发展,使得系统对软件的依赖越来越强,对软件可靠性的要求也越来越来高,因此发展以发现软件可靠性缺陷为目的的可靠性测试技术也日益迫切。
15、[问题1] 一个完整的软件可行性测试如图5-1所示。(5分)

请写出图中(1)~(5)。
16、[问题2] 解释说明软件可靠性测试的目的,并说明狭义和广义软件可靠性测试的区别。(5分)
17、[问题3] 可靠性目标是指客户对软件性能满意程度的期望。通常采用失效严重程度、可靠度、故障强度、平均无故障时间等指标来描述。请分别解释其含义。(2分)

参考答案:15、(1)确定可靠性目标 (2)可靠性数据  (3)分析可靠性的因素 (4)可靠性模型 (5)可靠性评价
16、可靠性测试的目的可归纳为以下三个方面:    
①发现软件系统在需求、设计、编码、测试、实施等方面的各种缺陷。   ②为软件的使用和维护提供可靠性数据。    
③确认软件是否达到可靠性的定量要求。    
广义的软件可靠性测试是指为了每种评价软件系统的可靠性而运用建模、统计、试验、分析、评价等一系列手段对软件系统实施的一种测试。
狭义的软件可靠性测试是指为了获取可靠性数据,按预先确定的测试用例,在软件的预期使用环境中,对软件实施的一种测试。狭义的软件可靠性测试也叫“较件可靠性试验(sottwan: reliability test)”,它是面向缺陷的测试,以用户将要使用的方式来测试软件,每一次测试代表用户将要完成的一组操作,使测试成为最终产品使用的预演。这就使得所获得的测试数据与软件的实际运行数据比较接近,可用于软件可靠性评价。
17、失效严重程度类就是对用户具有相同程度影响的失效集合。    
可靠度就是软件系统在规定的条件下,规定的时间内不发生失效的概率。    
故障强度是指:以单位运转时间的软件故障停机小时表示停机时间的长短,其表式为:软件故障强度率=100%*软件故障停机小时/软件实际运转时间。    
平均无故障时间(MTTF):全称是Mean Time To Failure,即平均失效时间。系统平均能够正常运行多长时间,才发生一次故障。系统的可靠性越高,平均无故障时间越长。


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

创作类型:
原创

本文链接:2012年11月软件评测师下午题参考答案

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