201211评测下午真题

第 1 题

阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某酒店预订系统有两个重要功能:检索功能和预订功能。检索功能根据用户提供的关键字检索出符合条件的酒店列表;预订功能是对选定的某一酒店进行预订。现需要对该系统执行负载压力测试。
该酒店预订系统的性能要求为:
(1)交易执行成功率100%;
(2)检索响应时间在3s以内;
(3)检索功能支持900个并发用户:
(4)预订功能支持100个并发用户;
(5) CPU利用率不超过85%;
(6)系统要连续稳定运行72小时。

【问题1】(3分)
 简述该酒店预订系统在生产环境下承受的主要负载类型。
【问题2】(5分)
对该系统检索功能执行负载压力测试,测试结果如表1-1所示,请指出响应时间和交易执行成功率的测试结果是否满足性能需求并说明原因。

【问题3】(5分)
对该系统执行负载压力测试,测试结果如表1-2所示,请指出CPU占用率的测试结果是否满足性能需求并说明原因。

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

答案与解析

  • 试题难度:较难
  • 知识点:下午题>负载压力测试
  • 试题答案:

    【问题1】
    该酒店预订系统在生产环境下承受的主要负载类型有:
    1)并发用户数属于并发执行负载。
    2)连续稳定运行72小时属于疲劳强度负载。
    3)大量检索操作属于大数据量负载。
    【问题2】
    测试结果不满足性能指标。当并发用户数为900时,响应时间为3.7s,不满足响应时间小于3s的要求;当并发用户数为1000时,响应时间为6.6s,交易成功率为98%,但要求检索功能的并发用户数最多为900,当用户数为1000时,不能算作满足。(1分)
    【问题3】
    测试结果不满足性能指标。当900个检索并发用户和100个预订并发用户时,CPU利用率超过85%;要求检索功能支持900个并发用户,预订功能支持100个并发用户,所以在1000个检索并发用户和120个预订并发用户时CPU占用率超过85%不能算满足。
    【问题4】
    1)系统没有采用合适的并发/并行策略。
    2)服务器CPU性能不足。
    3)数据库设计不足或者优化不够。
    4)服务器网络带宽不足。

  • 试题解析:

     本题考查采用负载压力测试技术对实际系统进行测试,主要考查负载类型、测试结果的分析以及系统可能瓶颈的分析,属于比较传统的题目,考查点也与往年类似。
    【问题1】:本问题考查系统的负载类型。
    系统可能的负载类型包括并发执行负载、疲劳强度负载以及大数据量负载。针对这些负载,在进行负载压力测试时,分别需要进行并发性能测试、疲劳强度测试以及大数据量测试。
    本题中,要求检索功能支持900个并发用户,预订功能支持100个并发用户,这两 个功能都有并发访问的要求,这属于并发执行负载;要求系统能连续稳定运行72小时, 这属于疲劳强度负载;系统存在大量并发用户进行大量的检索和预订操作,这属于大数据量负载。
    【问题2】:本问题考查对负载压力测试的测试结果进行分析。
    对检索功能来说,当检索并发用户数为900时,检索响应时间为3.7秒,不满足检 索响应时间在3秒以内的要求。因此该测试结果不满足性能指标。
    当检索并发用户数为1000时,检索响应时间为6.6秒。而需求要求检索功能在支持 900个并发用户的情况下响应时间在3秒以内,这样当1000个并发用户响应时间超出3 秒时,不能算作满足性能指标。
    【问题3】:本问题考查对负载压力测试的测试结果进行分析。
    当检索功能并发用户数为900,预订功能并发用户数为100时,CPU占用率为87.3%, 不满足CPU利用率不超过85%的要求。因此该测试结果不满足性能指标。
    当检索功能并发用户数为1000,预订功能并发用户数为120时,CPU占用率为 92.6%。而需求要求检索功能并发用户数为900,预订功能并发用户数为100的情况下, CPU利用率不能超过85%。这样当存在1000个检索功能并发用户和120个预订功能并发用户,而CPU占用率超过了 85%的情况下,不能算作满足性能指标。
    【问题4】:本问题考查对系统瓶颈的初步判断。
    根据问题2可以看出,当并发用户数过多时,检索响应时间不满足需求。这个问题的可能原因有三个,一是该模块程序没有采用合适的并发/并行策略,二是数据库本身的设计或者优化不够,三是服务器网络带宽不足。
    根据问题3可以看出,当并发用户数过多时,CPU占用率不满足需求。这个问题的可能原因是服务器CPU本身性能不够或者程序没有采用合适的并发/并行策略。
    综上,根据问题2和问题3的测试结果,本系统的可能瓶颈包括:(1)系统没有采 用合适的并发/并行策略;(2)数据库设计不足或者优化不够;(3)服务器网络带宽不足; (4)服务器CPU性能不足。

