软件装备维护回归测验技术分析

论文价格:免费 论文用途:其他 编辑:lgg 点击次数:198
论文字数:39200 论文编号:sb201310221523248841 日期:2013-10-23 来源:硕博论文网

第一章 绪论


1.1 课题的研究背景
在信息技术快速发展的时代背景下,随着在军事领域中大批量的使用软件或密集型软件系统,这些软件组成的系统在武器系统中所处的地位、扮演的角色、承担的责任和发挥的作用不断地增加提高。例如区域综合电子信息系统、自动化机动指挥系统等密集型软件集中的武器装备,已经成为现代战争中施行高效控制和指挥参战部队和参战武器装备的重要方式,同样也是现代国防威慑力量的主要组成部分和重要体现。这些系统的主体就是计算机、网络和软件。这些系统中软件一旦出现问题,整个系统就会崩溃、瘫痪,其后果是灾难性的。研究提高软件装备可靠性、安全性和维修性的保障措施和软件故障分析测试手段,对部队战斗力的形成和提高,新装备武器效能的提高,加速装备维修现代化的进程,具有重要的军事应用价值和广泛的应用前景。但是,软件是一种具有高技术特点的逻辑产品,其保障的费用不但高并且难度也非常大。现阶段软件保障问题已经成为武器装备软件保障发展过程中的难点和重点关注方向。早在 80 年代就引起了西方一些发达国家的高度重视,尤其是美军,对该问题进行了大量系统、深入的理论和实践研究,一直处于领先地位,而军队对于军用软件装备的保障问题的研究就相对薄弱一些。软件危机作为软件行业甚至是全世界计算机界曾经的热门话题之一,软件行业的从业人员、学者和专家通过不懈的努力,经历了漫长的过程,去解决这个危机。按照目前的状况,人们现在已经慢慢了解清楚,并认识到它的本质,所谓软件危机仅仅是一种真实存在又不可避免的软件状况,即这种状况就是软件中存在的缺陷。就是因为软件中存在的这些缺陷,才导致了软件的开发在成本、进度和质量上远远超出预先的估计,造成了失控情况的发生。软件中存在缺陷是软件固有的属性之一,并且是不可避免的无法改变的事实。因为软件是经过软件开发人员人工编写出来的,只要是由人来完成的事情,就存在人的认知不可能是完全正确的因素,这件事情就不会是完美无瑕的。这就把如何使程序中存在缺陷的密度尽可能的降到最低,如何避免缺陷的产生和如何消除已经产生出的缺陷等问题,提到了解决这件事情的首位。部队所使用的软件装备维护保障工作对于速度有更高的要求,在战场环境下快速地开展纠错性维护工作是军队目前亟待研究的问题。本文的研究内容正是基于以上背景提出并开展相关研究的。
如同其他领域的测试工作一样,软件的测试工作也不可能做到尽善尽美,不可能找到所有软件中有可能发生的缺陷。由此可以得出,在软件开发实现的全寿命周期中,对软件进行测试不仅仅是开发人员的职责,维护人员的测试维护工作对于软件的质量保证也是一个重要环节。软件使用者在软件使用过程中是基于真实环境的,因此所得到的测试数据也是最为真实可靠的,这些真实可靠的数据反馈对于维护保障人员开展工作是大有裨益的。依据软件在使用过程中表现出的错误征兆定位相应的故障位置,就能准确的修改存在错误的代码,但是这种修改不是任意的,是必须符合软件规格说明的,在修正错误的同时不能影响其它正常模块的功能实现。这在软件测试中属于回归测试的范畴,本文的主要工作就是针对军用软件纠错性维护中快速回归测试展开的,文章中设计并实现了软件装备战场维护回归测试系统,通过一系列的优化设计使得回归测试时间开销显着降低,较好地满足了军用软件测试维护中对于快速、完整性和准确性的要求。


1.2 国内外研究现状
软件回归测试就是防止软件的被修改编码的部分对软件的其它的编码组成部门产生非预期的反面的影响,防止其原有的正常的功能产生偏差出现错误,确保软件的修改达到预期的期望的测试过程。软件的改变既可以是对发现的错误进行修改,也可以是在软件的集成和维护阶段中添加新的性能组件。当发现软件的缺陷进行修改时,假如没有完善的错误跟踪和管理体制,就会造成对这些修改缺陷的忽略;或者由于软件的具体研发人员对该缺陷理解不透彻,同样会造成只是修改了表面存在的缺陷,而没有修复其内在的缺陷本体,导致对该缺陷的修改失败。对软件缺陷的修改同样可能造成软件其他未修改的片段在运行是产生新的问题,导致软件正常的工作功能的运行错误。同时,由于对软件的修改需要在原程序中增加新编写的代码或者是删除原来编写的不必要的代码,但是就是因为这样的活动就很有可能在新编写加入的代码中混杂着新出现的错误,或者是因为加入(删除)编写的代码造成对原程序中的代码的非预期的影响。因此,一旦软件产生变化,本文为了确认软件的更改是否正确,是否对原有正常的功能造成影响,就必须对软件修改后的所有功能重新进行测试。


第二章 软件装备维护回归测试系统的设计


