一种构建非嵌入式软件可靠性测试过程模型的方法技术

技术编号:22329955 阅读:32 留言:0更新日期:2019-10-19 12:14
本发明专利技术涉及一种构建非嵌入式软件可靠性测试过程模型的方法,包括以下步骤:软件可靠性测试策划阶段;软件可靠性测试大纲评审阶段;软件可靠性测试设计和实现阶段;软件可靠性测试执行阶段;软件可靠性测试总结阶段;软件可靠性测试总结评审阶段。本发明专利技术首先通过重点研究和解决非嵌入式软件可靠性测试的操作剖面构建、测试数据生成、测试数据分析和处理以及测试充分性评估等可靠性测试关键技术,解决“用什么方法进行非嵌入式软件可靠性测试的问题”,然后通过结合非嵌入式软件的特点,提出非嵌入式软件的可靠性测试过程模型,解决“进行非嵌入式软件可靠性测试使用什么过程模型的问题”,解决了现有技术的不足。

A method of building reliability testing process model of non embedded software

【技术实现步骤摘要】
一种构建非嵌入式软件可靠性测试过程模型的方法
本专利技术属于非嵌入式软件可靠性测试
,尤其涉及一种构建非嵌入式软件可靠性测试过程模型的方法。
技术介绍
随着信息技术的飞速发展,在航空航天、核能、通信等关键领域对软件的可靠性和安全性的要求越来越高。尤其是在某些特殊的领域,由于软件的可靠性和安全性不高,从而在软件运行过程中发生失效,导致整个系统崩溃或关键性任务未完成,最终带来灾难性的后果。下面列举几起因为软件失效而发生的令人印象深刻的事件:1)1990年,AT&T长途电话网络系统由于switch语句跳出位置错误,导致6万人固话通信中断,造成至少6000万美元的损失。2)1994年,NASA发射了新型月球探测器克莱门汀号(Clementine),由于软件BUG,在飞向小行星时未能到达小行星,导致任务失败。3)2014年,美国商务航空公司使用的机组调度软件存在定时器溢出BUG,导致1100个航班被迫取消,造成数百万美元的经济损失。4)2016年,日本发射的卫星“瞳”由于在软件运行中对异常情况考虑不全,导致卫星因自旋而解体,直接经济损失2.86亿美元。从上述事例中可以看出,当软件的可靠性无法得到保证时,可能会造成人们重大的经济损失,甚至会威胁到人类的生命安全。要想从根本上提高软件的可靠性,就必须最大力度的规范软件的开发流程,尽可能充分地进行软件测试。但是,一般情况下,我们往往只对软件进行单元测试、部件测试、集成测试、配置项测试和系统测试等常规类的软件测试,这种测试只能尽可能多的发现一些软件缺陷,但对软件的可靠性无法定量地去进行度量。所以,需要进行一种能对软件的可靠性进行定量度量的测试,即对软件进行可靠性测试。软件可靠性测试就是通过分析软件的使用场景(运行环境、用户类型和使用方式等)、软件的工作流程及数据接口的关系,总结出软件的运行特点,并统计各个功能模块在软件实际运行过程中的使用概率,构建出适合当前软件的操作剖面、生成测试用例,使其尽可能地反映软件在真实环境下的运行特点。目前为止,针对嵌入式软件的可靠性测试方法比较成熟,而对于非嵌入式软件主要是从单元测试、集成测试、系统测试和回归测试等角度进行测试,面向可靠性测试的研究较少,且主要集中在测试理论的研究,在相关测试技术和方法上还有诸多问题尚待解决。
技术实现思路
为了解决上述问题,本专利技术提出一种构建非嵌入式软件可靠性测试过程模型的方法,已解决现有技术的不足。为了解决上述问题,本专利技术提出一种构建非嵌入式软件可靠性测试过程模型的方法,包括以下步骤:步骤1:软件可靠性测试策划阶段;步骤2:软件可靠性测试大纲评审阶段;步骤3:软件可靠性测试设计和实现阶段;步骤4:软件可靠性测试执行阶段;步骤5:软件可靠性测试总结阶段;步骤6:软件可靠性测试总结评审阶段。优选的,所述步骤1的软件可靠性测试策划阶段包括:1)由项目负责人下发测试项目任务通知单给测试负责人和开发负责人,开发负责人接到任务通知单后将软件任务书、需求规格说明提交给测试负责人;2)测试负责人根据开发方提交的非嵌入式软件任务书和需求规格说明,了解被测软件信息,包括被测软件的运行状态、运行环境、用户类型、使用方式、软件功能组成及工作流程、交联环境与及数据接口的关系,并编写出针对本次非嵌入式软件进行软件可靠性测试所需要的软件可靠性增长测试项目计划或软件可靠性验证测试项目计划;3)确定非嵌入式软件可靠性测试的环境要求,包括软硬件设备,并给出构建测试环境的初步方案;4)结合测试环境和非嵌入式软件的特点,确定非嵌入式软件的可靠性测试关键技术,如软件可靠性测试操作剖面的构建技术、软件可靠性测试数据生成技术、软件可靠性测试数据分析与处理技术和软件可靠性测试充分性评估技术;5)若当前测试为软件可靠性增长测试,则定义失效和可靠性目标,失效和可靠性目标的定义可由测试方、开发方和用户共同完成;如果软件可靠性要求是根据不同故障等级的失效提出的,那么按照软件的故障等级对软件失效进行分类,根据不同故障等级的失效数据对当前软件进行可靠性评估;6)若当前测试为软件可靠性验证测试,则确定适用于非嵌入式软件的验证统计测试方案;软件可靠性验证测试中可以选用的统计方案包括:定时截尾方案、序贯方案和无失效运行方案;7)确定需采集的数据及采集要求,根据测试的要求,确定要采集的数据及记录方式。优选的,所述步骤2的软件可靠性测试大纲评审阶段包括:1)审查测试大纲内容的正确性、完整性和规范性;2)审查测试策略的正确性和合理性;3)审查测试过程中使用的评价准则和方法的正确性;4)审查测试进度的合理性;5)审查测试任务的结束条件的合理性和正确性。优选的,所述步骤3的软件可靠性测试设计和实现阶段包括:1)构造操作剖面,通过对现有的操作剖面构建方法进行对比分析,并结合非嵌入式软件,构建出适用于非嵌入式软件的操作剖面;2)搭建软件可靠性测试环境;3)生成测试用例。优选的,所述步骤4软件可靠性测试执行阶段包括:1)测试执行与收集失效数据,可靠性测试需要收集的数据包括软件的输入/输出数据、软件运行时间数据和可靠性失效数据;2)测试结果分析与处理,将发现的测试问题按问题的类型加以处理,包括以下两种:责任问题,由于被测软件本身的缺陷引起的软件问题称为责任问题,此类问题计入被测软件失效;对于在测试过程中出现的软件失效,如果是增长测试,则在测试期间对其进行更改;如果是验证测试,则不对其进行修改;非责任问题,由于被测软件之外的其他测试软件/设备出现问题、使用测试方法的错误、或测试步骤的不当所引起的软件问题成为非责任问题,非责任问题不计入软件失效,对产生的问题原因进行更改,确认更改正确后重新投入测试;3)测试充分性评估,根据不同的软件测试目的,对软件可靠性测试充分性评估分为软件可靠性验证测试充分性评估和软件可靠性增长测试充分性评估。优选的,所述测试充分性评估中,当前测试为软件可靠性增长测试,需要满足以下四个条件:当前软件已达到软件可靠性要求,在此阶段需要验证被测软件是否满足测试阶段所规定的可靠性要求;当前软件中的关键缺陷已被排除,在对被测软件进行软件可靠性增长测试时,将可靠性测试工程师发现的软件缺陷提交给开发负责人,由开发负责人分配缺陷给开发工程师,开发工程师对其进行修复,直到测试工程师认为关键缺陷被排除,且在修复过程中未引入新的问题为止;满足最小测试用例数,依据被测软件任务书或需求规格说明中给出的失效概率,得出本次可靠性测试需要满足的最小测试用例数,只有在此用例集中的所有测试用例执行完之后的结果均与预期输出一致的情况下,才能认为被测软件的失效概率满足指标要求;否则,就认为被测软件的失效概率不满足指标要求;满足测试资源的约束,若在一定的测试资源下能排除的软件故障不能再增加或增加很少的情况下,停止增加测试资源。优选的,所述测试充分性评估中,若当前测试为软件可靠性验证测试,不需要对测试过程中发现的软件缺陷进行修复,需要满足以下两个条件:通过定量估计软件的可靠性,给出接收/拒收回答,根据在测试策划阶段确定的验证统计测试方案以及测试执行阶段收集的失效数据,得出软件可靠性验证测试的判决是接收还是拒收;同时,根据给定的置信度计算出被测软件的MTTF置信区间;满足最小测试用例数,依据被测本文档来自技高网
...

