软件评测师试题和答案.docx
- 文档编号:28925767
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:21
- 大小:605.63KB
软件评测师试题和答案.docx
《软件评测师试题和答案.docx》由会员分享,可在线阅读,更多相关《软件评测师试题和答案.docx(21页珍藏版)》请在冰豆网上搜索。
软件评测师试题和答案
2014软件评测师试题和答案
试题一(共20分)
阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。
【C程序】
intGetMaxDay(intyear,intmonth){
intmaxday=0; //1
if(month>=1&&month<=12){ //2,3
if(month==2){ //4
if(year%4==0){ //5
if(year%100==0){ //6
if(year%400==0) //7
maxday=29; //8
else //9
maxday=28;
}
else //10
maxday=29;
}
else
maxday=28; //11
}
else{ //12
if(month=4||month=6||month=9||month=11)//13,14,15,16
maxday=30; //17
else //18
maxday=31;
}
}
returnmaxday; //19
}
【问题1】(6分)
请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。
【问题2】(9分)
请画出上述程序的控制流图,并计算其环路复杂度V(G)。
【问题3】(5分)
请给出问题2中控制流图的线性无关路径。
参考答案:
【问题1】:
Month>=1&&month<=12
Month==2
Year%4==0
Year%100==0
Year%400==0
Month==2
Month==4
Month==6
Month==9
Month==11
【问题2】:
V(G)=11
【问题3】:
1、2
1、2、3
1、2、3、4、12、13、17、19
1、2、3、4、12、13、14、17、19
1、2、3、4、12、13、14、15、17、19
1、2、3、4、12、13、14、15、16、17、19
1、2、3、4、12、13、14、15、16、18、19
1、2、3、4、5、11、19
1、2、3、4、5、6、10、19
1、2、3、4、5、6、7、9、19
1、2、3、4、5、6、7、8、19
试题分析:
判断覆盖:
设计足够的测试用例,使得程序中的每个判定至少都获得一次“真值”或“假值”,或者说使得程序中的每一个取“真”分支和取“假”分支至少经历一次,因此判定覆盖又称分支覆盖
对于本题中判定的条件有:
Month>=1&&month<=12
Month==2
Year%4==0
Year%100==0
Year%400==0
Month==2
Month==4
Month==6
Month==9
Month==11
【问题2】
控制流图是描述程序控制流的一种图示方法。
其基本符号有圆圈和箭线:
圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。
基本结构如下所示:
控制流程图的环路复杂性V(G)等于:
(1)控制流程图中的区域个数。
(2)边数-结点数+2。
(3)判定数+1。
V(G)=11
【问题3】
线性无关路径是指包括一组以前没有处理的语句或条件的一条路径。
从控制流图来看,一条线性无关路径是至少包含有一条在其他线性无关路径中从未有过的边的路径:
1)1、2
2)1、2、3
3)1、2、3、4、12、13、17、19
4)1、2、3、4、12、13、14、17、19
5)1、2、3、4、12、13、14、15、17、19
6)1、2、3、4、12、13、14、15、16、17、19
7)1、2、3、4、12、13、14、15、16、18、19
8)1、2、3、4、5、11、19
9)1、2、3、4、5、6、10、19
10)1、2、3、4、5、6、7、9、19
11)1、2、3、4、5、6、7、8、19
试题二(共15分)
阅读希埃尔说明,回答问题1至问题3,将解答填入答题纸的对应栏内.
【说明】
某商店为购买不同数量商品的顾客报出不同的价格,其报价规则如表2-1所示.
如买11件需要支付10*30+1*27=327元,买35件需要支付10*30+10*27+10*25+5*22=930元
现在该商家开发一个软件,输入为商品数C(1<=C<=100),输出为因付的价钱P
【问题一】(6分)
请采用等价类划分法为该软件设计测试用例(不考虑C为非整数的情况).
【问题二】(6分)
请采用边界值分析法为该软件设计测试用例(不考虑健壮性测试,既不考虑C不在1到100之间或者是非整数的情况).
【问题三】(3分)
列举除了等价类划分法和边界值分析法以外的三种常见的黑盒测试用例测试反法.
参考答案:
【问题1】:
测试用例1:
31~100中任意一个数
测试用例2:
101
测试用例3:
0
测试用例4:
1~10中任意一个数
测试用例5:
11~20中任意一个数
测试用例6:
21~30中任意一个数
【问题2】:
0、1、10、11、20、21、30、31、100、101
【问题3】:
错误推测法、因果图法、判断表法、正交试验法、功能图法、场景法
试题分析:
【问题1】
划分等价类的6条原则:
(1)在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类
(2)在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类
(3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类
(4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类
(5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
(6)在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则再将该等价类进一步地划分为更小的等价类
本题中主要范围限制为1<=C<=100,即可以划分为两个无效和一个有效等价,但由于每一个小的等价类是单独处理的,因此需要再进一步的划分:
测试用例1:
31~100中任意一个数
测试用例2:
101
测试用例3:
0
测试用例4:
1~10中任意一个数
测试用例5:
11~20中任意一个数
测试用例6:
21~30中任意一个数
【问题2】
边界值设计测试用例,应遵循的原则:
1)如果输入条件规定了值得范围,则应取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据
2)如果输入条件规定了值得个数,则用最大个数、最小个数、比最小个数少、比最大个数多1的数作为测试数据
3)根据规格说明的每个输出条件,使用前面的原则1
4)根据规格说明的每个输出条件,应用前面的原则2
5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例
6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例
7)分析规格说明,找出其他可能的边界条件
依据边界值设计测试用例的原则,本题测试用例应选择:
0、1、10、11、20、21、30、31、100、101
【问题3】
黑盒测试的方法有等价类划分、边界值分析、因果图法、判定表法、正交试验法、功能图法、场景法、错误推测法等
因此本题可选:
错误推测法、因果图法、判断表法、正交试验法、功能图法、场景法中的3种
试题三(共20分)
阅读下列说明,回答问题l至问题4,将解答填入答题纸的对应栏内。
【说明】
某大型披萨加工和销售商为了有效管理披萨的生产和销售情况,欲开发一套基于Web的信息系统。
其主要功能为销售、生产控制、采购、运送、存储和财务管理等。
系统采用JavaEE平台开发,页面中采用表单实现数据的提交与交互,使用图形(Graphics)以提升展示效果。
【问题1】(6分)
设计两个表单项输入测试用例,以测试XSS(跨站点脚本)攻击。
系统设计时可以
采用哪些技术手段防止此类攻击。
【问题2】(3分)
简述图形测试的主要检查点。
【问题3】(5分)
简述页面测试的主要方面。
【问题4】(6分)
系统实现时,对销售订单的更新所用的SQL语句如下:
PreparedStatementpStmt=connection,prepareStatementC(“UPDATESalesOrderSET
status=?
WHEREOrderID=?
;”);
然后通过setString(...);的方式设置参数值后加以执行。
设计测试用例以测试SQL注入,并说明该实现是否能防止SQL注入。
参考答案:
【问题1】:
用例1:
alert('XSS');">; 用例2: \nt: alert('XSS');"> 防御XSS攻击方法: 验证所有输入数据,有效检测攻击;对所有输出数据进行适当的编码,以防止任何已成功注入的脚本在浏览器端运行。 防御规则: 1.不要在允许位置插入不可信数据 2.在向HTML元素内容插入不可信数据前对HTML解码 3.在向HTML常见属性插入不可信数据前进行属性解码 4.在向HTMLJavaScriptDATAValues插入不可信数据前,进行JavaScript解码 5.在像HTML样式属性插入不可信数据前,进行CSS解码 6.在向HTMLURL属性插入不可信数据前,进行URL解码 【问题2】: 图形测试主要检查点: ∙颜色饱和度和对比度是否合适 ∙需要突出的链接的颜色是否容易识别 ∙是否正确加载所有的图像 【问题3】: ∙页面的一致性如何 ∙在每个页面上是否设计友好的用户界面和直观的导航系统 ∙是否考虑多种浏览器的需要 ∙是否建立了页面文件的命名体系 ∙是否充分考虑了合适的页面布局技术,如层叠样式表、表格和帧结构等 【问题4】: 能防止SQL注入 Pstmt.setString('1'or'1'='1',status) Pstmt.setString('2'or'1'='1',orderID) 试题分析: 【问题1】 XSS攻击: 跨站脚本攻击(CrossSiteScripting)是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。 比如这些代码包括HTML代码和客户端脚本。 用例1: alert('XSS');">; 用例2: \nt: alert('XSS');"> 防御XSS攻击方法: 验证所有输入数据,有效检测攻击;对所有输出数据进行适当的编码,以防止任何已成功注入的脚本在浏览器端运行。 防御规则: 不要在允许位置插入不可信数据 在向HTML元素内容插入不可信数据前对HTML解码 在向HTML常见属性插入不可信数据前进行属性解码 在向HTMLJavaScriptDATAValues插入不可信数据前,进行JavaScript解码 在像HTML样式属性插入不可信数据前,进行CSS解码 在向HTMLURL属性插入不可信数据前,进行URL解码 【问题2】 图形测试,主要检查点如下: 颜色饱和度和对比度是否合适 需要突出的链接颜色是否容易识别 是否正确加载所有的图形 【问题3】 页面是信息的载体,直接体现WEB沾点的设计水平,一个好的页面因信息层次清晰而让用户一目了然;因涉及巧妙、精致美观而让用户流连忘返;因恰当使用各种元素能完成许多功能而不显拥挤。 对页面设计的测试可以从以下几个方面进行: 页面的一致性如何 在每个页面上是否设计友好的用户界面和直观的导航系统 是否考虑多种浏览器的需要 是否建立了页面文件的命名体系 是否充分考虑了合适的页面布局技术,如层叠样式表、表格和帧结构等 【问题4】 SQL注入是黑客攻击数据库的一种常用方法,其实就是通过把SQL命令插入到Web表单或页面请求的查询字符串中提交,最终达到欺骗服务器执行恶意的SQL命令,来达到攻击的目的。 本题中给出的SQL语句不能防止SQL注入,设置的这个测试用例只要包含SQL功能符号,然后使得SQL语句不符合原设计意图即可。 例如,包含了“--”或“’”等,那么整个语句为: 将intClientSubmitScore为85 DELETEFROMscore -- ;strStudentID为1000 这样SQL语句执行就变成: UPDATEStudentScoreSETscore=85 DELETEFROMscore --WHEREStuent_ID= 1000 ; 防止SQL注入的有些方法主要有: 拼接SQL之前先对特殊符合进行转义,使其不作为SQL的功能符合即可。 对于本题由于将SQL语句中的输入值,使用参数方式传送,而且SQL语句进行预编译,这样由于防止注入式攻击,测试用例设计可参考: Pstmt.setString('1'or'1'='1',status) Pstmt.setString('2'or'1'='1',orderID) 试题四(共20分) 阅读下列说明,回答问题l至问题3,将解答填入答题纸的对应栏内。 【说明】 某大型教育培训机构近期上线了在线网络学校系统,该系统拓扑结构如图4-1所示。 企业信息中心目前拟对该系统用户认证机制进行详细的安全性测试,系统注册用户分为网校学员、教师及管理员三类,其中网校学员采用用户名/口令机制进行认证,教师及管理员采用基于公钥的认证机制。 【问题1】(8分) 为防止针对网校学员的口令攻击,请从口令的强度、传输存储及管理等方面,说明可采取哪些安全防护措施。 相应地,对于网校学员所采用的口令认证机制进行测试时,请说明从用户名称及用户口令两个方面开展测试时应包含哪些基本的测试点。 【问题2】(6分) 为提高系统认证环节安全性,系统在网校教师及管理员登录认证时引入了USBKey,请说明对公钥认证客户端进行安全测试时,USBKey的功能与性能测试应包含哪些基本的测试点。 【问题3】(6分) 系统证书服务器主要提供证书审核注册管理及证书认证两项功能,根据系统实际情况,目前只设置人员证书,请说明针对证书服务器的功能与性能测试应包含哪些基本的测试点。 参考答案: 【问题1】: 通过安全策略设置密码的最小长度,设置口令锁定,使用通信加密技术,对存储在数据库中的数据进行加密、设置访问控制等 对于用户名称的测试关键在于测试用户名称的惟一性: 1.同时存在的用户名称在不考虑大小写的状态下,不能同名 2.对于关键领域的软件产品和安全性要求较高的软件,应当同时保证使用过的的用户在用户删除或停用后,保留该用户记录,并且新用户不得与该用户同名 测试用户口令的强度和口令存储的位置和加密强度: 1.最大口令时效 2.最小口令时效 3.口令历史 4.最小口令长度 5.口令复杂度 6.加密选项 7.口令锁定 8.账户复位 【问题2】: 功能测试: ∙是否具备基础加/解密服务功能 ∙能否为应用提供相对稳定的统一安全服务接口 ∙能否提供对多密码算法的支持 ∙随着业务量的逐渐增加,是否可以灵活地增加密码服务模块,实现性能平滑扩展,且不影响上层的应用系统 性能测试: ∙RSA算法密钥长度能否达到1024~2048位,ECC算法密钥长度能否达到192位 ∙如果有必要进行系统速度测试,对应用层的客户端密码设备测试项: 公钥密码算法签名速度、公钥密码算法验证速度、对称密钥密码算法加/解密速度,验证是否满足需求 ∙处理性能如公钥密码算法签名等是否具有扩展能力 【问题3】: 对证书业务服务系统的功能测试: 1.证书认证系统是否采用国际密码主管部门审批的签名算法完成签名操作,是否提供证书的签发和管理、证书撤销列表的签发和管理、证书/证书撤销列表的发布以及证书审核注册中心的设立、审核及管理等功能 2.按使用对象分类,系统是否能提供人员证书、设备证书、机构证书三种类型的证书 3.是否可以提供加密证书和签名证书 4.数字证书格式是否采用X.509V4 5.系统是否提供证书申请、身份审核、证书下载等服务功能 6.证书申请、身份审核、证书下载等服务是否都可采用在线或离线两种方式 7.系统是否提供证书认证策略及操作策略管理、自身证书安全管理等证书管理服务 证书业务服务系统性能测试: 1.检查证书业务服务系统设计的处理性能是否具备可伸缩配置及扩展的能力 2.关键部分是否采用双机热备份和磁盘镜像 3.是否满足系统的不间断运行、在线故障修复和在线系统升级 4.是否满足需求说明中预测的最大数量用户正常访问的需求,并且,是否有3~4倍的冗余,如有必要,需要测试系统的并发压力承受能力。 试题分析: 【问题1】 口令攻击目前常见的方式有: 社会工程学;暴力破解;弱口令扫描;密码监听等,对于网校网站针对社会工程学方面仅能友善提醒相关人员保护密码;对于密码监听,可以采用通信加密的方式来从技术方面进行一定的保护;对于弱口令扫描,可以通过配置安全策略让用户设置一个安全密码,避免设置弱密码,增加口令破解的难度,同时设置密码锁定策略,可以有效的方式密码扫描和暴力破解;对于存储在数据库服务器中的用户密码则可以通过加密方式和数据库的访问控制来保证密码存储的安全 对于用户名称的测试关键在于测试用户名称的唯一性。 唯一性的体现基本基于以下两个方面: 1)同时存在的用户在不考虑大小写的状态下,不能够同名 2)对于关键领域的软件产品和安全性要求较高的软件,应当同时保证使用过的用户在用户删除或停用后,保留该用户记录,并且新用户不得与该用户同名 用户口令应当满足当前流行的控制模式,注意测试用户口令的强度和口令存储的位置和加密强度: 最大口令时效 最小口令时效 口令历史 最小口令长度 口令复杂度 加密选项 口令锁定 账户复位 【问题2】 本题引入USB-Key认证方式,该认证采用的是PKI认证方式,测试是对USB-Key相关的公钥客户进行的功能和性能测试,对于公钥功能和性能进行测试主要包括如下内容: 功能测试: 是否具备基础加/解密服务功能 能否为应用提供相对稳定的统一安全服务接口 能否提供对多密码算法的支持 随着业务量的逐渐增加,是否可以灵活地增加密码服务模块,实现性能平滑扩展,且不影响上层的应用系统 性能测试: RSA算法密钥长度能否达到1024~2048位,ECC算法密钥长度能否达到192位 如果有必要进行系统速度测试,对应用层的客户端密码设备测试项: 公钥密码算法签名速度、公钥密码算法验证速度、对称密钥密码算法加/解密速度,验证是否满足需求 处理性能如公钥密码算法签名等是否具有扩展能力 【问题3】 对证书业务服务系统的功能测试: 证书认证系统是否采用国际密码主管部门审批的签名算法完成签名操作,是否提供证书的签发和管理、证书撤销列表的签发和管理、证书/证书撤销列表的发布以及证书审核注册中心的设立、审核及管理等功能 按使用对象分类,系统是否能提供人员证书 是否可以提供加密证书和签名证书 数字证书格式是否采用X.509V4 系统是否提供证书申请、身份审核、证书下载等服务功能 证书申请、身份审核、证书下载等服务是否都可采用在线或离线两种方式 系统是否提供证书认证策略及操作策略管理、自身证书安全管理等证书管理服务 证书业务服务系统性能测试: 检查证书业务服务系统设计的处理性能是否具备可伸缩配置及扩展的能力 关键部分是否采用双机热备份和磁盘镜像 是否满足系统的不间断运行、在线故障修复和在线系统升级 是否满足需求说明中预测的最大数量用户正常访问的需求,并且,是否有3~4倍的冗余,如有必要,需要测试系统的并发压力承受能力。 试题五(共20分) 阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。 【说明】 某嵌入式刹车控制软件,应用于汽车刹车控制器,该软件需求如下: 1.模式选择: 采集模式控制离散量信号In-D1并通过模式识别信号灯显示软件当前工作模式。 在信号In-D1为低电平时进入正常工作模式(模式识别信号灯为绿色),为高电平时进入维护模式(模式识别信号灯为红色)。 软件在正常工作模式下仅进行刹车控制和记录刹车次数,在维护模式下仅进行中央控制器指令响应。 2.刹车控制: 采用定时中断机制,以5ms为周期采集来自驻车器发出的模拟量信号In-A1以及来自刹车踏板发出的模拟量信号In-A2,并向刹车执行组件发送模拟量信号Out-A1进行刹车控制。 模拟量信号说明: 1)In-A1、In-A2以及Out-Al信号范围均为[0.0V,10.0V],信号精度均为0.1V;2)Out-A1信号的计算方法为: Out-Al=In-Al+0.3*ln-A2,在计算完成后需要在满足信号精度的要求下进行四舍五入及限幅处理。 3.记录刹车次数;在Out-A1大于4V时,读出非易失存储器NVRAM中保存的刹车次数记录进行加1操作,然后保存至非易失存储器NVRAM申。 4.响应中央控制器指令;接收来自中央控制器的串行口指令字In-S1,回送串行口响应字Out-Sl。 当接收的指令字错误时,软件直接丢弃该命令字,不进行任何响应。 指令字及响应字说明如表5-1所示。 【问题1】(4分) 在不考虑测量误差的情况下,根据所设计的输入填写表5-2中的空 (1)~(4)。 【问题2】(8分) 请简述本软件串行输入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 评测 试题 答案