软件纠错性维护的提出,主要是针对软件生命周期中交付用户使用后,直到软件整个生命周期终结的过程。在这个过程期间,担负软件质量维护主要工作的是软件使用方的技术保障人员,必要的情况下还要和软件开发人员进行相互的沟通与协调。而这种纠错性维护的主要工作包括以下两个步骤:(1)、就是依据使用者提供的故障报告对软件故障进行准确定位,找出故障原因并作出相应修改;(2)、针对软件修改部分进行必要的回归测试,确认软件的修改不会对功能正常模块产生副作用。第二步骤就是本系统着重解决的问题。


2.1 回归测试的定义
在软件测试和维护过程中,必须随时修正及排除系统中发现的问题和缺陷。因为软件语句中的变量、代码、函数、过程或类等的个组成元素相互关联,缺一不可,所以修改后就必须确保软件中不会产生新产生的错误,就必须对修改后的软件进行测试,这样的测试就是回归测试。软件回归测试的最根本的目的就是寻找并发现因为修改原程序的代码而在程序中产生的新的错误。Hetzel 通过研究提出,在对软件维护的具体实例中,新产生的错误有 50%到 80%的发生概率,是在原程序修改源代码的过程中产生的。这个统计数字充分地、明确的并且强烈的证明了对软件充分进行回归测试的必要性和重要性。


第三章 测试信息管理模块的设计与实现.... 15
3.1 测试信息管理模块的功能...... 16
3.2 测试信息管理模块设计思路........ 17
3.3 测试信息管理模块的具体设计.... 22
3.4 本章小结.... 25
第四章 测试数据生成模块的设计与实现.... 26
4.1 测试数据生成模块的设计思路.... 26
4.2 测试数据生成技术的研究现状.... 26
4.3 遗传算法的特点.... 28
4.4 遗传算法生成测试数据.... 32
4.5 实验分析.... 41
4.6 本章小结.... 43
第五章 回归测试用例选择模块的设计与实现........ 44
5.1 回归测试用例选择模块的设计思路........ 44
5.2 控制依赖图...... 45
5.3 回归测试用例选择算法.... 47
5.4 基于代价分析的回归用例选择.... 51
5.5 实验分析.... 53
5.6 本章小结.... 54


结论


本文的主要工作是针对软件纠错后进行的回归测试展开研究,目的在于提高回归测试的效率,确保软件纠错性维护的有效性、正确性和完整性,最终达到提高武器软件装备可靠性的要求。利用遗传算法的寻优优势针对修改后程序生成测试数据,从而帮助维护人员更好的设计测试用例指导回归测试工作;针对已有的测试用例集合,采用安全回归测试用例选择算法结合基于代价的估算筛选出需要重测的用例。本文围绕某 X 装备指控软件的纠错性维护系统开展了设计与实现工作。本文主要的工作有:
(1)针对软件装备战场维护的要求,研究了快速测试数据生成技术,辅助测试维护人员完成测试用例的设计,开展回归测试,从而保证了软件修改的可靠性。
(2)结合基于用例代价分析的估算,使用安全测试用例选择算法对已有用例集进行有重点的选择,得到在战场环境下最需要优先测试的回归用例集。
(3)设计构建了测试信息管理系统,选取重要信息进行集中管理,解决了战场恶劣环境下测试信息可靠性以及对于测试工作快速开展的问题。
该系统在 X 型武器机动指挥控制软件上进行了试用,并有效地发挥了其设计的功效。为更广泛地开展军队软件装备的维护保障做了尝试性研究工作,对今后类似工作的开展起到了重要的先导作用。


参考文献
[1] P.A Brown,D and Hoffman.The application of http://sblunwen.com/rjyl/ module regression testing atTRIUMF[J].Nuclear Instruments and Methods in physics Research,SectionA,A293,1990,1(2):337-381
[2] T.Dogsa, I.Rozman.CAMOTE.Computer aided module testing and design enviorment[C].Proceeding of the Conference on Software Maintenance.Los Alamitos,CA,1998,404-408
[3] R.Lewis, D.W.Beck, J.Hartmann.Assay.A tool to support regression testing, ESEC’89,2nd[M]. European Software Quality Conference.Springer –Verlag,1989,487-496
[4] 吴晓周.软件测试综述[J],软件导刊,2009,8(5):5-6
[5] A.B.Taha,S.M.Thebaut,S.S Liu.An approach to software fault localization and revalidationbased on incremental dataflow analysis[C].Proceeding of the 13th Annual InternationalComputer Software and Applications Conference .Orlando,Florida,1989,527-534
[6] 顾海生,卢炎生.面向软件测试的研究进展[J].计算机科学,2008,35(9):266-277
[7] G.Rothermel,M.J.Harrold,J.Dedhia.Regression test selection for C++ software Journal ofSoftware Testing[J].Verication and Reliability,2000,10(6):77-109
[8] J.Bible,G.Rothermel,D.Rosenblum.A comparative study of coarse-and fine-grained saferegression test selection[J].ACM Transactions on Software Engineering and Methodology,2001,10(2):149-183
[9] 朱少民.软件测试方法和技术[M].北京:清华大学出版社,2005,2
[10] Ron Patton.软件测试(第二版)[M].北京:机械工业出版社,2006,4-5


QQ 1429724474 电话 18964107217