薛楠 徐翔 闫锐
摘 要:随着科技的不断进步和发展,现代的发控系统趋于复杂化和软件化,软件质量对发动机的性能和可靠性产生决定性的影响,因此,着眼于提高测试效率和质量必须选取合适的软件测试模型。文章对传统的V模型进行分析,然后将敏捷方法、测试驱动、需求驱动、测试复用的思想融入V模型中,改进后的测试模型能够运用于发控系统的全寿命周期,理顺测试过程,显著提高软件测试水平。
关键词:V模型;敏捷方法;测试驱动;需求驱动;测试复用
随着科技的进步,现代发控系统日新月异,发控系统的功能实现越来越依赖软件。有效保证软件的质量和可靠性是发控系统能力提升的关键。从长期总结的软件工程经验来看,软件测试是软件质量保证的关键途径,而合适的软件测试模型能够有效指导软件测试工作的开展。发控系统软件具有安全关键等级高、迭代频繁、逻辑复杂的特点,传统的V测试模型具备的缺点导致其不适合指导目前环境下的发控系统测试,为了更好地利用V模型指导测试工作,本文通过对V测试模型进行研究,结合敏捷方法对其进行强化,同时融入测试驱动、需求驱动、测试复用的思想,期望在尽早尽快发现缺陷的同时提高测试效率。
1 敏捷方法原则
敏捷方法是为了应对需求的不断变化、软件架构的不断重构而产生的一种新的开发模式。著名的敏捷宣言强调了敏捷方法的4个核心价值:个人和互动高于流程和工具,工作软件高于理解文档,客户协作高于合同协商,变化响应高于计划遵循[1]。敏捷方法同样适用于快速迭代的软件测试过程中,与传统的测试不同,敏捷方法测试并不是一个被分割的过程,相反,它与整个开发过程中交织在一起,在每个开发过程的时间点上都存在对应的测试活动,不断拥抱变化,改进测试过程。针对快速迭代的发控系统测试项目,基于敏捷方法的测试模型更加适用。
2 V测试模型特点
V测试模型[2]将软件开发和测试过程由上到下、从左到右分階段进行罗列,如图1所示。将软件的开发过程描述为:用户需求→需求分析和系统设计→概要设计→详细设计→编码;将软件的测试过程描述为:单元测试→集成测试→系统测试→验收测试,每一种开发阶段均存在一种测试阶段与之对应[3]。V测试模型存在明显的局限:(1)测试活动位于开发活动的下游,作为软件开发活动之后的一个阶段,忽视对需求和系统设计的验证,导致需求和设计上的错误往往最后发现,缺陷修复的成本高昂。(2)开发活动和测试活动缺少交流和沟通,完全由开发驱动测试,测试的参与度弱。(3)对于快速迭代的项目缺少有效的测试方法,难以同时兼顾测试质量和效率。
3 基于敏捷方法的V测试模型研究和改进
针对典型的发控系统测试过程的梳理和分析,结合传统V模型的特点,融合敏捷方法的思维,将V模型进行改进和强化,既保留V模型的特点和优点,又弥补其不足。在改进V模型的过程中遵循以下原则:(1)软件需求和系统设计问题应该尽早暴露;(2)开发和测试过程联系密切,不可分割;(3)适应快速迭代的开发过程,同时不断累积测试成果。根据以上3个原则,设计了适合发控系统的新型V测试模型,如图2所示。
改进后的新型V模型具备如下特点:
(1)软件的开发过程和测试活动并行开展,将测试活动完全独立,结合敏捷方法,及时响应、跟踪事件,完全实现了测试和开发的同步测试活动伴随发控系统的整个生命周期[4],使得测试活动不单纯作为开发活动的后续阶段,在开发人员进行设计的过程中,针对文档进行测试设计,可以站在用户角度集合各个发控系统的特点设计针对性、鲁棒性、可靠性测试用例,便于挖掘更深层次缺陷。
(2)充分发挥测试先行的优势,从可行性分析阶段开始部署测试,测试不仅面向源代码,对于每一项交付物均进行测试,在验收测试设计、系统测试设计、集成测试设计、详细测试设计的开展过程中针对文档进行静态测试,从软件需求和设计逻辑出发,挖掘软件需求和系统设计的问题,尽早发现系统设计的不足,降低后期的修复成本。
(3)突出测试驱动开发的思想,保持源代码时刻处于可控和高质量状态,单元测试用例根据用户需求进行编写,开发人员完成一个模块的设计后即可进行单元测试,保证一旦进行模块重构必然伴随测试活动的进行,源代码进行修改后,通过测试手段进行验证,尽早发现详细设计和概要设计的不足,提高测试的质量和效率。
(4)增加测试错误修复回溯的方法,将测试执行结果提交给开发人员,针对错误进行修复后,重新修改开发设计和测试设计,并重新执行相关用例,完成因软件变更带来的影响前一阶段设计的重新验证,保证前一阶段的问题不遗留到下一阶段结局,提高测试充分性。
(5)体现测试复用的原则,处于各阶段测试设计过程中先比较项目差异,复用有效的测试资源,若存在可利用的测试设计,可以加以补充完善,若不存在可利用的测试设计,则需要重新进行测试设计,最终将本次测试设计的结果放入可复用的测试设计/方法/用例集库中。测试人员需要时刻维护测试用例追踪矩阵,明确需求和用例的追踪关系,提高测试覆盖率。
(6)形成整体测试的概念,传统的V模型将测试各个阶段划分为多个带有固定边界的阶段,导致各个测试阶段的设计过程比较封闭,测试设计不够全面,相邻的两个测试过程中间存在真空地带,而改进后的V模型可以通过迭代和修改的方式,越界获取进行测试设计所需要的设计,完善测试用例的设计,进一步保证软件的充分性和可靠性[5]。
4 结语
发控系统软件化程度越来越高,选择合适的软件测试模型能够有效提高测试效率,提升产品质量,保证其可靠性。传统V测试模型随着时代的发展暴露的缺点使其不再适合发控系统的测试,本文提出了一种基于敏捷方法的软件V测试模型,能够对发控系统进行全面、系统的测试,对于提高软件测试效率、有效性和充分性,形成测试能力积累大有裨益。该测试模型经过部分项目的试用证明其合理性,以后将在以后的项目中被大量运用,逐步完善成为更贴近实际更有效的测试模型。
[参考文献]
[1]吴洁.敏捷测试成熟度模型集成框架研究[J].数字技术与应用,2018(5):90-91.
[2]李炜,陈瑛.一种有效的软件测试模型[J].计算机工程与应用,2004(10):114-117.
[3]朱少民.软件测试方法和技术[M].北京:清华大学出版社,2010.
[4]朱蕾.装备软件生命周期模型改进研究[D].天津:天津大学,2017.
[5]杨丽红.软件测试与可靠性研究[D].成都:四川大学,2006.