第 2 题

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由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
   }
   retun -1,   //12
}    //13

【问题1】
请给出满足100%DC(判定覆盖)所需的逻辑条件。
【问题2】
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
【问题3】
请给出【问题2】中控制流图的线性无关路径。

答案与解析

  • 试题难度:较难
  • 知识点:下午题>白盒测试
  • 试题答案:

    【问题1】
     
    【问题2】
    控制流图
     
    环路复杂度V(G)=7
    【问题3】
    线性无关路径:
    1)1-2-3-4-2...
    2)1-2-3-5-6-2...
    3)1-2-3-5-7-13
    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

  • 试题解析:

       本题考查白盒测试技术,属于比较传统的题目,考查点也与往年类似。

    【问题1】
    本题考查白盒测试方法中的判定覆盖法。
    判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得-次 “真”值和“假”值,从而使程序的每一个分支至少都通过一次。
    本题中程序一共有5个判定,所以满足判定覆盖一共就需要10个逻辑条件,这些条件详见参考答案。
    【问题2】
    本题考查白盒测试方法中的基本路径法。涉及到的知识点包括:根据代码绘制控制流图、计算环路复杂度。
    控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:

     
    根据题中程序绘制的控制流图如参考答案所示。其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。本题程序中,if(ranges[start].start_value <= value && value < (int)(ranges[start].start_value + range_size)) 这条判断语句中的判定由两个条件组成,因此在画控制流图的时候需要拆开成两条判断语句。控制流图详见参考答案。
    环路复杂度用来衡量一个程序模块所包含的判定结构的复杂程度,数量上表现为独立路径的条数,即合理地预防错误所需测试的最少路径条数。环路复杂度等于图中判定节点的个数加1,图中判定节点个数为6,所以V(G)=7。
    【问题3】

    本题考查白盒测试方法中的基本路径法。涉及到的知识点包括根据控制流图和环路 复杂度确定线性无关路径。
    线性无关路径是指包括一组以前没有处理的语句或条件的一条路径。从控制流图来看,一条线性无关路径是至少包含有一条在其他线性无关路径中从未有过的边的路径。对问题2中的控制流图,其线性无关路径的集合为:

    (1) 1-2-3-4-2 …
    (2) 1-2-3-5-6-2...
    (3) 1-2-3-5-7-13
    (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
    这7条路径组成了问题2中控制流图的一个基本路径集。只要设计出的测试用例能确保这些基本路径的执行,就可以使程序中的每个可执行语句至少执行一次,每个条件的取真和取假分支也能得到测试。需要注意的是,基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。

第 3 题

 阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某企业想开发一套B2C系统,其主要目的是在线销售商品和服务,使顾客可以在线浏览和购买商品和服务。系统的用户的IT技能、访问系统的方式差异较大,因此系统的易用性、安全性、兼容性等方面的测试至关重要。
系统要求:
(1)所有链接都要正确;
(2)支持不同移动设备、操作系统和浏览器;
(3)系统需通过SSL进行访问,没有登录的用户不能访问应用内部的内容。

【问题1】(5分)
简要叙述链接测试的目的以及测试的主要内容。
【问题2】(4分)
简要叙述为了达到系统要求(2),要测试哪些方面的兼容性。
【问题3】(4分)
本系统强调安全性,简要叙述Web应用安全性测试应考虑哪些方面。
【问题4】(4分)
针对系统要求(3),设计测试用例以测试Web应用的安全性。

答案与解析

  • 试题难度:较难
  • 知识点:下午题>web测试
  • 试题答案:

    【问题1】
    链接测试的目的是确保Web应用功能能够成功实现。链接测试主要测试如下3个方面:
    1)链接是否能够链接到该链接到的目标页面:
    2)被链接的页面存在;
    3)测试是否存在孤立页面。即只有通过特定URL才能访问到的页面。
    【问题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粘贴在地址栏访问内部内容。

  • 试题解析:

    本题考查Web应用测试相关内容。Web应用测试除了类似传统软件测试性能测试,压力测试等之外,还需要测试链接、浏览器和安全性等多个方面。
    【问题1】:本题考查链接测试的主要内容。链接是使用户从一个页面浏览到另一个页面的重要手段,其质量决定着功能是否能够成功实现。链接测试是Web应用功能测试的重要内容, 测试时需要测试所有页面的外向链接、内部链接、页面中链接跳转、发送Email等功能 性链接、是否存在孤立页面、链接的目标是否存在等等。链接测试主要测试如下3个方 面:
    链接是否能够链接到该链接到的目标页面;
    被链接的页面存在;
    测试是否存在孤立页面。即只有通过特定URL才能访问到的页面。
    【问题2】:本题考查Web应用对不同环境的兼容性测试。Web应用的兼容性是测试的重要方面,主要包括:浏览器兼容性测试、操作系统兼容性测试、移动终端浏览测试、打印测试等。本系统用户可以通过不同的移动配置进行访问,测试显示速度和流量等。
    不同的浏览器有不同的配置需要Web应用兼容。Web应用中的代码应该跨浏览器平台兼容。Web应用中如果使用JavaScript或AJAX调用UI功能,完成安全检查或验证,那么就需要在浏览器兼容性方面进行更多测试,如,Internet Explorer、firefox、Netscape Navigator、AOL、Safari和Opera等各种浏览器及其不同版本。
    Web应用的有些功能可能并非兼容所有的操作系统,Web应用开发中用到的图形设 计、API接口等技术可能并非在所有操作系统平台上支持。因此需要在如Windows、Unix、Mac、Linux和Solaris等不同操作系统上对Web应用进行测试。
    移动设备越来越普及,新技术层出不穷,不同移动设备上的不同浏览器的兼容性也需要进行测试。
    如果Web应用支持打印功能,需要测试字体、页面布局、页面图片和页面大小等是 否正常打印。
    【问题3】:Web应用的安全性测试的体系结构和设计可以想出很多与设计有关的漏洞,从而提高应用程序的整体安全性。设计时修复漏洞要比在开发后期解决问题更为简单,也更经济,因为开发后期可能要进行大量的再工程处理。开发时如果考虑一些与目标部署环境相关的设计以及该环境定义的安全策略,可确保应用程序的部署更加平稳和安全。如果应用程序已创建完毕,安全测试可修复漏洞并完善未来的设计。
    一个完整的Web应用安全体系测试可以从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密、参数操作、异常管理、审核和日志记录等多个方面进行。
    【问题4】:本题考查Web应用安全性测试方面。Web应用的安全性测试是一项重要而庞大的工作,需要测试内部和外部的安全性威胁。Web应用的安全性测试需要很好地进行规划。
    SQL注入测试用例:用户名:name’or’a’=’a,密码:password’ or’a=’a;或者用户名: name’--,密码:password。(name为系统内有或者无的用户名)。
    如果登录是采用SQL拼接而没有正常进行转义处理,则会出现将SQL语句篡改成并非达到预定目标,并不管用户名密码是否正确,均可正常登录,造成安全隐患。
    测试SSL:某链接URL的https://换成http://。
    内容访问:https://domain/foo/bar/content.doc,(注:域名和路径为应用的域名和路径)。 内部URL拷贝:将登录后的某URL拷贝出来,关闭浏览器并重启后将URL粘贴在地址栏访问内部内容。

