【软考软件评测师】2012年下案例分析历年真题
2012下案例分析历年真题
2012下案例分析历年真题第一题(15分)
某酒店预订系统有两个重要功能:检索功能和预订功能。检索功能根据用户提供的关键字检索出符合条件的酒店列表;预订功能是对选定的某一酒店进行预订。现需要对该系统执行负载压力测试。
该酒店预订系统的性能要求为:
(1)交易执行成功率100%;
(2)检索响应时间在3s以内;
(3)检索功能支持900个并发用户;
(4)预订功能支持100个并发用户;
(5) CPU利用率不超过85%;
(6)系统要连续稳定运行72小时。
【问题1】
简述该酒店预订系统在生产环境下承受的主要负载类型。
【问题2】
对该系统检索功能执行负载压力测试,测试结果如表1-1所示,请指出响应时间和交易执行成功率的测试结果是否满足性能需求并说明原因。
【问题3】
对该系统执行负载压力测试,测试结果如表1-2所示,请指出CPU占用率的测试结果是否满足性能需求并说明原因
【问题4】
根据【问题2】和【问题3】的测试结果,试分析该系统的可能瓶颈。
【问题1标准答案】
该酒店预订系统在生产环境下承受的主要负载类型有:
1)并发用户数属于并发执行负载。
2)连续稳定运行72小时属于疲劳强度负载。
3)大量检索操作属于大数据量负载。
【问题2我的解答】
不满足。因为900,100的时候,响应时间平均值为3.7s,不满足3.5s的要求
【问题2标准答案】
测试结果不满足性能指标。当并发用户数为900时,响应时间为3.7s,不满足响应时间小于3s的要求;
当并发用户数为1000时,响应时间为6.6s,交易成功率为98%, 但要求检索功能的并发用户数最多为900,当用户数为1000时,不能算作不满足。
【问题3我的解答】
测试结果不满足性能指标。当并发用户数为900时,CPU占用率为87.3%,大于85%。
【问题3标准答案】
测试结果不满足性能指标。当900个检索并发用户和100个预订并发用户时,CPU利用率超过85%;要求检索功能支持900个并发用户,预订功能支持100个并发用户,所以在1000个检索并发用户和120个预订并发用户时CPU占用率超过85%不能算不满足。
【问题4标准答案】
1.系统没有采用合适的并发/并行策略。
2.服务器CPU性能不足。
3.数据库设计不足或者优化不够。
4.服务器网络带宽不足。
2012下案例分析历年真题第二题(15分)
逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
【问题1】
请给出满足100%DC (判定覆盖)所需的逻辑条件。
【问题2】
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
【问题3】
请给出问题2中控制流图的线性无关路径。
【问题1我的解答】
条件2 n > 1;真,假;
条件3:真,假;
条件5:真,假;
条件8 n > 0;真,假;
条件9,10;真,假;
满足判定覆盖所需逻辑条件是10个
【问题1标准答案】
【问题2我的解答】
控制流图的环路复杂度V(G)=判定数+1=7;
【问题2标准答案】
环路复杂度V(G)=7
【问题3我的解答】
1,2,8,12,13
1,2,8,9,10,12,13
1,2,8,9,10,11,13
【问题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】
本题考查白盒测试方法中的基本路径法。涉及到的知识点包括根据控制流图和环路 复杂度确定线性无关路径。
线性无关路径是指包括一组以前没有处理的语句或条件的一条路径。从控制流图来看,一条线性无关路径是至少包含有一条在其他线性无关路径中从未有过的边的路径。
7条路径组成了问题2中控制流图的一个基本路径集。只要设计出的测试用例能确保这些基本路径的执行,就可以使程序中的每个可执行语句至少执行一次,每个条件的取真和取假分支也能得到测试。需要注意的是,基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。
2012下案例分析历年真题第三题(20分)
某企业想开发一套B2C系统,其主要目的是在线销售商品和服务,使顾客可以在线浏览和购买商品和服务。系统的用户的IT技能、访问系统的方式差异较大,因此系统的易用性、安全性、兼容性等方面的测试至关重要。
系统要求:
(1)所有链接都要正确;
(2)支持不同移动设备、操作系统和浏览器;
(3)系统需通过SSL进行访问,没有登录的用户不能访问应用内部的内容。
【问题1】
简要叙述链接测试的目的以及测试的主要内容。
【问题2】
简要叙述为了达到系统要求(2),要测试哪些方面的兼容性。
【问题3】
本系统强调安全性,简要叙述Web应用安全性测试应考虑哪些方面。
【问题4】
针对系统要求(3),设计测试用例以测试Web应用的安全性。
【问题1我的解答】
目的:所有的链接都要能够正确表示并正确迁移。
测试内容:链接表示的颜色是否正确,鼠标放到链接上后是否会表示为手符号,所有链接在点击之后都能够链接到正确的地方,点击链接之后颜色的变化
【问题1标准答案】
链接测试的目的是确保Web应用功能够成功实现。链接测试主要测试如下3个方面:
1.链接是否能够链接到该链接到的目标页面;
2.被链接的页面存在;
3.测试是否存在孤立页面。即只有通过特定URL才能访问到的页面。
【问题2我的解答】
设计在不同的移动设备,不同的操作系统,不同的浏览器下的兼容性测试矩阵,来测兼容性。
【问题2标准答案】
浏览器兼容性测试、操作系统兼容性测试、移动终端浏览测试、打印测试等。
【问题3我的解答】
安全测试应考虑的方面有:身份验证测试,访问授权测试,通信安全测试,加密解密测试,漏洞扫描测试,模拟攻击测试等
【问题3标准答案】
Web应用安全体系测试可以从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密、参数操作、异常管理、审核和日志记录等多个方面进行。
【问题4标准答案】
SQL注入测试用例:用户名:name’or’al=’a,密码:password’or’a’=‘a;或者用户名:name’–,密码:password。(name为系统内有或者无的用户名)。
测试SSL:某链接URL的https://换成http://。
内容访问:https://domain/foo/bar/content.doc;(注:域名和路径为应用的域名和路径)。内部URL拷贝:将登录后的某URL拷贝出来,关闭浏览器并重启后将URL粘贴在地址栏访问内部内容。
2012下案例分析历年真题第四题(12分)
某企业为防止自身信息资源的非授权访问,建立了如图4-1所示的访问控制系统。
(1)认证:管理企业的合法用户,验证用户所宣称身份的合法性,该系统中的认证机制集成了基于口令的认证机制和基于PKI的数字证书认证机制;
(2)授权:赋予用户访问系统资源的权限,对企业资源的访问请求进行授权决策;
(3)安全审计:对系统记录与活动进行独立审查,发现访问控制机制中的安全缺陷,提出安全改进建议。
【问题1】
对该访问控制系统进行测试时,用户权限控制是其中的一个测试重点。对用户权限控制的测试应包含哪两个主要方面?每个方面具体的测试内容又有哪些?
【问题2】
测试过程中需对该访问控制系统进行模拟攻击试验,以验证其对企业资源非授权访问的防范能力。请给出三种针对该系统的可能攻击,并简要说明模拟攻击的基本原理。
【问题3】
对该系统安全审计功能设计的测试点应包括哪些?
【问题1我的解答】
权限有无的测试以及权限授权可否的测试
【问题1标准答案】
1)对用户权限体系的合理性评价,其具体测试内容包括:
是否采用系统管理员,业务领导,操作人员三级分离的管理模式;
是否具有唯一性,口令的强度及口令存储的位置和加密强度等。
2)对用户权限分配的合理性评价
用户权限系统本身权限分配的细致程度
特定权限用户访问系统功能的能力测试
【问题2标准答案】
1)冒充攻击
攻击者控制企业某台主机,发现其中系统服务中可利用的用户账号,进行口令猜测,从而假装成特定用户,对企业资源进行非法访问。
2)重演攻击(重放攻击)
攻击者通过截获含有身份鉴别信息或授权请求的有效信息,将该消息进行重放攻击,以达到鉴别自身或者获得授权的目的,实现对企业资源的访问。
3)服务拒绝攻击
攻击者通过向认证服务或授权服务发送大量虚假请求,占用系统带宽并造成关键服务繁忙,从而使得认证授权服务功能不能正常执行,产生服务拒绝。
4)内部攻击
不具有相应权限的系统合法用户以非授权方式进行动作,如截获并存储。
其他业务部门的网络数据流,或对系统访问控制管理信息进行攻击以获得他人权限等。
【问题3标准答案】
能否进行系统数据收集,统一存储集中进行安全审计。
是否支持基于PKI的应用审计
是否支持基于XML等审计数据采集协议
是否提供灵活的自定义审计规则
2012下案例分析历年真题第五题(12分)
阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
**【说明】 **
现代软件的飞速发展,使得系统对软件的依赖越来越强,对软件可靠性的要求也越来越高,因此发展以发现软件可靠性缺陷为目的的可靠性测试技术也日益迫切。
【问题1】(5分)
一个完整的软件可靠性测试如图5-1所示。
请填写图中的空缺(1)~(5)。
【问题2】(5分)
解释说明软件可靠性测试的目的,并说明狭义和广义软件可靠性测试的区别。
【问题3】(2分)
可靠性目标是指客户对软件性能满意程度的期望。通常采用失效严重程度、可靠度、故障强度、平均无故障时间等指标来描述。请分别解释其含义。
【问题1我的解答】
1)定义测试环境
2)测试结果
3)挑选合适模型
4)分析测试结果
5)可靠性数据收集
【问题1标准答案】
1)确定可靠性目标
2)可靠性数据
3)分析影响可靠性因素
4)可靠性模型
5)可靠性评价
【问题2我的解答】
软件可靠性测试的目的是证明软件的可用性和容错性都在用户可以接受的范围之内。
【问题2标准答案】
软件可靠性测试的目的:
1)发现软件系统在需求,设计,编码,测试,实施等方面的各种缺陷
2)为软件的使用和维护提供可靠性数据
3)确认软件是否达到可靠性定量要求
广义的可靠性测试:为了最终评价软件系统可靠性而运用建模,统计,试验,分析评价等一系列手段对软件系统实施的一种测试。
狭义的可靠性测试:为了获取可靠性数据,按预先定义的测试用例,在软件的预期使用环境中,对软件实施的一种测试。
【问题3我的解答】
失效严重程度:软件发生失效的时候,对系统的影响程度
可靠度:软件系统在固定时间中无故障运行的程度。
故障强度:故障发生时对软件系统的影响强弱程度
平均无故障时间=两次故障发生的时间间隔长度
【问题3标准答案】
1)失效的严重程度:
是对用户具有相同程度影响的失效集合,常见的是按照对成本的影响,对系统能力的影响等标准划分软件失效的严重程度类。
2)可靠度
软件系统在固定条件下,规定的时间内不发生失效的概率。
3)故障强度
单位时间软件出现失效的概率。
4)平均无故障时间
是指在软件运行之后,到下一次出现失效的平均时间。