【技术保护点】
1.一种构建非嵌入式软件可靠性测试过程模型的方法,其特征在于,包括以下步骤:步骤1:软件可靠性测试策划阶段;步骤2:软件可靠性测试大纲评审阶段;步骤3:软件可靠性测试设计和实现阶段;步骤4:软件可靠性测试执行阶段;步骤5:软件可靠性测试总结阶段;步骤6:软件可靠性测试总结评审阶段。

【技术特征摘要】
1.一种构建非嵌入式软件可靠性测试过程模型的方法,其特征在于,包括以下步骤:步骤1:软件可靠性测试策划阶段;步骤2:软件可靠性测试大纲评审阶段;步骤3:软件可靠性测试设计和实现阶段;步骤4:软件可靠性测试执行阶段;步骤5:软件可靠性测试总结阶段;步骤6:软件可靠性测试总结评审阶段。2.根据权利要求1所述的一种构建非嵌入式软件可靠性测试过程模型的方法,其特征在于:所述步骤1的软件可靠性测试策划阶段包括:1)由项目负责人下发测试项目任务通知单给测试负责人和开发负责人,开发负责人接到任务通知单后将软件任务书、需求规格说明提交给测试负责人;2)测试负责人根据开发方提交的非嵌入式软件任务书和需求规格说明,了解被测软件信息,包括被测软件的运行状态、运行环境、用户类型、使用方式、软件功能组成及工作流程、交联环境与及数据接口的关系,并编写出针对本次非嵌入式软件进行软件可靠性测试所需要的软件可靠性增长测试项目计划或软件可靠性验证测试项目计划;3)确定非嵌入式软件可靠性测试的环境要求,包括软硬件设备,并给出构建测试环境的初步方案;4)结合测试环境和非嵌入式软件的特点,确定非嵌入式软件的可靠性测试关键技术,如软件可靠性测试操作剖面的构建技术、软件可靠性测试数据生成技术、软件可靠性测试数据分析与处理技术和软件可靠性测试充分性评估技术;5)若当前测试为软件可靠性增长测试,则定义失效和可靠性目标,失效和可靠性目标的定义可由测试方、开发方和用户共同完成;如果软件可靠性要求是根据不同故障等级的失效提出的,那么按照软件的故障等级对软件失效进行分类,根据不同故障等级的失效数据对当前软件进行可靠性评估;6)若当前测试为软件可靠性验证测试,则确定适用于非嵌入式软件的验证统计测试方案;软件可靠性验证测试中可以选用的统计方案包括:定时截尾方案、序贯方案和无失效运行方案;7)确定需采集的数据及采集要求,根据测试的要求,确定要采集的数据及记录方式。3.根据权利要求1所述的一种构建非嵌入式软件可靠性测试过程模型的方法,其特征在于,所述步骤2的软件可靠性测试大纲评审阶段包括:1)审查测试大纲内容的正确性、完整性和规范性;2)审查测试策略的正确性和合理性;3)审查测试过程中使用的评价准则和方法的正确性;4)审查测试进度的合理性;5)审查测试任务的结束条件的合理性和正确性。4.根据权利要求1所述的一种构建非嵌入式软件可靠性测试过程模型的方法,其特征在于,所述步骤3的软件可靠性测试设计和实现阶段包括:1)构造操作剖面,通过对现有的操作剖面构建方法进行对比分析,并结合非嵌入式软件,构建出适用于非嵌入式软件的操作剖面;2)搭建软件可靠性测试环境;3)生成测试用例。5.根据权利要求1所述的一种构建非嵌入式软件可靠性测试过程模型的方法,其特征在于,所述步骤4软件可靠性测试执行阶段包括:1)测试执行与收集失效数据,可靠性测试需要收集的数据包括软件的输入/输出数据、软件运行时间数据和可靠性失效数据;2)测试结果分析与处理,将发现的测试问题按问题的...

【专利技术属性】
技术研发人员:殷永峰张晓英武宁李秋儒
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1