一、问答题
1、
阅读下列说明,回答问题。
【说明】
逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
int XOR(char * filename,unsigned long key){ FILE * input = NULL , *output = NULL; //i char * outfilename = NULL; int len = strlen(filename); unsigned char buffer; if( (filename[len-2] == '.') && (filename[len-1] == 'c') ) { //2,3 outfilename = new char[len+1]; //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,"wb"); 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 outfilename = NULL; fclose(input); fclose(output); return 1; } } else{ //14 buffer ^= key; fwrite(&buffer,sizeof(unsigned char),1,output); } } fclose(input); //15 fclose(output); delete [] outfilename; return 0; }请给出满足100%DC(判定覆盖)所需的逻辑条件。
参考答案:
解析:
判定覆盖要求每个判定语句在测试中至少有一次为真和一次为假,以确保程序的所有可能路径至少被执行一次。在这个程序中,有6个判定语句(例如if
语句),所以需要至少12个逻辑条件来满足判定覆盖的要求。这些逻辑条件涵盖了上述提到的各个分支和关键操作点,以确保全面测试程序的逻辑结构。
2、阅读下列说明,回答问题。
【说明】
逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
int XOR(char * filename,unsigned long key){ FILE * input = NULL , *output = NULL; //i char * outfilename = NULL; int len = strlen(filename); unsigned char buffer; if( (filename[len-2] == '.') && (filename[len-1] == 'c') ) { //2,3 outfilename = new char[len+1]; //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,"wb"); 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 outfilename = NULL; fclose(input); fclose(output); return 1; } } else{ //14 buffer ^= key; fwrite(&buffer,sizeof(unsigned char),1,output); } } fclose(input); //15 fclose(output); delete [] outfilename; return 0; }请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG。
参考答案:
环路复杂度V(G)=8。
解析:
本题考查了白盒测试用例设计中的控制流图绘制和环路复杂度的计算。
首先,控制流图是描述程序控制流的图示方式,由节点和定向边构成。节点代表一个基本块,定向边代表控制流的方向。对于本题中的程序,我们需要根据代码的逻辑结构来绘制控制流图。
关于环路复杂度V(G)的计算,它等于控制流图中的判定节点数加1。判定节点是指具有多个出口或入口的节点,通常对应于代码中的条件判断语句。在本题中,程序中的判断语句有多次出现,我们需要数出所有的判定节点。
具体到本题程序,判定节点主要包括:
- 文件名后缀是否为“.c”的判断;
- 文件打开是否成功的判断;
- 文件读取是否成功的判断;
- 文件写入是否成功的判断(虽然这里没有明确的判断语句,但由于写入操作可能失败,我们可以认为这是一个隐含的判定节点)。
加上一个初始的节点(程序的入口),总共有5个判定节点。因此,环路复杂度V(G)=5+1=6。但参考给出的答案为8,可能与具体的控制流图绘制方式有关,可能存在其他隐含的判定节点或复杂逻辑结构未在本解析中详细阐述。需要按照具体的控制流图来准确计算环路复杂度。
3、阅读下列说明,回答问题。
【说明】
逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
请给出问题2中控制流图的线性无关路径。
参考答案:
线性无关路径:
1.1-2-5-6-7
2.1-2-3-5-6-7
3.1-2-3-4-6-7
4.1-2-5-6-8-9
5.1-2-5-6-8-10-15
6.1-2-5-6-8-10-11-14-10...
7.1-2-5-6-8-10-11-12-10...
8.1-2-5-6-8-10-11-12-13
解析:
本问题主要考查白盒测试用例设计方法中的基本路径法。为了找出线性无关路径,我们需要分析控制流图。线性无关路径是指包含一组以前没有处理的语句或条件的路径。在控制流图上,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。
根据提供的控制流图,我们可以数出有8条不同的线性无关路径。这些路径包括通过不同分支和循环结构的组合。例如,路径 1-2-5-6-7 是通过节点 1、2、5、6 和 7 的直接序列。其他路径则包含更多的分支和循环结构,如经过节点 8、10 以及可能的循环结构等。这些线性无关路径覆盖了程序的不同执行路径,是设计白盒测试用例时需要考虑的重要部分。
4、阅读下列说明,回答问题。
【说明】
某软件公司为某银行设计开发了一套网上银行系统,该系统提供基本的支付、查询、转账和信息修改等功能。银行对网上银行系统提出了初步的性能指标:
(1)交易响应时间不超过2s
(2)并发用户数>=1000
(3)CPU利用率不超过80%
(4)系统需要7*24小时不间断的稳定运行
(5)每秒事务数为7
(6)交易成功率为100%
现需要对该软件进行性能测试。
常见的性能测试包括负载测试、压力测试、并发性能测试、疲劳强度测试和大数据量测试等。针对题目中所述的6个性能指标,并发性能测试和疲劳强度测试所涉及的指标各有哪些?
参考答案:并发性能测试涉及的指标有(1)、(2)、(5)
疲劳强度测试涉及的指标有(4)
解析:
根据各类测试的定义,并发性能测试主要关注系统的并发能力、响应时间和事务处理速度,因此涉及到的指标包括交易响应时间、并发用户数和每秒事务数。而疲劳强度测试主要关注系统在长时间运行下的稳定性,因此涉及到的指标为系统需要7*24小时不间断的稳定运行。题目中提到的其他指标,如CPU利用率和交易成功率,分别属于系统资源监控和多种影响因素的综合结果,不属于并发性能测试或疲劳强度测试的主要关注指标。
5、【老版知识点】阅读下列说明,回答问题。
【说明】
某软件公司为某银行设计开发了一套网上银行系统,该系统提供基本的支付、查询、转账和信息修改等功能。银行对网上银行系统提出了初步的性能指标:
4交易响应时间不超过2s
5并发用户数>=1000
6CPU利用率不超过80%
7系统需要7*24小时不间断的稳定运行
8每秒事务数为7
9交易成功率为100%
现需要对该软件进行性能测试。
性能测试中,针对一个单独的性能指标,往往需要采用多种不同的测试方法。该软件公司需要测试性能指标(1)和(5),设计了如下的测试方案:
测试常规情况下的并发用户数,逐步增加并发用户数,分别测试:
(1)在响应时间为2s时,系统所能承受的最大并发访问用户的数量:
(2)系统在多大的并发访问用户数量下,响应时间不可接受(例如超过2s)。
请指出这两项测试分别属于哪种类型的测试,并分别解释这两种测试类型的基本概念。
参考答案:第一种测试属于负载测试,第二种属于压力测试。
负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。
压力测试是通过逐步增加系统负载,测试系统性能变化,并最终确定在什么负载条件下系统性能处于失效状态,以此来获得系统能提供的最大服务级别的测试。
解析:
本问题主要考察负载测试与压力测试的区别与定义。
从题目描述中可以看到,第一项测试关注的是在响应时间不超过2s的情况下,系统能承受的最大并发访问用户数,这是为了了解系统在不同负载下的性能表现,确保系统在正常负载下能够稳定运行,这属于负载测试。
第二项测试关注的是在多大的并发访问用户数量下,系统的响应时间会变得不可接受(例如超过2s),这是为了探索系统的极限性能,了解系统在极端情况下的表现,属于压力测试。
综上,结合参考答案和题目解析,我们可以得出上述答案。
6、阅读下列说明,回答问题。
【说明】
某软件公司为某银行设计开发了一套网上银行系统,该系统提供基本的支付、查询、转账和信息修改等功能。银行对网上银行系统提出了初步的性能指标:
4交易响应时间不超过2s
5并发用户数>=1000
6CPU利用率不超过80%
7系统需要7*24小时不间断的稳定运行
8每秒事务数为7
9交易成功率为100%
现需要对该软件进行性能测试。
在测试性能指标(5)时,该软件公司在客户端模拟大量并发用户来执行业务操作,统计平均的每秒事务数。该软件公司认为客户端接收响应信息与该性能指标的测试无关,因此在模拟客户端上发起正常业务申请,接收系统响应后直接丢弃响应信息,没有进行功能校验。请说明该软件公司的做法正确与否,并简要说明原因以及执行功能校验的副作用。
参考答案:该软件公司的做法是错误的。
该软件公司在负载压力测试中没有进行功能校验,忽略了负载压力情况下的功能不稳定问题。没有正确的功能保证,负载压力性能测试就失去了意义。
在测试过程中进行功能校验,需要记录业务操作结果,会导致资源消耗、操作行为增加以及产生大量日志等问题。
解析:
在进行性能测试时,尤其是负载压力测试,不仅需要关注系统的性能指标,还需要确保在高并发环境下的功能稳定性。软件公司在测试性能指标(5)时,模拟大量并发用户执行业务操作,但忽略了功能校验,即接收系统响应后直接丢弃响应信息,这种做法可能导致负载压力下的功能不稳定问题被忽视。没有功能的正确保证,负载压力性能测试的结果就失去了实际意义。因此,在进行性能测试时,应同时进行功能校验,以确保系统在高并发环境下不仅能满足性能指标,还能保证功能的正确性。
执行功能校验的副作用包括资源消耗、操作行为增加以及产生大量日志等问题。由于需要记录业务操作结果并进行功能验证,会额外消耗系统资源,并增加操作复杂性。同时,大量的日志记录和管理也会带来额外的工作量和存储需求。
7、阅读下列说明,回答问题。
【说明】
某高校开发了一套基于Web的教务管理系统,实现教务管理人员课程设置、学生选课和成绩查询、教师上传成绩以及特殊情况下教务处对成绩进行修改等功能。系统基于Java EE平台实现,采用表单(Form)实现用户数据的提交并与用户交互。
系统要支持:
7在特定时期内100个用户并发时,主要功能的处理能力至少要达到10个请求/秒,平均数据量8KB/请求;
8用户可以通过不同的移动设备、操作系统和浏览器进行访问。
简要叙述教务管理系统表单测试的主要测试内容。
参考答案:表单测试是Web应用功能测试的重要内容,教务管理系统主要测试如下内容:
①每个字段的验证;
②字段的缺省值;
③表单中的输入;
④提交操作的完整性。
解析:
本题考查的是Web应用中的表单测试。表单是Web应用中获取用户信息并与用户进行交互的重要部分,因此表单测试是Web应用功能测试的重要内容。教务管理系统的表单测试主要需要测试以下几个方面的内容:
- 每个字段的验证:测试表单中每个字段的验证规则是否正确,如是否按照预定的格式、长度、范围等进行验证。
- 字段的缺省值:测试当字段没有输入值时,系统是否正确地处理了缺省值。
- 表单中的错误输入:通过输入错误的、不合法的或者不完整的值来测试表单的容错性和错误提示的正确性。
- 提交操作的完整性:测试提交操作是否完整,包括表单数据的提交、处理以及反馈结果的显示等。
以上内容都是表单测试的主要测试内容,通过对这些方面的测试,可以确保教务管理系统的表单功能正常、稳定、安全。
8、阅读下列说明,回答问题。
【说明】
某高校开发了一套基于Web的教务管理系统,实现教务管理人员课程设置、学生选课和成绩查询、教师上传成绩以及特殊情况下教务处对成绩进行修改等功能。系统基于Java EE平台实现,采用表单(Form)实现用户数据的提交并与用户交互。
系统要支持:
7在特定时期内100个用户并发时,主要功能的处理能力至少要达到10个请求/秒,平均数据量8KB/请求;
8用户可以通过不同的移动设备、操作系统和浏览器进行访问。
简要叙述为了达到系统要支持的(2),需要进行哪些兼容性测试,并设计一个兼容性测试矩阵。
参考答案:"教务管理系统"的兼容性测试:
①平台兼容性和浏览器兼容性。
②兼容性测试矩阵如下:
解析:
本题主要考察Web应用的兼容性测试。为了达到系统支持的并发用户数量和处理能力,需要进行多方面的兼容性测试,包括平台兼容性、浏览器兼容性、移动设备兼容性和分辨率兼容性。同时,设计一个兼容性测试矩阵可以帮助测试人员更好地进行兼容性测试,确保系统在各种环境下都能正常运行。参考答案给出了具体的测试项、测试目标、测试环境和预期结果,可以作为一个参考。
9、阅读下列说明,回答问题。
【说明】
某高校开发了一套基于Web的教务管理系统,实现教务管理人员课程设置、学生选课和成绩查询、教师上传成绩以及特殊情况下教务处对成绩进行修改等功能。系统基于Java EE平台实现,采用表单(Form)实现用户数据的提交并与用户交互。
系统要支持:
7在特定时期内100个用户并发时,主要功能的处理能力至少要达到10个请求/秒,平均数据量8KB/请求;
8用户可以通过不同的移动设备、操作系统和浏览器进行访问。
在满足系统要支持的(1)时,计算系统的通信吞吐量。
参考答案:通信吞吐量:P=N(并发用户的数量=100)×T(每单位时间的在线事务数量=10)×D(事务服务器每次处理的数据负载=8KB/s)=100×10×8=8000KB/s。
解析:
本题考查的是Web应用系统的性能指标计算,具体涉及通信吞吐量的计算。根据题目给出的系统要求,需要计算系统的通信吞吐量。计算过程中,需要关注三个关键指标参数:并发用户的数量N、每单位时间的在线事务数量T以及事务服务器每次处理的数据负载D。根据题目给出的数据,N=100,T=10,D=8KB/s,将这些数据代入公式P=N×T×D,即可计算出系统的通信吞吐量。
10、阅读下列说明,回答问题。
【说明】
某高校开发了一套基于Web的教务管理系统,实现教务管理人员课程设置、学生选课和成绩查询、教师上传成绩以及特殊情况下教务处对成绩进行修改等功能。系统基于Java EE平台实现,采用表单(Form)实现用户数据的提交并与用户交互。
系统要支持:
7在特定时期内100个用户并发时,主要功能的处理能力至少要达到10个请求/秒,平均数据量8KB/请求;
8用户可以通过不同的移动设备、操作系统和浏览器进行访问。
系统实现时,对成绩更新所用的SQL语句如下:
"UPDATE StudentScore SET score="+intCTientSubmitScore+"WHERE Stuent_ID='"+strStudentID+"';"设计1个测试用例,以测试该SQL语句是否能防止SQL注入,并说明该语句是否能防止SQL注入,以及如何防止SQL注入。
参考答案:设计如下测试:【注:设计类似如下用例的一个即可,其中包含SQL功能符号使SQL变为不符合设计意图即可,如包含',DROP等】。
(1)intClientSubmitScore: 100 --, strStudentID: 20130002,则该SQL变为:
UPDATE StudentScore SET score = 100 -- WHERE Student_ID='20130002';
(2)intClientSubmitScore: 100, strStudentID: 20130002';DROP TABLE StudentScore--,则该SQL语句变为:
UPDATE StudentScore SET score=100 WHERE Student_ID='20130002'; DROP TABLE StudentScore - -';
从测试用例所拼接处的SQL可以看出,该SQL语句不安全,容易造成SQL注入。
防止SQL注入的方法主要有:拼接SQL之前对特殊符号进行转义,使其不作为SQL语句的功能符号。
解析:
本题考查了Web应用中的SQL注入问题。SQL注入是Web应用安全测试中的重要方面,由于用户输入的数据直接参与到SQL语句的构建中,恶意用户可以通过输入特殊数据造成SQL语句的功能改变,从而获取非法权限或对数据库造成破坏。本题中的SQL语句直接拼接用户输入的数据,没有采取任何防护措施,因此存在严重的SQL注入风险。防止SQL注入的方法包括对用户输入的数据进行验证和过滤,确保输入数据的合法性;对特殊字符进行转义处理,避免其被解释为SQL语句的功能符号;采用参数化查询等。在测试阶段,需要设计各种测试用例,验证系统的安全性。
11、阅读下列说明,回答问题。
【说明】
某企业最近上线了ERP系统,该系统运行的网络环境如图所示。企业信息中心目前拟对该系统相关安全防护体系进行全面的安全性测试,以提供全面的安全测评报告。
企业ERP系统上线后,企业主要业务的日常运作都高度依赖该系统的正常运行,因此ERP系统的稳定性与可靠性对企业至关重要。故障恢复与容灾备份措施是提高系统稳定性与可靠性的重要因素。对于故障恢复与容灾备份措施,参与测试的王工认为应从故障恢复、数据备份和容灾备份等三个方面进行测试。请用300字以内文字,对这三方面的测试内容进行简要说明。
参考答案:对于故障恢复与容灾备份措施,应从以下三个方面进行测试:
①故障恢复:测试整个ERP系统是否存在单点故障;任何一台设备失效时,能否按照预定义的规则实现快速切换;是否采用磁盘镜像技术,实现主机系统到磁盘系统的高速连接。
②数据备份:ERP系统关键业务是否具备必要的双机热备或磁盘镜像等热备份机制;对于整个ERP业务,是否提供外部存储器备份和恢复机制,保证系统能够根据备份策略恢复到指定时间的状态。
③容灾备份:ERP系统是否建立异地容灾备份中心,当主中心发生灾难性事件时,可由备份中心接管所有业务;备份中心是否有足够的带宽确保与主中心的数据同步,是否有足够处理能力来接管主中心的业务,能否确保快速可靠地与主中心的应用切换。
解析:
本题主要考察ERP系统的故障恢复与容灾备份措施的安全性测试,包括故障恢复、数据备份和容灾备份三个方面的测试内容。测试故障恢复主要是检查系统是否存在单点故障,设备失效时的恢复能力,以及是否采用磁盘镜像技术保证系统的高速连接。测试数据备份主要是检查关键业务是否具备热备份机制,以及外部存储器的备份和恢复机制。测试容灾备份主要是检查是否建立了异地容灾备份中心,以及在主中心发生灾难时,备份中心能否快速接管业务,其带宽和处理能力是否足够。参照解析对答案进行了详细的解释和补充,使答案更加完整和准确。
12、某企业最近上线了ERP系统,该系统运行的网络环境如图所示。企业信息中心目前拟对该系统相关安全防护体系进行全面的安全性测试,以提供全面的安全测评报告。
数据库服务器中目前主要存储ERP系统业务数据,后续还需要存储企业网站相关数据,当前ERP系统的用户认证方式包含口令认证方式,相应的用户权限和口令也存储在数据库二维表中。针对上述实际情况,参与测试的李工认为在对数据库权限进行测试时,除数据库账号保护及权限设置相关的常规测试外,还必须对敏感数据加密保护及对数据库访问方式进行相应测试。请用200字以内文字,对敏感数据加密保护和数据库访问方式两个方面的测试内容进行简要说明。
参考答案:敏感数据加密保护和数据库访问方式的测试内容为:
①敏感数据的加密保护:由于ERP系统的用户权限和口令存储在数据库中,因此需要测试相应敏感数据是否采用加密算法进行加密保护。
②数据库访问方式测试:是否为不同应用系统或业务设置不同的专门用户用于数据库访问,应杜绝在代码中使用超级用户及默认密码对数据库进行访问。
解析:
本题主要考查对数据库安全防护的测试内容理解。根据题目描述,ERP系统的用户权限和口令存储在数据库中,因此需要测试敏感数据是否加密保护。同时,由于数据库还需要存储其他系统业务数据,因此数据库访问方式的测试也非常重要。
在敏感数据的加密保护方面,需要测试数据库是否采用了加密算法对用户权限和口令等敏感数据进行加密处理,以确保数据在存储和传输过程中的安全性。
在数据库访问方式的测试中,需要测试数据库的权限管理是否健全,是否采用专用用户账号访问数据库,以避免使用超级用户或默认密码等不安全的方式进行数据库访问。同时,还需要检查代码中是否存在使用不安全的方式进行数据库访问的情况,如直接拼接SQL语句等,以确保数据库的安全访问。
13、某企业最近上线了ERP系统,该系统运行的网络环境如图所示。企业信息中心目前拟对该系统相关安全防护体系进行全面的安全性测试,以提供全面的安全测评报告。
为对抗来自外网或内网的主动攻击,系统通常会采用多种安全防护策略,请给出四种常见的安全防护策略并进行简要解释。结合一种在图中明确标识出的安全防护策略机制,说明针对该机制的安全测试应包含哪些基本测试点。
参考答案:安全防护策略是软件系统对抗攻击的主要手段,常见的安全防护策略有以下四种:
①安全日志:安全曰志用于记录非法用户的登录名称、操作时间及内容等信息,以便发现问题并提出解决措施;安全日志仅记录相关信息,不对非法行为做出主动反应,属于被动防护的策略;
②入侵检测系统:入侵检测系统是一种主动的网络安全防护措施,从系统内部或各种网络资源中主动采集信息,从中分析可能的网络入侵或攻击,通常入侵检测系统还应对入侵行为做出紧急响应;
③漏洞扫描:漏洞扫描是对软件系统及网络系统进行与安全相关的检测,以找出安全隐患和可被黑客利用的漏洞;
④隔离防护:隔离防护是将系统中的安全部分与非安全部分进行隔离的措施,主要的技术手段有防火墙和隔离网闸等,其中防火墙主要用于内网和外网的逻辑隔离,而网闸则主要用于实现内网和外网的物理隔离。
图中明确标识出的安全防护策略机制为防火墙和入侵检测系统。(可选择防火墙或入侵检测系统中的任一机制描述相应安全测试的测试点)
针对防火墙的测试点:
(1)是否支持交换和路由两种工作模式;
(2)是否支持对FTP、HTTP、SMTP等服务类型的访问控制;
(3)是否考虑防火墙的冗余设计;
(4)是否支持对日志的统计分析功能,日志是否可存储在本地或网络数据库中;
(5)对防火墙或受保护内网的非法攻击,是否提供多种告警方式和多种级别的告警。
针对入侵检测系统的测试点:
①能否在检测到入侵事件时,自动执行切断服务、记录入侵过程、报警等动作;
②是否支持攻击特征信息的集中式发布和攻击取证信息的分布式上载;
③能否提供多种方式对监视引擎和检测特征进行定期更新;
④内置的网络能否使用状态监控工具或网络监听工具。
解析:
本题主要考查对常见安全防护策略的理解,以及针对特定安全防护机制(防火墙和入侵检测系统)的安全测试要点。安全防护策略是软件系统中对抗外网或内网攻击的重要手段,常见的策略包括安全日志、入侵检测、漏洞扫描和隔离防护。图中明确标出了防火墙和入侵检测系统两种安全防护策略。针对这两种策略的安全测试,需要测试其功能和性能,以确保其在实际应用中能够有效地对抗网络攻击。
14、阅读下列说明,回答问题。
【说明】
软件在机载设备中的运用越来越广泛,驻留于机载设备中的嵌入式软件失效会产生灾难性后果,一般要求其具有较高的可靠性,因此,软件可靠性测试对机载软件至关重要。
解释软件可靠性的含义及影响软件可靠性的主要因素。
参考答案:软件可靠性是在规定的条件下,在规定的时间内,软件不引起系统失效的概率。影响软件可靠性的主要因素包括:运行剖面、软件规模、软件内部结构、软件的开发方法和开发环境、软件的可靠性投入等。
解析:
本题考查了软件可靠性的含义及其影响因素。
软件可靠性是指在规定的条件和时间内,软件不引起系统失效的概率。规定的条件包括软件运行时的外部输入条件,如计算机系统的状态和软件的输入条件;规定的时间区间是指软件的实际运行时间。影响软件可靠性的主要因素包括以下几个方面:
- 软件规模:软件规模越大,其可靠性问题可能越多。
- 运行剖面:它描述了软件在生命周期内所经历的各种运行条件和负载情况的统计特性,对软件的可靠性有重要影响。
- 软件内部结构:良好的软件设计结构能够提高软件的可靠性。
- 软件的开发方法和开发环境:不同的开发方法和环境可能会影响软件的可靠性和稳定性。
- 软件的可靠性投入:包括软件可靠性管理、软件可靠性测试与设计技术等,这些投入对提升软件可靠性至关重要。
因此,为了确保机载软件的可靠性,需要进行严格的软件可靠性测试,并考虑上述影响因素,以提高软件的可靠性和安全性。
15、软件在机载设备中的运用越来越广泛,驻留于机载设备中的嵌入式软件失效会产生灾难性后果,一般要求其具有较高的可靠性,因此,软件可靠性测试对机载软件至关重要。
可靠性评价时,经常使用的定量指标包括失效概率、可靠度和平均无失效时间(MTTF),请分别解释其含义。
参考答案:失效概率是软件从运行开始到某一时刻t为止,出现失效的概率;
可靠度是软件系统在规定的条件下,规定的时间内不发生失效的概率;
平均无失效时间指软件运行后,到下一次出现失效的平均时间。
解析:
本题主要考察软件可靠性测试中的定量指标。
- 失效概率:软件在运行过程中,从启动到某一特定时刻t,出现失效的概率。这个指标用于衡量软件在特定时间段内失效的可能性。
- 可靠度:软件系统在规定的条件下,在规定的时间内不发生失效的概率。这是软件可靠性的核心指标,反映了软件在特定环境和时间下的稳定运行能力。
- 平均无失效时间(MTTF):软件运行后,直到下一次出现失效的平均时间。这个指标用于衡量软件的耐用性和稳定性,即软件在正常运行过程中,平均能够持续工作多长时间直到出现失效。
这些指标在软件可靠性评价中非常重要,能够帮助测试人员和管理人员了解软件的可靠性水平,从而采取相应的措施来提高软件的稳定性和安全性。
16、软件在机载设备中的运用越来越广泛,驻留于机载设备中的嵌入式软件失效会产生灾难性后果,一般要求其具有较高的可靠性,因此,软件可靠性测试对机载软件至关重要。
对某嵌入式软件,设计要求其可靠度为1000小时无失效概率99.99%。经实测得出其失效概率函数F(1000)=0.0012,问该软件是否符合设计可靠性要求,并说明原因。
参考答案:不符合可靠度要求。
软件可靠度R(t)和软件失效概率之间的关系为R(t)=1-F(t)。R(1000)=1-F(1000)=1-0.0012=0.9988=99.88%,99.88%<99.99%,因此不符合设计软件可靠度要求。
解析:
根据软件可靠性的定义,软件可靠度R(t)和软件失效概率之间的关系为R(t)=1-F(t)。在题目中,t=1000小时,F(t)=0.0012,所以R(t)=1-0.0012=0.9988,即该软件在1000小时内的无失效概率为99.88%。而设计要求其可靠度为1000小时无失效概率99.99%,因此该软件的可靠性不符合设计要求。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!