您好, 访客   登录/注册

动车组软件测试技术研究

来源:用户上传      作者: 刘长远

  摘 要:软件测试是软件工程中的重要环节,是保证软件产品质量的重要过程和手段。该文阐述了软件测试技术原理,探讨了软件测试技术在动车组上的应用,定义动车组软件测试过程V模型,从软件测试工程化角度论述了动车组软件测试在软件全生命周期各阶段的任务。论证软件测试是动车组软件产品质量的重要保障。
  关键词:测试技术 动车组 软件生命周期
  中图分类号:U270.16 文献标识码:A 文章编号:1672-3791(2016)08(a)-0025-02
  随着动车组的广泛应用,动车组各系统软件内部逻辑错综复杂,运行环境动态变化,不同的软件失效机理具有不同的表现形式。据统计分析,软件错误的分布大致为:软件需求分析阶段占56%,软件设计阶段占27%,编码阶段占7%,其他占10%。软件错误在软件开发阶段的早期错误较多,软件错误贯穿了整个软件生命周期。软件测试是软件工程中的一个重要阶段,在软件投入运行前,对软件需求分析、架构设计和编码各阶段产品的最终验证,是为了保证软件开发产品的正确性、可靠性和一致性,因此软件测试技术日益受到重视[1]。
  1 动车组软件测试概述
  动车组软件由牵引系统、制动系统、网络控制系统、辅助系统、门控系统、空调系统、通信系统、信号系统组成,其中网络控制系统由中央控制单元软件,人机接口单元软件,网关等软件组成。由于动车组软件的应用场合和领域多种多样,要求的程度也不尽相同、不能一概而论,故该文仅针对软件测试过程,结合动车组软件测试过程的要求和特点探讨软件测试技术。
  2 动车组软件测试技术原理
  2.1 软件测试技术分类
  软件测试可通过下面几种不同的方法划分类别。
  (1)从被测试软件方面讲,讲软件测试被分为静态测试与动态测试。
  (2)从软件结构与算法方面讲,讲软件测试被分为白盒测试与黑盒测试。
  (3)从软件测试不同阶段方面讲,讲软件测试被分为单元测试、集成测试、系统测试、验收测试和回归测试。
  2.2 白盒测试
  白盒测试又称逻辑驱动测试,其原理是把程序看成装在一个透明的盒子里,程序的结构和处理过程完全可见,依据程序的内部逻辑测试软件程序,通过分析程序内部的逻辑与程序执行路线来设计测试用例的测试方法,检查软件程序中的每条通路是否都能按预定动作正确工作。
  白盒测试方法包括代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法等。
  2.3 黑盒测试
  黑盒测试又称数据驱动测试,其原理是把软件程序看成一个黑盒子,不考虑程序的内在结构和处理方法,主要针对软件界面、软件功能、外部数据库访问以及软件初始化等方面进行的测试。
  黑盒测试方法包括等价类划分、边界值分析、因果图、错误推测等。
  2.4 内存泄漏测试
  内存泄漏是一种典型的程序缺陷,它可导致应用程序不断消耗系统内存,使软件程序运行响应变慢,一些功能无法实现,甚至导致整个系统瘫痪等问题。在使用C/C++语言编写的程序中,内存泄漏是一个极其普遍的问题,在动车组嵌入式系统应用软件中,内存泄漏将很快导致系统瘫痪。通过内存泄漏测试释放不需要再使用的内存空间,检查“内存越界”现象是否存在。
  3 软件测试技术在动车组上的应用
  软件测试是软件质量保证的重要手段,贯穿整个软件生命周期的每个阶段。动车组网络控制系统应用软件测试过程采用V模型,依据不同的测试阶段分为单元测试、集成测试、系统测试、验收测试和回归测试。下面将以动车组网络控制系统为例阐述软件测试技术在动车组上的应用。
  3.1 单元测试
  单元测试又称模块测试,是针对软件设计的最小单位程序模块进行的正确性检验,其目的是验证每个程序单元能否正确实现详细设计规范的模块功能、性能、接口和设计约束等要求,发现各模块内部可能存在的各种错误。单元测试从程序内部结构出发来设计测试用例,而且可以多个模块或单元并行进行独立的测试。单元测试采用白盒测试方法。
  动车组单元测试主要内容有如下几项。
  (1)程序语法检查。
  (2)程序逻辑检查。
  (3)模块接口测试。
  (4)路径测试。
  (5)逻辑覆盖法。
  3.2 集成测试
  集成测试是按设计要求把通过单元测试的各个模块或单元组装在一起之后,进行集成测试。验证组成软件系统的各模块的接口和交互作用。
  3.3 系统测试
  系统测试是测试被开发软件的功能要求和非功能要求,在真实环境下对系统的正确性和完整性进行测试,验证系统各部分是否都能正常工作并完成任务。系统测试采用黑盒测试技术。动车组软件系统测试采用如下测试方法。
  (1)等价类划分。
  (2)边界值分析。
  (3)因果图。
  (4)错误推测。
  3.4 验收测试
  验收测试是验证系统是否满足合同规定的要求,通过验收测试,可以进一步发现软件中的错误,测试被开发软件的易用性、兼容性、安全性和文档资料审查验收。验收测试主要采用黑盒测试方法。
  3.5 回归测试
  回归测试是指软件系统被修改后再次进行的测试,如软件新增了某些功能后,可能会影响软件原来的功能和结构,使得以往可以正常工作的功能失效,因此为了保证对软件所做的修改没有引入新的错误而再次进行的测试。
  3.6 软件测试覆盖率
  软件测试覆盖率是用来度量软件测试的完整性程度,包括基于需求的测试覆盖和基于代码的测试覆盖。
  3.6.1 基于需求的测试覆盖
  需求测试覆盖率=Ts/RfT%
  其中,Ts为已实施测试用例覆盖的需求数;RfT为测试需求总数。
  3.6.2 基于代码的测试覆盖
  代码测试覆盖率=Te/Tlic%
  其中,Te为用代码、分支、路径、数据状态判定点表示的已执行代码数;Tlic为代码总数。
  4 结语
  该文论述了软件测试技术原理,以动车组网络控制系统应用软件为测试样例,全面阐述了软件全生命周期各阶段软件测试活动,动车组软件测试不同阶段采用多种测试技术,论证了软件测试技术是动车组软件产品质量的重要保障,可提高动车组软件的安全性、可靠性,对开展动车组软件测试工作进行了有益的探索。
  参考文献
  [1] 熊应高.软件测试技术[M].北京:北京航空航天大学出版社, 2009.
  [2] 陈明.软件测试[M].北京:机械工业出版社,2004.
  [3] 徐拥军,王炯,郝进.软件测试技术、方法和环境[M].北京:北京航空航天大学出版社,2012.
  [4] BRUCE ECKEL.Thinking in C++[M].Prentice Hall PTR,2000.
转载注明来源:https://www.xzbu.com/8/view-7734092.htm