201311评测下午真题

第 1 题

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
int XOR(char filename, unsigned long key){
 FILE
input = NULL,output = NULL;                                                       //1
 char
outfilename = NULL;
 int len = strlen(filename);
 unsigned char buffer;
 if( (filename[len-2] == ‘.’) && (filename[len-l] == ‘c’)){                   //2,3
  outfilename = new char[len+l];                                                               //4
  strcpy(outfilename,filename); outfilename[len-2] = ‘\0’;
 }
 else{                                                                                                           //5                
  outfilename = new char[len+5];
  strcpy(outfilename , filename);
  strncat(outfilename,”.c”,2);
 }
 input = fopen(filename,”rb”);
 if( input = NULL){                                                                                      //6
  cout<<"Error opening file " << filename <<endl ;                                        //7
  delete [] outfilename;
  outfilename = NULL;
  return 1;
 }
 output = fopen(outfilename,”'wbf”);
 if( output = NULL) {                                                                                   //8
  cout<< "Error creating output file ”<< outfilename <<endl;                                  //9
  delete [] outfilename;
  outfilename = NULL;
  return 1;
 }
 while(! feof(input) ){                                                                               //10
  if( fread(&buffer,sizeof(unsigned char), 1,input) != 1 ){                        //11
   if( ! feof(input)){                                                                               //12
    delete [] outfilename;                                                                           //13
    outfllename = NULL;
    fclose(input);
    fclose(output);
    return 1;
   }
  }
  else{                                                                                                                //14
  buffer A= key;
  fwrite(&buffer,sizeof(unsigned char), 1,output);
  }
 }
 fclose(input);
 fclose(output);
 delete [] outfllename;
 return 0;
}

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

答案与解析

  • 试题难度:较难
  • 知识点:下午题>白盒测试
  • 试题答案: 【问题1】
    (filename[len-2] == ‘.’) && (filename[len-l] == ‘c’)
    (filename[len-2] != ‘.’) && (filename[len-l]!= ‘c’)(或与之等价的表达式,使得判定结果为假)
    input == NULL
    input != NULL(或与之等价的表达式,使得判定结果为假)
    output == NULL
    output != NULL(或与之等价的表达式,使得判定结果为假)
    ! feof(input)
    feof(input)(或与之等价的表达式,使得判定结果为假)
    fread(&buffer,sizeof(unsigned char), 1,input) != 1
    fread(&buffer,sizeof(unsigned char), 1,input) == 1(或与之等价的表达式,使得判定结果为假)
    ! feof(input)
    feof(input)(或与之等价的表达式,使得判定结果为假)
    【问题2】

    V(G)=8
    【问题3】
    1、1 2 3 4 6 7
    2、1 2 3 5 6 7
    3、1 2 5 6 7
    4、1 2 5 6 8 9
    5、1 2 5 6 8 10
    6、1 2 5 6 8 10 11 12 13
    7、1 2 5 6 8 10 11 14
    8、1 2 5 6 8 10 11 12
    或者其他符合要求的等价的路径组合
  • 试题解析:【问题1】
    判定覆盖:设计足够的测试用例,使得程序中的每个判定至少都获得一次“真值”或“假值”,或者说使得程序中的每一个取“真”分支和取“假”分支至少都经历一次。
    逻辑条件为:
    (filename[len-2] == ‘.’) && (filename[len-l] == ‘c’)真,假
    input = NULL真,假
    output = NULL真,假
    ! feof(input)真,假
    fread(&buffer,sizeof(unsigned char), 1,input) != 1真,假
    ! feof(input)真,假
    【问题2】
    控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:


    控制流程图的环路复杂性 V(G)等于:
    (1)控制流程图中的区域个数。
    (2)边数-结点数+2。
    (3)判定数+1。
    V(G)=8
    【问题3】
    线性无关路径是指包括一组以前没有处理的语句或条件的一条路径。从控制流图来看,一条线性无关路径是至少包含有一条在其他线性无关路径中从未有过的边的路径:
    1、1 2 3 4 6 7
    2、1 2 3 5 6 7
    3、1 2 5 6 7
    4、1 2 5 6 8 9
    5、1 2 5 6 8 10
    6、1 2 5 6 8 10 11 12 13
    7、1 2 5 6 8 10 11 14
    8、1 2 5 6 8 10 11 12

第 2 题

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某软件公司为某银行设计开发了一套网上银行系统,该系统提供基本的支付、查询、转账和信息修改等功能。银行对网上银行系统提出了初步的性能指标:
(1)交易响应时间不超过2s
(2)并发用户数>=1000
(3)CPU利用率不超过80%
(4)系统需要7*24小时不间断的稳定运行
(5)每秒事务数为7
(6)交易成功率为100%
现需要对该软件进行性能测试。

【问题1】(4分)
常见的性能测试包括负载测试、压力测试、并发性能测试、疲劳强度测试和大数据量测试等。针对题目中所述的6个性能指标,并发性能测试和疲劳强度测试所涉及的指标各有哪些?
【问题2】(6分)
性能测试中,针对一个单独的性能指标,往往需要采用多种不同的测试方法。该软件公司需要测试性能指标(1)和(5),设计了如下的测试方案:
测试常规情况下的并发用户数,逐步增加并发用户数,分别测试:
1. 在响应时间为2s时,系统所能承受的最大并发访问用户的数量;
2. 系统在多大的并发访问用户数量下,响应时间不可接受(例如超过2s)。
请指出这两项测试分别属于哪种类型的测试,并分别解释这两种测试类型的基本概念。
【问题3】(5分)
在测试性能指标(5)时,该软件公司在客户端模拟大量并发用户来执行业务操作,统计平均的每秒事务数。该软件公司认为客户端接收响应信息与该性能指标的测试无关,因此在模拟客户端上发起正常业务申请,接收系统响应后直接丢弃响应信息,没有进行功能校验。请说明该软件公司的做法正确与否,并简要说明原因以及执行功能校验的副作用。

答案与解析

  • 试题难度:较难
  • 知识点:下午题>负载压力测试
  • 试题答案:【问题1】
    属于并发性能的指标应有(1)(2)(5)
    属于疲劳强度的指标应有:(4)
    【问题2】
    负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试
    压力测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试。
    因此本题中 1是属于负载测试,2是属于压力测试
    【问题3】
    (5)每秒事务数为7,本题的做法是等系统响应就丢弃没有执行功能验证,这种做法是不正确的:该软件公司在负载压力测试中没有进行功能校验,忽略了负载压力情况下的功能不稳定问题。没有正确的功能保证,负载压力性能测试就失去了意义
    在测试过程中进行功能校验,需要记录业务操作结果,会导致资源消耗、操作行为增加以及产生大量日志等问题。
  • 试题解析:

    【问题1】
    并发性能测试的过程,是一个负载测试和压力测试的过程。即逐渐增加并发用户数负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标、资源监控指标等来确定系统并发性能的过程。并发性能测试是负载压力测试中重要内容。属于并发性能的指标应有(1)(2)(5)
    疲劳强度测试通常是采用系统稳定运行情况下能够支持的最大并发用户数,或者日常运行用户数,持续执行一段时间业务,保证达到系统疲劳强度需求的业务量,通过综合分析交易执行指标和资源监控指标,来确定系统处理最大工作量强度性能的过程。属于疲劳强度的指标应有:(4)
    (6)定义不够明确
    (3)属于资源监控指标
    【问题2】
    负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。
    压力测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试。简单来说,压力测试是为了发现在什么条件下系统的性能会变得不可接受。可见,压力测试是一种特定类型的负载测试,例如,访问一个页面的响应时间规定为不超过秒,负载测试就是测试在响应时间为1秒时,系统所能承受的最大并发访问用户的数量,而压力测试就是测试系统在多大 的并发访问用户数量下,响应时间不可接受,例如超过1分钟(定义为失效状态)。
    因此本题中 1是属于负载测试,2是属于压力测试。
    【问题3】
    (5)每秒事务数为7,本题的做法是等系统响应就丢弃没有执行功能验证,这种做法是不正确的:该软件公司在负载压力测试中没有进行功能校验,忽略了负载压力情况下的功能不稳定问题。没有正确的功能保证,负载压力性能测试就失去了意义。
    在测试过程中进行功能校验,需要记录业务操作结果,会导致资源消耗、操作行为增加以及产生大量日志等问题。

第 3 题

阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某高校开发了一套基于Web的教务管理系统,实现教务管理人员课程设置、学生选课和成绩查询、教师上传成绩以及特殊情况下教务处对成绩进行修改等功能。系统基于Java EE平台实现,采用表单(Form)实现用户数据的提交并与用户交互。
系统要支持:
(1)在特定时期内100个用户并发时,主要功能的处理能力至少要达到每秒10个请求,平均数据量8KB/请求;
(2)用户可以通过不同的移动设备、操作系统和浏览器进行访问。

【问题1】(4分)
简要叙述教务管理系统表单测试的主要测试内容。
【问题2】(5分)
简要叙述为了达到系统要支持的(2),需要进行哪些兼容性测试,并设计一个兼容性测试矩阵。
【问题3】(5分)
在满足系统要支持的(1)>时,计算系统的通信吞吐量。
【问题4】(6分)
系统实现时,对成绩更新所用的SQL语句如下:
“UPDATE StudentScore SET score = ” + intClientSubmitScore + “ WHERE Stuent_ID=“ + strStudentID +
设计1个测试用例,测试该SQL语句是否能防止SQL注入,并说明该语句是否能防止SQL注入,以及如何防止SQL注入。

答案与解析

  • 试题难度:较难
  • 知识点:下午题>web测试
  • 试题答案:【问题1】
    每个字段的验证
    字段的缺省值
    表单中的输入
    提交操作的完整性
    【问题2】
    浏览器兼容性测试、操作系统兼容性测试、移动终端浏览测试、打印测试等。
    在设置的兼容性测试矩阵肯定要包含平台和浏览器的内容,矩阵的行可以是不同的平台,而列是不同的浏览器,同时平台和浏览器都是合理的,还要提醒出移动的元素在里面即可。

    【问题3】
    系统的通信吞吐量=系统的并发用户数单位时间的在线事务数(请求数)每个请求的平均数据流=100108KB=8000KB
    【问题4】
    输入intClientSubmitScore为85  DELETE FROM score  --    ;strStudentID为1000
    这样SQL语句执行就变成:  UPDATE StudentScore SET score =85  DELETE FROM score  -- WHERE Stuent_ID= 1000  ;防止SQL注入的有些方法主要有:拼接SQL之前先对特殊符合进行转义,使其不作为SQL的功能符合即可。
  • 试题解析:【问题1】
    当用户给Web应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登录、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如,只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。
    除了测试表单实现的功能,还要检查Form区域的外部表现,如文字环绕、随窗口的大小调整大小等。
    【问题2】
    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】
    系统要支持在100个用户并发时,主要功能的处理能力至少要达到10个请求/秒,平均每个请求的数据量是8KB,那么要达到这个目标,系统的通信吞吐量=系统的并发用户数单位时间的在线事务数(请求数)每个请求的平均数据流=100108KB=8000KB。
    【问题4】
    SQL注入是黑客攻击数据库的一种常用方法,其实就是通过把SQL命令插入到Web表单或页面请求的查询字符串中提交,最终达到欺骗服务器执行恶意的SQL命令,来达到攻击的目的。
    本题中给出的SQL语句不能防止SQL注入,设置的这个测试用例只要包含SQL功能符号,然后使得SQL语句不符合原设计意图即可。例如,包含了“--”或“’”等,那么整个语句为: 将intClientSubmitScore为85  DELETE FROM score  --   ;strStudentID为1000
    这样SQL语句执行就变成:UPDATE StudentScore SET score =85  DELETE FROM score     -- WHERE Stuent_ID=  1000   ;
    防止SQL注入的有些方法主要有:拼接SQL之前先对特殊符合进行转义,使其不作为SQL的功能符合即可。

第 4 题

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某企业最近上线了 ERP系统,该系统运行的网络环境如图4-1所示。企业信息中心目前拟对该系统相关安全防护体系进行全面的安全性测试,以提供全面的安全测评报。

【问题1】(6分)
企业ERP系统上线后,企业主要业务的日常运作都高度依赖该系统的正常运行,因此ERP系统的稳定性与可靠性对企业至关重要。故障恢复与容灾备份措施是提高系统稳定性与可靠性的重要因素。对于故障恢复与容灾备份措施,参与测试的王工认为应从故障恢复、数据备份和容灾备份等三个方面进行测试。请用300字以内文字,对这三方面的测试内容进行简要说明。
【问题2】(4分)
数据库服务器中目前主要存储ERP系统业务数据,后续还需要存储企业网站相关数据,当前ERP系统的用户认证方式包含口令认证方式,相应的用户权限和口令也存储在数据库二维表中。针对上述实际情况,参与测试的李工认为在对数据库权限进行测试时,除数据库账号保护及权限设置相关的常规测试外,还必须对敏感数据加密保护及对数据库访问方式进行相应测试。请用200字以内文字,对敏感数据加密保护和数据库访问方式两个方面的测试内容进行简要说明。 
【问题3】(10分)
为对抗来自外网或内网的主动攻击,系统通常会采用多种安全防护策略,请给出四种常见的安全防护策略并进行简要解释。结合一种图4-1中明确标识出的安全防护策略机制,说明针对该机制的安全测试应包含哪些基本测试点。

答案与解析

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

    【问题1】
    应用系统的稳定性与可靠性,在一定程度上取决于故障恢复和容灾备份措施。一般有以下三个测试点:
    故障恢复:整个系统是否存在单点故障;对于关键性应用系统,当任何一台设备失效时,按照预先定义的规则是否能够快速切换;是否采用磁盘镜像技术,实现主机系统到磁盘系统的高速连接。
    数据备份:对于关键的业务,是否具备必要的热备份机制,例如双机热备份、磁盘镜像等;对于所有业务,是否提供磁带备份和恢复机制,保证系统能根据备份策略恢复到指定时间的状态。

    容灾备份:可否建立异地容灾备份中心,当主中心发生灾难事件时,由备份中心接管所有的业务;备份中心是否有足够的带宽确保与主中心的数据同步,有足够的处理能力来接管主中心的业务,能否确保快速可靠地与主中心的应用切换。
    【问题2】
    加密机制是保护数据安全的重要手段,加密的基本过程就是对原来明文的文件或数据,按某种算法进行处理,使其成为不可读的一段代码——密文,使其只能在输入相应的密钥之后才能显示出明文内容,通过这样的途径来达到保护数据不被非法窃取、阅读的目的。不同加密机制或密码函数的用途、强度是不相同的,一个软件或系统中的加密机制使用得是否合理,强度是否满足当前需求,是需要通过测试来完成的,通常模拟揭秘是测试的一个重要手段。
    数据库权限管理的测试有如下三个方面:
    应用软件部署后,数据库管理用户的设置应当注意对账号的保护,超级用户的口令不得为空或默认口令。对数据库的账号和组的权限作相应设置,如锁定一些默认的数据库用户;撤销不必要的权限。
    数据库中关于应用软件用户权限和口令存储的相关表格,尽量采用加密算法进行加密。
    软件企业在进行软件产品开发时,开发人员通常为了开发方便,在客户端与数据库通信时,均使用超级用户及默认密码访问数据库,这种方式将会带来严重的安全隐患,测试人员可以通过网络侦听的技术,或使用白盒测试方法进行测试,并且应当建议开发者,根据不同程序访问数据库的功能,使用不同的数据库用户进行连接,且必须设置复杂的密码。
    【问题3】
    安全防护策略是软件系统对抗攻击的主要手段,安全防护策略主要有安全日志、入侵检测、隔离防护、漏洞扫描等。
    安全日志是记录非法用户的登录名称、操作时间及内容等信息,以便于发现问题并提出解决措施。安全日志仅记录相关信息,不对非法行为作出主动反应,属于被动防护的策略。
    入侵检测系统是一种主动的网络安全防护措施,从系统内部和各种网络资源中主动采集信息,从中分析可能的网络入侵或攻击。一般来说,入侵检测系统还应对入侵行为作出紧急响应。入侵检测被认为是防火墙之后的第二道安全闸门,在不影响网络性能的情况下能对网络进行检测,从而提供对内部攻击,外部攻击和误操作的实时保护。
    漏洞扫描就是对软件系统及网络系统进行与安全相关的检测,以找出安全隐患和可被黑客利用的漏洞,同时漏洞扫描技术也是安全性测试的一项必要手段。
    隔离防护是将系统中的安全部分与非安全部分进行隔离的措施,目前采用的技术主要有两种,即隔离网闸和防火墙,隔离网闸主要目的在于实现内网和外面的物理隔离,防火墙主要用于内网和外网的逻辑隔离。
    防火墙
    1、是否支持交换和路由两种工作模式。
    2、是否支持对HTTP、FTP、SMTP等服务类型的访问控制。
    3、是否考虑到防火墙的冗余设计。
    4、是否支持对日志的统计分析功能,同时,日志是否可以存储在本地和网络数据库上。
    5、对防火墙本身或受保护网段的非法攻击系统,是否提供多种告警方式以及多种级别的告警。
    入侵检测系统
    1、能否在检测到入侵事件时,自动执行切断服务、记录入侵过程、邮件报警等动作。
    2、是否支持攻击特征信息的集中式发布和攻击取证信息的分布式上载。
    3、能否提供多种方式对监视引擎和检测特征的定期更新服务。
    4、内置的网络能否使用状况监控工具和网络监听工具。

  • 试题解析:

    【问题1】
    应用系统的稳定性与可靠性,在一定程度上取决于故障恢复和容灾备份措施。一般有以下三个测试点:
    故障恢复:整个系统是否存在单点故障;对于关键性应用系统,当任何一台设备失效时,按照预先定义的规则是否能够快速切换;是否采用磁盘镜像技术,实现主机系统到磁盘系统的高速连接。
    数据备份:对于关键的业务,是否具备必要的热备份机制,例如双机热备份、磁盘镜像等;对于所有业务,是否提供磁带备份和恢复机制,保证系统能根据备份策略恢复到指定时间的状态。

    容灾备份:可否建立异地容灾备份中心,当主中心发生灾难事件时,由备份中心接管所有的业务;备份中心是否有足够的带宽确保与主中心的数据同步,有足够的处理能力来接管主中心的业务,能否确保快速可靠地与主中心的应用切换。
    【问题2】
    加密机制是保护数据安全的重要手段,加密的基本过程就是对原来明文的文件或数据,按某种算法进行处理,使其成为不可读的一段代码——密文,使其只能在输入相应的密钥之后才能显示出明文内容,通过这样的途径来达到保护数据不被非法窃取、阅读的目的。不同加密机制或密码函数的用途、强度是不相同的,一个软件或系统中的加密机制使用得是否合理,强度是否满足当前需求,是需要通过测试来完成的,通常模拟揭秘是测试的一个重要手段。
    数据库权限管理的测试有如下三个方面:
    应用软件部署后,数据库管理用户的设置应当注意对账号的保护,超级用户的口令不得为空或默认口令。对数据库的账号和组的权限作相应设置,如锁定一些默认的数据库用户;撤销不必要的权限。
    数据库中关于应用软件用户权限和口令存储的相关表格,尽量采用加密算法进行加密。
    软件企业在进行软件产品开发时,开发人员通常为了开发方便,在客户端与数据库通信时,均使用超级用户及默认密码访问数据库,这种方式将会带来严重的安全隐患,测试人员可以通过网络侦听的技术,或使用白盒测试方法进行测试,并且应当建议开发者,根据不同程序访问数据库的功能,使用不同的数据库用户进行连接,且必须设置复杂的密码。
    【问题3】
    安全防护策略是软件系统对抗攻击的主要手段,安全防护策略主要有安全日志、入侵检测、隔离防护、漏洞扫描等。
    安全日志是记录非法用户的登录名称、操作时间及内容等信息,以便于发现问题并提出解决措施。安全日志仅记录相关信息,不对非法行为作出主动反应,属于被动防护的策略。
    入侵检测系统是一种主动的网络安全防护措施,从系统内部和各种网络资源中主动采集信息,从中分析可能的网络入侵或攻击。一般来说,入侵检测系统还应对入侵行为作出紧急响应。入侵检测被认为是防火墙之后的第二道安全闸门,在不影响网络性能的情况下能对网络进行检测,从而提供对内部攻击,外部攻击和误操作的实时保护。
    漏洞扫描就是对软件系统及网络系统进行与安全相关的检测,以找出安全隐患和可被黑客利用的漏洞,同时漏洞扫描技术也是安全性测试的一项必要手段。
    隔离防护是将系统中的安全部分与非安全部分进行隔离的措施,目前采用的技术主要有两种,即隔离网闸和防火墙,隔离网闸主要目的在于实现内网和外面的物理隔离,防火墙主要用于内网和外网的逻辑隔离。
    防火墙
    1、是否支持交换和路由两种工作模式。
    2、是否支持对HTTP、FTP、SMTP等服务类型的访问控制。
    3、是否考虑到防火墙的冗余设计。
    4、是否支持对日志的统计分析功能,同时,日志是否可以存储在本地和网络数据库上。
    5、对防火墙本身或受保护网段的非法攻击系统,是否提供多种告警方式以及多种级别的告警。
    入侵检测系统
    1、能否在检测到入侵事件时,自动执行切断服务、记录入侵过程、邮件报警等动作。
    2、是否支持攻击特征信息的集中式发布和攻击取证信息的分布式上载。
    3、能否提供多种方式对监视引擎和检测特征的定期更新服务。
    4、内置的网络能否使用状况监控工具和网络监听工具。

第 5 题

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
软件在机载设备中的运用越来越广泛,驻留于机载设备中的嵌入式软件失效会产生灾难性后果,一般要求其具有较高的可靠性,因此,软件可靠性测试对机载软件至关重要。

【问题1】(8分)
解释软件可靠性的含义及影响软件可靠性的主要因素。
【问题2】(6分)
可靠性评价时,经常使用的定量指标包括失效概率、可靠度和平均无失效时间 (MTTF),请分别解释其含义。
【问题3】(6分)
对某嵌入式软件,设计要求其可靠度为1000小时无失效概率99.99%。经实测得出其失效概率函数F(1000)=0.0012,问该软件是否符合设计可靠性要求,并说明原因。

答案与解析

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

    【问题1】
    可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力或者在指定条件下使用时,软件产品维持规定的性能级别的能力。
    从技术的角度来看,影响软件可靠性的主要因素如下:
    运行剖面(环境);软件规模;软件内部结构;软件的开发方法和开发环境;软件的可靠性投入。
    【问题2】
    失效概率:软件从运行开始,到某一个时刻为止,出现失效的概率。
    可靠度:是软件系统在规定的条件下,规定的时间内不发生失效的概率。
    平均无失效时间(MTTF):是软件运行后,到下一次出现失效的平均时间。通常平均无失效时间更能直观地表明一个软件的可靠程度。
    【问题3】
    不符合设计要求,题干中要求无1000小时无失效概率为99.99%。依据公式R(t)=1-F(t)可以得出实际的R(t)=1-0.0012=99.88% < 99.99%

  • 试题解析:

    【问题1】
    可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力或者在指定条件下使用时,软件产品维持规定的性能级别的能力。
    从技术的角度来看,影响软件可靠性的主要因素如下:
    运行剖面(环境):软件可靠性的定义是相对运行环境而言的,一样的软件在不同的运行剖面下,其可靠性的表现是不一样的。
    软件规模:也就是软件的大小,一个只有数十行代码的软件和几千行代码的软件是不能相提并论的。
    软件内部结构:结构对软件可靠性的影响主要取决于软件结构的复杂程度,一般来说,内部结构越复杂的软件,所包含的软件缺陷数就可能越多。
    软件的开发方法和开发环境:软件工程表明,软件的开发方法对软件的可靠性有显著影响,例如,与非结构化方法相比,结构化方法可以明显减少软件的缺陷数。
    软件的可靠性投入:软件在生命周期中可靠性的投入包括开发者在可靠性设计、可靠性管理、可靠性测试、可靠性评价等方面投入的人力、资金、资源和时间等。经验表明,在早期重视软件可靠性并采取措施开发出来的软件,可靠性有明显的提高。
    【问题2】
    失效概率:软件从运行开始,到某一个时刻为止,出现失效的概率。如果将失效的概率看作关于软件运行时间的一个随机函数,用F(t)表示。函数F(t)具有如下特征:F(0)=0,即软件运行初始时刻失效概率为0;F(t)在时间域(0,+∞)上是单调递增的;F(+∞)=1,即失效概率在运行时间不断增长时趋向于1。
    可靠度:是软件系统在规定的条件下,规定的时间内不发生失效的概率。如果用F(t)来表示到t时刻为止,软件不出现失效的概率,则可靠度的公式为R(t)=1-F(t)。
    平均无失效时间(MTTF):是软件运行后,到下一次出现失效的平均时间。通常平均无失效时间更能直观地表明一个软件的可靠程度。
    【问题3】
    不符合设计要求,题干中要求无1000小时无失效概率为99.99%。依据公式R(t)=1-F(t)可以得出实际的R(t)=1-0.0012=99.88%,实际的无失效概率99.88%要低于设计要求的99.99%。

results matching ""

    No results matching ""