第 4 题

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某企业为防止自身信息资源的非授权访问,建立了如图4-1所示的访问控制系统。
 
该系统提供的主要安全机制包括:
(1)  认证:管理企业的合法用户,验证用户所宣称身份的合法性,该系统中的认证机制集成了基于口令的认证机制和基于PKI的数字证书认证机制;
(2)  授权:赋予用户访问系统资源的权限,对企业资源的访问请求进行授权决策;
(3)  安全审计:对系统记录与活动进行独立审查,发现访问控制机制中的安全缺陷,提出安全改进建议。

【问题1】 (6分)
对该访问控制系统进行测试时,用户权限控制是其中的一个测试重点。对用户权限控制的测试应包含哪两个主要方面?每个方面具体的测试内容又有哪些?
【问题2】(3分)
测试过程中需对该访问控制系统进行模拟攻击试验,以验证其对企业资源非授权访问的防范能力。请给出三种针对该系统的可能攻击,并简要说明模拟攻击的基本原理。
【问题3】(3分)
对该系统安全审计功能设计的测试点应包括哪些?

答案与解析

  • 试题难度:较难
  • 知识点:下午题>安全测试
  • 试题答案:

    【问题1】
    (1)对用户权限控制体系合理性的评价,其具体测试内容包括;
    是否采用系统管理员、业务领导、操作人员三级分离的管理模式。
    是否具有唯一性,口令的强度及口令存储的位置和加密强度等。
    (2)对用户权限分配合理性的评价,其具体测试内容包括:
    用户权限系统本身权限分配的细致程度。
    特定权限用户访问系统功能的能力测试。
    【问题2】
    冒充攻击:攻击者控制企业某台主机,发现其中系统服务中可利用的用户账号,进行口令猜测,从而假装成特定用户,对企业资源进行非法访问。
    重演攻击:(或重放攻击):攻击者通过截获含有身份鉴别信息或授权请求的有效消息,将该消息进行重演,以达到鉴别自身或获得授权的目的,实现对企业资源的访问。
    服务拒绝攻击:攻击者通过向认证服务或授权服务发送大量虚假请求,占用系统带宽并造成关键服务繁忙,从而使得认证授权服务功能不能正常执行,产生服务拒绝。
    内部攻击:不具有相应权限的系统合法用户以非授权方式进行动作,如截获并存储。
    其他业务部门的网络数据流,或对系统访问控制管理信息进行攻击以获得他人权限等。
    以上攻击,任给出3种即可。
    【问题3】
    对该系统安全审计功能设计的测试点应包括:
    能否进行系统数据收集,统一存储,集中进行安全审计。
    是否支持基于PKI的应用审计。
    是否支持基于XML等的审计数据采集协议。
    是否提供灵活的自定义审计规则。

  • 试题解析:

    本题考查安全测试相关知识。
    【问题1】:本问题考查用户权限控制相关安全测试的基本测试内容。对这部分进行安全测试包含对用户权限控制体系合理性的评价和对用户权限分配合理性的评价,详见参考答案。
    【问题2】:本问题考查针对特定系统的模拟攻击实验设计。模拟攻击试验是一组特殊的黑盒测试案例,相关模拟攻击实验的设计应结合应用具体的安全机制及特点。针对系统的身份认证机制,可设计冒充攻击试验;针对系统用于认证及授权决策的网络消息,可设计重演攻击试验;针对系统关键核心安全模块,可设计服务拒绝攻击试验;由于系统运行时涉及各种内部用户,因此安全测试需验证系统防范内部用户的安全攻击,因此可设计内部攻击实验。
    【问题3】:本问题考查软件系统安全审计功能的主要测试点,在对安全审计功能进行测试时, 设计的测试点详见参考答案。

