发明内容
本发明要解决的技术问题是如何使得验证充分性能够被评估和保证,且使得其不依赖个人能力,从而提高验证质量和效率。
为了解决这一技术问题,本发明提供了一种星载姿轨控制导与导航软件的测试方法,包括:
测试设计过程,具体包括:
S0:利用失效模式库完善测试用例库,使得测试用例库覆盖已知所有的失效模式;S1:对待测的测试项的模块进行关键程度划分,并对各测试项进行优先等级的划分;S2:根据各测试项的优先等级,确定测试用例库中的测试用例的测试优先级;S3:根据所述测试优先级情况和测试需求,选择本次测试的用例集合;
测试执行过程,具体包括:
S4:根据各模块的关键程度对各模块进行静态测试;并且根据测试优先级实施用例集合中的测试用例,进而实现动态测试;
在测试执行过程之中和/或之后,还包括对静态测试和动态测试进行充分性评价的过程。
可选的,在所述步骤S1中,划分模块的关键程度和测试项的优先等级的过程具体包括:
S11:对各模块的千行代码故障率进行排序,通过以下公式计算关键程度指数,从而得到模块的关键程度:
关键程度指数=[(模块行数/1000)*程序错误个数+1]*功能关键程序指数;
其中,所述功能关键程度指数依据功能预先设置;
S12:计算各测试项中模块的平均关键程度,进而据此进行各测试项优先级的划分。
可选的,对静态测试和动态测试进行充分性评价的过程中,包括:
若软件的语言采用Ada语言,则采用Ada语言的静态验证充分性检查单对项目组的静态测试工作进行检查;
若软件的语言采用1750语言,则采用1750语言的静态验证充分性检查单对项目组的静态测试工作进行检查;
采用预先设计的动态验证充分性检查单对动态验证工作进行检查和评价。
可选的,所述动态验证充分性检查单依据所述失效模式库、测试用例库的内容以及经验数据形成。
可选的,所述静态验证充分性检查单和动态验证充分性检查单分别包含了对静态测试和动态测试过程中需要覆盖的测试点、具体测试项对应的要求的规定。
可选的,在测试设计过程中,依据预设的姿轨控制导与导航软件验证的可靠性、安全性验证规范确定测试相关内容,包括测试的静态审查要点、相关测试项的动态测试平台的选择、动态测试的方法和/或测试要点指导内容。
可选的,在测试执行过程中,依据预设的姿轨控制导与导航软件验证的故障注入规范实现测试用例的动态执行。
本发明认为,有必要研究如何利用已有的经验数据,形成验证过程各环节的技术支撑和指导,研究有效的评价方法,使得验证充分性能够被评估和保证,使得充分性的保证不依赖个人能力,提高验证质量。
本发明实现了对该类软件从源头保障其验证行为的完备性,辅助以完整的失效模式库、测试用例库、可靠性和安全性验证规范以保证验证工作的效率和质量,采用故障注入规范来指导动态测试,实现了带反馈的规范执行效果的评估准则,起到规范验证行为,保证其充分性的作用。
具体实施方式
以下将结合图1对本发明提供的星载姿轨控制导与导航软件的测试方法进行详细的描述,其为本发明可选的实施例,可以认为,本领域技术人员在不改变本发明精神和内容的范围内,能够对其进行修改和润色。
首先,针对本发明的研究背景和基本思路进行阐述:
本发明提供了一套针对卫星星载姿轨控制导与导航软件可靠性安全性方面的验证充分性保证和评价的方法,首先对卫星星载姿轨控制导与导航软件的验证过程的全过程开展了研究,本着将充分性保证工作提前的原则,采用过程保证技术,从验证过程的起始处开始采用系列规范和数据库资源指导和支撑验证工作,使得验证行为规范,验证人员能够获取足够的资源以保证验证充分性;其中本专利涉及的代码审查和测试用例的设计采用安全关键模块的选择技术以及测试用例的充分性保证技术来确定测试内容的优先级,使得测试中安全关键模块能够得到足够充分的测试,提高测试效率和质量;最后采用验证充分性评价技术对验证工作的充分性进行评价,该评价工作主要分布在静态测试和动态测试两个阶段,采用检查单的方式进行,起到提醒审查人员,避免遗漏相关检查项的作用,以最终保证测试的充分性。
可见,本发明解决了卫星星载姿轨控制导与导航软件验证充分性保证的问题,并有机的将经验数据进行了总结和应用,减少对个人能力的依赖,提高测试的充分性、提高测试验证效率。
以下具体对本发明的可选方案进行阐述:
本发明提供了一种星载姿轨控制导与导航软件的测试方法,包括:
测试设计过程,具体包括:
S0:利用失效模式库完善测试用例库,使得测试用例库覆盖已知所有的失效模式;采用本专业失效模式库完善测试用例库,使得用例库覆盖该专业所有的已知失效模式;
S1:对待测的测试项的模块进行关键程度划分,并对各测试项进行优先等级的划分;
在本发明可选的实施例中,在所述步骤S1中,划分模块的关键程度和测试项的优先等级的过程具体包括:
S11:对各模块的千行代码故障率进行排序,通过以下公式计算关键程度指数,从而得到模块的关键程度:
关键程度指数=[(模块行数/1000)*程序错误个数+1]*功能关键程序指数;
其中,所述功能关键程度指数依据功能预先设置;
S12:计算各测试项中模块的平均关键程度,进而据此进行各测试项优先级的划分。
S2:根据各测试项的优先等级,确定测试用例库中的测试用例的测试优先级;
S3:根据所述测试优先级情况和测试需求,选择本次测试的用例集合;
测试执行过程,具体包括:
S4:根据各模块的关键程度对各模块进行静态测试;并且根据测试优先级实施用例集合中的测试用例,进而实现动态测试;
在测试执行过程之中和/或之后,还包括对静态测试和动态测试进行充分性评价的过程。
对静态测试和动态测试进行充分性评价的过程中,包括:
若软件的语言采用Ada语言,则采用Ada语言的静态验证充分性检查单对项目组的静态测试工作进行检查;若软件的语言采用1750语言,则采用1750语言的静态验证充分性检查单对项目组的静态测试工作进行检查;采用预先设计的动态验证充分性检查单对动态验证工作进行检查和评价。
其中,所述动态验证充分性检查单依据所述失效模式库、测试用例库的内容以及经验数据形成。所述静态验证充分性检查单和动态验证充分性检查单分别包含了对静态测试和动态测试过程中需要覆盖的测试点、具体测试项对应的要求的规定。
在本发明可选的实施例中,在测试设计过程中,依据预设的姿轨控制导与导航软件验证的可靠性、安全性验证规范确定测试相关内容,包括测试的静态审查要点、相关测试项的动态测试平台的选择、动态测试的方法和/或测试要点指导内容。在测试执行过程中,依据预设的姿轨控制导与导航软件验证的故障注入规范实现测试用例的动态执行。
总结以上过程,可以看到,本发明可选方案中的方法分别采用了验证过程保证技术、安全关键模块选择技术、测试用例的充分性保证技术、验证充分性评价准则。
验证过程保证技术,首先将涉及的测试过程划分为测试设计过程和测试执行过程,分别研究过程保证的条件,将保证行为尽量提前,其中测试设计过程保证规范包含:姿轨控与制导导航软件可靠性验证规范、姿轨控与制导导航软件安全性验证规范、姿轨控与制导导航软件失效模式库、姿轨控与制导导航软件测试用例库等规范和资源来保证测试设计过程的测试充分性,测试执行过程保证采用卫星姿轨控/制导导航系统软件验证的故障注入规范来指导测试用例的动态执行过程,测试平台的选择,最后采用卫星姿轨控/制导导航系统软件验证充分性评价规范来评价测试过程的充分性。
过程保证技术的应用具有以下特点:
1)采用姿轨控与制导导航软件可靠性、安全性验证规范来规范整个验证过程,规范中主要规定了该类软件静态审查要点、相关测试项的动态测试平台的选择指导、动态测试方法和测试要点指导内容;
2)采用姿轨控与制导导航软件失效模式库来支撑测试人员对本专业各类型失效模式的验证,提高失效模式的验证充分性;
3)采用姿轨控与制导导航软件测试用例库来支撑测试人员生成相应项目的测试用例集合,提供有效的测试方法、步骤和输入的参考,提高验证效率;
4)采用卫星姿轨控/制导导航系统软件验证的故障注入规范来指导测试人员对动态测试平台的使用,包括全数字仿真测试平台和半实物实时仿真测试平台选择,给出平台使用要点、故障注入点、检测手段,指导测试人员对测试平台的使用;
5)采用卫星姿轨控/制导导航系统软件验证充分性评价规范对验证工作内容进行充分性检查和评价,做最后的查缺补漏,以更完整的保证本专业软件的验证充分性。
安全关键模块选择技术,首先要形成面向姿轨控制导与导航软件基本模块集合,并按照测试项对模块进行整理归类,形成各测试项子集;其次根据模块的千行代码缺陷率(经验数据)、功能关键程度指数计算得出模块的关键程度;根据测试项所有模块的平均关键程度计算测试项的优先级;然后根据模块的关键程度开展静态测试,其中关键程度影响了静态代码审查的内容;根据测试项的优先级程度开展动态测试设计工作以及动态测试工作;本安全关键模块选择技术使得测试设计和测试执行的目的性增强,避免在无效测试中浪费过多资源,提高测试效率和质量。
安全关键模块选择技术包括以下过程:
1)首先对姿轨控与制导导航系统软件的所有模块进行历史数据分析,对模块千行代码故障率进行排序;
2)然后根据可靠性、安全性关键程度给各个模块进行加权计算,得出关键模块,设定关键模块的验证优先级和验证充分性要求,加权模型:关键程度指数=[(模块行数/1000)*程序错误个数+1]*功能关键程度指数,关键程度由1-5逐渐增高;
3)测试优先级的的生成流程如图1的[2]所示:根据对上述被测模块集合的功能关键程度整理以及模块关键程度的计算,分别开展静态的和动态的优先级确定,并开展相应的测试工作,每次任务的执行均对该集合进行更新和维护,使得数据的客观性增强,用以对测试充分性进行保障。
测试用例的充分性保证技术,验证充分性保证的一个重要因素即动态测试用例的充分性,首先采用本专业失效模式数据库完善用例数据库,使得用例库覆盖该专业所有的已知失效模式;其次采用安全关键模块的选择得出的测试项优先级情况给用例数据库中的用例制定测试优先级,积累形成测试用例数据库信息;最后根据具体被测试的软件情况以及资源情况形成具体项目的测试用例集合。本项技术主要利用经验数据不断积累完善测试用例数据库资源,利用安全关键模块选择技术确定用例的测试优先级,目的在于提高测试用例的针对性,减少资源浪费,提高测试效率。
测试用例的充分性保证技术具有如下特点:
1)星载姿轨控制导与导航软件测试用例库是积累了以往所有该专业测试项目的测试用例形成,作为基础资源进行共享使用;
2)然后结合上述的失效模式库和安全关键模块选择技术、优先级确定流程,生成卫星姿轨控/制导导航系统软件验证用例库,并确定其测试的关键等级和优先级等级,测试人员根据测试资源的情况以及选择用例库中的用例的优先级情况,选择生成本次测试的用例集合,并依据优先级要求开展测试工作。
所述的验证充分性评价技术,验证充分性评价具有一定的主观性,并且对评价人员的能力依赖性较大,完全依赖相关人员对验证充分性进行评价和把关容易造成评价不客观、不充分的问题,不利于验证充分性的保证。本技术首先根据相关专业软件语言测试经验数据归纳总结了Ada语言静态验证充分性检查单、1750汇编语言静态验证充分性检查单,然后根据卫星姿轨控/制导导航系统软件专业失效模式、动态测试用例库内容以及相关测试方法、手段等经验数据形成动态验证充分性检查单,检查单分别对静态验证和动态验证过程中需要覆盖的测试点、具体测试项要求进行了规定,用以指导审核人员对测试输出的工作产品进行充分性检查评价,也可以用于测试人员进行自评价,查缺补漏,最终达到提高软件验证充分性的目的。
验证充分性评价技术的应用具体为:
主要从测试覆盖的失效模式角度来由不同的验证人员分别审查静态代码审查时对静态失效的覆盖情况,以及测试用例对动态失效模式的覆盖情况、优先级的分析的情况,以使评价的精准度有所提高,采用以下检查步骤:
1)基于目前星载姿轨控制导与导航软件采用的Ada语言软件采用Ada语言静态验证充分性检查单对项目组的静态验证工作进行检查;
2)基于目前星载姿轨控制导与导航软件采用的1750语言软件采用1750语言静态验证充分性检查单对项目组的静态验证工作进行检查;
3)采用卫星姿轨控/制导导航系统软件动态验证充分性检查单对动态验证工作进行充分性检查与评价。
综上所述,本发明认为,有必要研究如何利用已有的经验数据,形成验证过程各环节的技术支撑和指导,研究有效的评价方法,使得验证充分性能够被评估和保证,使得充分性的保证不依赖个人能力,提高验证质量。
本发明实现了对该类软件从源头保障其验证行为的完备性,辅助以完整的失效模式库、测试用例库、可靠性和安全性验证规范以保证验证工作的效率和质量,采用故障注入规范来指导动态测试,实现了带反馈的规范执行效果的评估准则,起到规范验证行为,保证其充分性的作用。