推荐等级:
发布时间: 2021-12-17 14:38
扫码用手机做题
阅读以下说明,回答下列问题。
[说明]现代软件的飞速发展,使得系统对软件的依赖越来越强,对软件可靠性的要求也越来越来高,因此发展以发现软件可靠性缺陷为目的的可靠性测试技术也日益迫切。
问题1:一个完整的软件可行性测试如图5-1所示。
请写出图中(1)~(5)。
问题2:解释说明软件可靠性测试的目的,并说明狭义和广义软件可靠性测试的区别。
问题3:可靠性目标是指客户对软件性能满意程度的期望。通常采用失效严重程度、可靠度、故障强度、平均无故障时间等指标来描述。请分别解释其含义。
本题解析:
问题1:一个完整的软件可行性测试如图5-2所示。
(1)确定可靠性目标 (2)可靠性数据 (3)分析可靠性的因素 (4)可靠性模型 (5)可靠性评价
问题2:可靠性测试的目的可归纳为以下三个方面:
①发现软件系统在需求、设计、编码、测试、实施等方面的各种缺陷。
②为软件的使用和维护提供可靠性数据。
③确认软件是否达到可靠性的定量要求。
问题3:
广义的软件可靠性测试是指为了每终评价软件系统的可靠性而运用建模、统计、试验、分析、评价等一系列手段对软件系统实施的一种测试。
狭义的软件可靠性测试是指为了获取可靠性数据,按预先确定的测试用例,在软件的预期使用环境中,对软件实施的一种测试。狭义的软件可靠性测试也叫"较件可靠性试验(sottwan: reliability test)",它是面向缺陷的测试,以用户将要使用的方式来测试软件,每一次测试代表用户将要完成的一组操作,使测试成为最终产品使用的预演。这就使得所获得的测试数据与软件的宴际运行数据比较接近,可用于软件可靠性评价。
失效严重程度类就是对用户具有相同程度影响的失效集合。
可靠度就是软件系统在规定的条件下,规定的时间内不发生失效的概率。
故障强度是指:以单位运转时间的软件故障停机小时表示停机时间的长短,其表式为:软件故障强度率=100%*软件故障停机小时/软件实际运转时间。
平均无故障时间(MTTF):全称是Mean Time To Failure,即平均失效时间。系统平均能够正常运行多长时间,才发生一次故障。系统的可靠性越高,平均无故障时间越长。
【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。
问题1:(4分)请给出满足100%DC(判定覆盖)所需的逻辑条件。
问题2:(8分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。问题3:(3分)请给出【问题2】中控制流图的线性无关路径。
本题解析:
问题1:
1、*p == ’r’2、*p != ’r’3、*p >= ’0’&& *p <= ’9’4、*p < ’0’|| *p > ’9’5、*p == ’f’6、*p != ’f’7、m != fmode + sizeof(fmode)8、m == fmode + sizeof(fmode)
问题2:
(1) 控制流图如下图所示:
(2)、V(G)=5+1=6问题3:
(1) 1-2-4-5-6-10-11-2... (2) 1-2-3-4-5-6-10-11-2... (3) 1-2-4-7-8-10-11-2...(4) 1-2-4-5-7-8-10-11-2… (5) 1-2-4-7-9-10-11-12(6) 1-2-4-5-7-9-10-11-12
【解析】
问题1:
本小题考查白盒测试中的判定覆盖法。判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得-次 “真”值和“假”值,从而使程序的每一个分支至少都通过一次。本题中程序一共有4个判定,所以满足判定覆盖一共就需要8个逻辑条件,这些条件详见上述答案。问题2:
解析:本题考查白盒测试方法中的基本路径法。涉及到的知识点包括:根据代码绘制控制流图、计算环路复杂度。控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:
其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。环路复杂度用来衡量一个程序模块所包含的判定结构的复杂程度。环路复杂度等于右图中的判定的节点个数加1。图中判定节点个数为5,所以V(G)=5+1=6。控制流程图的环路复杂性 V(G)一共有以下三种方法,但是最后一种最好用,不易出错。(1)控制流程图中的区域个数。(2)边数-结点数+2。(3)判定数+1。问题3:
本小题考查白盒测试用例设计方法之基本路径法。涉及到根据控制流图和环路复杂度给出线性无关路径。线性无关路径:指包含一组以前没有处理的语句或条件的路径。从控制流图上来看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。程序的环路复杂度等于线性无关路径的条数,所以本题中有6条线性无关路径。这6条路径组成了问题2中控制流图的一个基本路径集。只要设计出的测试用例能确保这些基本路径的执行,就可以使程序中的每个可执行语句至少执行一次,每个条件的取真和取假分支也能得到测试。需要注意的是,基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。
阅读下列程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。
main( ){int i,n; //1for(i=1;i<5;i++){ //2n=0; if(i!=1) //3 n=n+1; //4 if(i==3) //5 n=n+1; //6 if(n==3) //7 printf("Hello!"); //8 }} //9 问题1:(4分)请给出满足100%DC(判定覆盖)所需的逻辑条件。问题2:(6分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。问题3:(5分)请给出【问题2】中控制流图的线性无关路径。
本题解析:
问题1:
1、i < 52、i >= 53、i != 14、i == 15、i == 36、i != 37、n == 38、n != 3
问题2(1) 控制流图如下图所示:
(2)V(G)=4+1=5问题3:
(1) 1-2-9 (2) 1-2-3-5-7-2... (3) 1-2-3-5-7-8-2...(4) 1-2-3-4-5-7-2… (5) 1-2-3-5-6-7-2…
【解析】
问题1:判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得-次 “真”值和“假”值,从而使程序的每一个分支至少都通过一次。本题中程序一共有4个判定,所以满足判定覆盖一共就需要8个逻辑条件,这些条件详见上述答案。问题2:
本题考查白盒测试方法中的基本路径法。涉及到的知识点包括:根据代码绘制控制流图、计算环路复杂度。控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:
其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。环路复杂度用来衡量一个程序模块所包含的判定结构的复杂程度。环路复杂度等于右图中的判定的节点个数加1。图中判定节点个数为4,所以V(G)=4+1=5。控制流程图的环路复杂性 V(G)一共有以下三种方法,但是最后一种最好用,不易出错。(1)控制流程图中的区域个数。(2)边数-结点数+2。(3)判定数+1。问题3:本小题考查白盒测试用例设计方法之基本路径法。涉及到根据控制流图和环路复杂度给出线性无关路径。线性无关路径:指包含一组以前没有处理的语句或条件的路径。从控制流图上来看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。程序的环路复杂度等于线性无关路径的条数,所以本题中有5条线性无关路径。这5条路径组成了问题2中控制流图的一个基本路径集。只要设计出的测试用例能确保这些基本路径的执行,就可以使程序中的每个可执行语句至少执行一次,每个条件的取真和取假分支也能得到测试。需要注意的是,基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。
【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。 main( ){int i,n; //1for(i=1;i<7;i++){ //2n=0; if(i!=1) //3 n=n+1; //4 if(n==5){ //5printf("Hello!"); //6 }else{ printf("No!"); //7} }printf("GAME OVER!"); //8 } 问题1:(3分)请给出满足100%DC(判定覆盖)所需的逻辑条件。问题2:(8分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。问题3:(4分)请给出【问题2】中控制流图的线性无关路径。
本题解析:
问题1:答案:1、i < 72、i >= 73、i != 14、i == 15、n == 56、n != 5
问题2:答案:(1) 控制流图如下图所示:
(2)、V(G)=3+1=4问题3:答案:(1) 1-2-8 (2) 1-2-3-5-6-2... (3) 1-2-3-4-5-6-2...(4) 1-2-3-5-7-2…
【解析】
问题1:解析:
本小题考查白盒测试中的判定覆盖法。判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得-次 “真”值和“假”值,从而使程序的每一个分支至少都通过一次。本题中程序一共有3个判定,所以满足判定覆盖一共就需要6个逻辑条件,这些条件详见上述答案。问题2:解析:
本题考查白盒测试方法中的基本路径法。涉及到的知识点包括:根据代码绘制控制流图、计算环路复杂度。控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:
其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。环路复杂度用来衡量一个程序模块所包含的判定结构的复杂程度。环路复杂度等于右图中的判定的节点个数加1。图中判定节点个数为3,所以V(G)=3+1=4。控制流程图的环路复杂性 V(G)一共有以下三种方法,但是最后一种最好用,不易出错。(1)控制流程图中的区域个数。(2)边数-结点数+2。(3)判定数+1。问题3:解析:本小题考查白盒测试用例设计方法之基本路径法。涉及到根据控制流图和环路复杂度给出线性无关路径。线性无关路径:指包含一组以前没有处理的语句或条件的路径。从控制流图上来看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。程序的环路复杂度等于线性无关路径的条数,所以本题中有4条线性无关路径。这4条路径组成了问题2中控制流图的一个基本路径集。只要设计出的测试用例能确保这些基本路径的执行,就可以使程序中的每个可执行语句至少执行一次,每个条件的取真和取假分支也能得到测试。需要注意的是,基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。
某大型教育培训机构近期上线了在线网络学校系统,该系统拓扑结构如图1所示。企业信息中心目前拟对该系统用户认证机制进行详细的安全性测试,系统注册用户分为网校学员、教师及管理员三类,其中网校学员采用用户名/口令机制进行认证,教师及管理员采用基于公钥的认证机制。
1、为防止针对网校学员的口令攻击,请从口令的强度、传输存储及管理等方面,说明可采取哪些安全防护措施。相应地,对于网校学员所采用的口令认证机制进行测试时,请说明从用户名称及用户口令两个方面开展测试时应包含哪些基本的测试点。
2、为提高系统认证环节安全性,系统在网校教师及管理员登录认证时引入了USBKey,请说明对公钥认证客户端进行安全测试时,USB Key的功能与性能测试应包含哪些基本的测试点。
3、系统证书服务器主要提供证书审核注册管理及证书认证两项功能,根据系统实际情况,目前只设置人员证书,请说明针对证书服务器的功能与性能测试应包含哪些基本的测试点。
本题解析:
1、(1)可采取的安全防护措施包括:
①口令强度:可设置最小口令长度,同时可采取要求用户在口令中使用非数字字母的字符等增加口令复杂度的手段提高口令强度。
②口令传输存储:可采用加密或Hashing手段,系统服务端存储的用户口令可加密或Hashing后存储,网络传输的用户口令可加密或Hashing后进行传输。
③口令管理:可设置最大口令时效强制用户定期更新口令,引入口令锁定机制以应对口令猜测攻击,引入口令历史强制用户设置新口令等。
(2)对口令认证机制测试应包含的基本测试点:
①对用户名称测试的主要测试点在于测试用户名称的唯一性,即测试同时存在的用户名称在不考虑大小写的情况下,不能够同名。
②对用户口令测试应主要测试用户口令是否满足当前流行的控制模式。主要测试点应包括最大/最小口令时效、口令历史、最小口令长度、口令复杂度、加密选项及口令锁定等。
2、客户端USB Key测试的基本测试点:
(1)功能测试
①是否支持AES、RSA等常用加解密算法。
②是否提供外部接口以支持用户证书及私钥的导入。
③是否提供外部接口支持将数据传入Key内,经过公钥,私钥计算后导出。
④是否能实现USB Key插入状态实时监测,当USB Key意外拔出时是否能自动锁定用户状态。
⑤是否使用口令进行保护。
(2)性能测试
①是否具备私钥不能导出的基本安全特性。
②Key内加解密算法的执行效率是否满足系统最低要求。
3、证书服务器测试的基本测试点:
(1)功能测试
①系统是否提证书的申请、审核、签发与管理功能。
②系统是否提供证书撤销列表的发布和管理等功能。
③系统是否提供证书认证策略及操作管理策略、自身证书安全管理等管理服务。
④是否可以提供加密证书和签名证书。
⑤证书格式是否采用标准X.509格式。
(2)性能测试
①检查证书服务器的处理性能是否具备可伸缩配置及扩展能力。
②关键部分是否采用双机热备和磁盘镜像等安全机制。
③是否满足系统的不间断运行、在线故障恢复和在线系统升级的需要。
④是否满足需求中预测的最大数量用户正常访问需求,且是否具备3~4倍冗余,并根据需要测试证书服务器的并发处理能力。
【解析】
软件系统的安全性是信息安全的一个重要组成部分,针对程序和数据的安全性测试与评估是软件安全性测试的重要内容,本题考查软件安全性测试的相关知识。
第一小题考查考生对基于口令的用户认证机制相关安全测试内容的了解。
基于口令的认证是最简单的用户认证方式,口令具有共享秘密的属性,该方式也容易受到相应的口令攻击。为防范口令攻击,通常可以从口令的强度、传输存储及管理等方面采取相应的安全防护措施,具体措施可包括设置最小口令长度,同时可采取要求用户在口令中使用非数字字母的字符等增加口令复杂度的手段提高口令强度;采用加密或Hashing手段,系统服务端存储的用户口令可加密或Hashing后存储,网络传输的用户口令可加密或Hashing后进行传输;设置最大口令时效强制用户定期更新口令,引入口令锁定机制以应对口令猜测攻击,引入口令历史强制用户设置新口令等。
对用户名称测试的主要测试点在于测试用户名称的唯一性,即测试同时存在的用户名称在不考虑大小写的情况下,不能够同名。对用户口令测试应主要测试用户口令是否满足当前流行的控制模式,主要测试点应包括最大/最小口令时效、口令历史、最小口令长度、口令复杂度、加密选项及口令锁定等。
第二小题考查考生对USB Key安全测试内容的理解。
USB Key内置单片机或智能卡芯片有一定的存储空间,可以存储用户的私钥以及数字证书,利用USB Key内置的加密算法可以实现对用户身份的认证。由于用户私钥通常保存在密码锁中,理论上无法读取,因此可保证用户认证的安全性。
针对USB Key的测试通常包括功能与性能测试两个方面。功能测试的基本测试点包括是否支持AES、RSA等常用加解密算法;是否提供外部接口以支持用户证书及私钥的导入;是否提供外部接口支持将数据传入Key内,经过公钥/私钥计算后导出;是否能实现USB Key插入状态实时监测,当USB Key意外拔出时是否能自动锁定用户状态;是否使用口令进行保护等。性能测试的基本测试点包括是否具备私钥不能导出的基本安全特性;Key内加解密算法的执行效率是否满足系统最低要求等。
第三小题考查证书服务器安全测试内容的相关知识。
按题目描述,系统证书服务器主要提供证书审核注册管理及证书认证两项功能,因此针对证书服务器的安全测试也应主要涵盖这两项主要功能的相应测试。
功能测试的基本测试点包括系统是否提证书的申请、审核、签发与管理功能;系统是否提供证书撤销列表的发布和管理等功能;系统是否提供证书认证策略及操作管理策略、自身证书安全管理等管理服务;是否可以提供加密证书和签名证书;证书格式是否采用标准X.509格式等。性能测试的基本测试点包括检查证书服务器的处理性能是否具备可伸缩配置及扩展能力,关键部分是否采用双机热备和磁盘镜像等安全机制;是否满足系统的不间断运行、在线故障恢复和在线系统升级的需要;是否满足需求中预测的最大数量用户正常访问需求;且是否具备3~4倍冗余,并根据需要测试证书服务器的并发处理能力等。
试卷分类:高级系统规划与管理师
练习次数:66次
试卷分类:中级系统集成项目管理工程师
练习次数:81次
试卷分类:中级软件设计师
练习次数:78次
试卷分类:中级网络工程师
练习次数:95次
试卷分类:初级网络管理员
练习次数:95次
试卷分类:中级数据库系统工程师
练习次数:86次
试卷分类:中级软件评测师
练习次数:74次
试卷分类:中级信息安全工程师
练习次数:67次
试卷分类:中级信息安全工程师
练习次数:64次
试卷分类:中级软件设计师
练习次数:73次