第 5 题

阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】 
现代软件的飞速发展,使得系统对软件的依赖越来越强,对软件可靠性的要求也越来越高,因此发展以发现软件可靠性缺陷为目的的可靠性测试技术也日益迫切。

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

答案与解析

  • 试题难度:较难
  • 知识点:下午题>可靠性测试
  • 试题答案:

    【问题1】
    (1) 确定可靠性目标
    (2) 可靠性数据
    (3) 分析影响可靠性因素
    (4) 可靠性模型
    (5) 可靠性评价
    【问题2】
    软件可靠性测试的目的:1)发现软件系统在需求、设计,编码,测试、实施等方面的各种缺陷;2)为软件的使用和维护提供可靠性数据:3)确认软件是否达到可靠性的定量要求.
    广义的软件可靠性测试是指为了最终评价软件系统的可靠性而运用建模、统计,试验、分析、评价等一系列手段对软件系统实施的一种测试.
    狭义的软件可靠性测试是指为了获取可靠性数据,按预先设定的测试用例,在软件的预期使用环境中,对软件实施的一种测试.
    【问题3】
    失效严重程度,是对用户具有相同程度影响的失效集合,常见的是按照对成本影响、对系统能力的影响等标准划分软件失效的严重程度类。
    可靠度是指软件系统在规定的条件下,规定的时间内不发生失效的概率。
    故障强度是指单位时间软件系统出现失效的概率。
    平均无故障时间是软件运行后,到下一次出现失效的平均时间。

  • 试题解析:

    本题考查软件可靠性测试的基本知识。
    【问题1】:本问题考查软件可靠性测试的基本过程和步骤。完整的软件可靠性测试包括如下图所示的过程。
     
    【问题2】:本问题考查软件可靠性测试的基本概念,包括软件可靠性测试目标,以及广义与狭义可靠性测试的基本概念。
    软件可靠性测试是对软件产品的可靠性进行调查、分析和评价的一种手段。它不仅仅是为了用测试数据确定软件产品是否达到可靠性目标,还要对检测出来的失效的分布、原因及后果进行分析,并给出纠正意见。
    可靠性测试的目的为:(1)发现软件系统在需求、设计、编码、测试、实施等方面的各种缺陷;(2)为软件的使用和维护提供可靠性数据;(3)确认软件是否达到可靠性的定量要求。
    软件可靠性测试可分为广义和狭义可靠性测试两种。广义的软件可靠性测试是指为了最终评价软件系统的可靠性而运用建模、统计、试验、分析、评价等一系列手段对软件系统实施的一种测试;狭义的软件可靠性测试是指为了获取可靠性数据,按预先设定的测试用例,在软件的预期使用环境中,对软件实施的一种测试。狭义的软件可靠性测试是面向缺陷的测试,以用户将要使用的方式来测试软件,每一次测试代表用户将要完成的一组操作,使测试成为最终产品使用的预演。
    【问题3】
    本问题考查可靠性目标的指标的基本概念。
    可靠性目标是指客户对软件性能满意程度的期望。通常采用失效严重程度、可靠度、故障强度、平均无故障时间等指标来定量描述。
    失效严重程度,是对用户具有相同程度影响的失效集合,常见的是按照对成本影响、对系统能力的影响等标准划分软件失效的严重程度类。
    可靠度是指软件系统在规定的条件下,规定的时间内不发生失效的概率。
    故障强度是指单位时间软件系统出现失效的概率。
    平均无故障时间是软件运行后,到下一次出现失效的平均时间。

results matching ""

    No results matching ""