本发明涉及机载软件测试,具体地,涉及一种软件代码迭代变更影响域量化分析方法及系统。
背景技术:
1、在装备软件研制过程中,功能实现以及变更迭代主要体现在软件。在软件迭代变更后,需要对变更后的软件开展测试以满足装备软件的高可靠性和高安全性要求。
2、如果对每次迭代变更后的软件开展全量测试,虽然能保证测试的充分性,但是会付出高昂的时间和人力成本;如果只针对修改部分开展测试,测试时间虽然得到缩短,但难以保证测试的充分性,容易出现软件问题。例如:某任务系统软件升级只更改了20行代码,修改代码时间为1个小时,整个软件全量测试需要2至3周。显然,全量测试的时间成本太高,不可行;只针对修改的20行代码开展测试,也无法保证测试的充分性。
3、为了兼顾测试的充分性和测试的成本,需要开展软件代码迭代变更影响域分析,确定此次修改代码影响了哪些功能逻辑,并依据分析的结果确定测试的范围。
4、目前的软件变更影响域分析手段主要依赖技术人员个人经验结合变更单开展,主观性较强,不同人员分析出的结果可能不一样;其次,装备软件代码量越来越大,甚至达到千万行规模,技术人员需要花费更多的时间梳理复杂的逻辑,分析的难度也越来越大,难以保证分析结果的可靠性;最后,依赖技术人员个人经验分析的方法属于定性分析,没有实现变更影响的定量分析。
5、综上,设计一种可重复的、可靠的、数据量化的软件代码迭代变更影响域量化分析方法十分必要。
技术实现思路
1、本发明解决的技术问题:
2、目前的变更影响域分析都是凭借技术人员个人经验人工开展,主观性较强,分析结果的充分性和可靠性难以保证。
3、如果只针对修改部分开展测试,测试时间虽然得到缩短,但难以保证测试的充分性,容易出现软件问题;如果全量测试,则付出测试成本太高。
4、本发明的目的:
5、本方法目的是解决变更影响域分析依赖技术人员个人经验的问题,提高分析的准确性、可靠性和分析速度。
6、本发明的技术方案:
7、一方面,本发明提出了一种软件代码迭代变更影响域量化分析方法。该方法包括以下步骤:
8、s1,获取变更前版本和变更后版本的软件代码的源文件;
9、s2,识别出变更后源文件中元素,并构建多层的代码耦合关系网络;
10、s3,基于代码变更影响范围、深度和时效,定义用于判断代码变更影响域的代码变更类型;
11、s4,利用变更比对分析工具对s1中输入的变更前版本和变更后版本的软件代码的源文件做变更比对,得到变更区域内容;
12、s5,标记变更区域内容的代码变更类型并归类形成代码变更类型参数列表,将代码变更类型参数列表中的n个参数作为代码耦合关系网络的n个起始节点;
13、s6,基于n个起始节点,向上或者向下追溯,得到多层的相关节点;
14、s7,去除各个相关节点中的重复节点,得到受软件代码变更影响的节点;
15、s8,度量受软件代码变更影响的各个节点的受影响量化信息;
16、s9,基于受影响量化信息,生成代码变更影响域分析报告。
17、另一方面,本发明提出了一种软件代码迭代变更影响域量化分析系统。该系统包括:配置管理库1、变更比对模块2、变更分类模块3、构建代码耦合关系网络模块4,其中:
18、配置管理库1,用于获取变更前版本和变更后版本的软件代码的源文件;
19、变更比对模块2,用于识别出变更后源文件中元素,并构建多层的代码耦合关系网络;基于代码变更影响范围、深度和时效,定义用于判断代码变更影响域的代码变更类型;利用变更比对分析工具对s1中输入的变更前版本和变更后版本的软件代码的源文件做变更比对,得到变更区域内容;
20、变更分类模块3,用于标记变更区域内容的代码变更类型并归类形成代码变更类型参数列表,将代码变更类型参数列表中的n个参数作为代码耦合关系网络的n个起始节点;
21、构建代码耦合关系网络模块4,用于基于n个起始节点,向上或者向下追溯,得到多层的相关节点;去除各个相关节点中的重复节点,得到受软件代码变更影响的节点;度量受软件代码变更影响的各个节点的受影响量化信息;基于受影响量化信息,生成代码变更影响域分析报告。
22、本发明的技术效果:
23、本方法通过分析代码的耦合关系网络,将代码模块之间的关系完整准确的展示出来,将隐含关系显性化,能够实现代码变更影响域分析的准确性和可靠性;通过将代码的变更归类映射到耦合关系网络,查询耦合关系网络中具有关联关系的节点,能够快速得到确定影响范围分析结果,提高影响域分析的速度和精度;通过对耦合关系网络中各个节点的度量,实现影响域分析结果从定性分析到定量分析。
24、本分析方法不依赖技术人员个人经验,不同人员分析出的结果都是统一的,是一种可重复的、可靠的、数据量化的方法。
25、本发明不仅可以短时间完成变更后的软件代码的测试,缩短工期,节约成本,而且可以充分测试,提高了测试的准确性。
1.一种软件代码迭代变更影响域量化分析方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,步骤s1包括以下子步骤:
3.根据权利要求1所述的方法,其特征在于,步骤s2包括以下子步骤:
4.根据权利要求1所述的方法,其特征在于,步骤s4包括以下子步骤:
5.根据权利要求1所述的方法,其特征在于,步骤s2包括以下子步骤:
6.根据权利要求1所述的方法,其特征在于,步骤s5包括以下子步骤:
7.根据权利要求1所述的方法,其特征在于,步骤s6包括以下子步骤:
8.根据权利要求1所述的方法,其特征在于,步骤s6包括以下子步骤:
9.根据权利要求1所述的方法,其特征在于,步骤s9包括:
10.一种软件代码迭代变更影响域量化分析系统,其特征在于,包括:配置管理库(1)、变更比对模块(2)、变更分类模块(3)、构建代码耦合关系网络模块(4),其中: