邱兰兰
关于软件自动化测试系统的研究
邱兰兰
广州广电运通金融电子股份有限公司,广东 广州 510000
随着社会的进步,计算机技术水平日益成熟,软件与硬件的发展也更加完善化。然而,大规模计算机软件的出现使得承载的工作量不断增加,使得软件开发在市场需求中所占的比重越来越大。自动化测试系统是软件产品研发的重要组成环节,在软件开发过程中进行相应的自动化测试,目的在于提高软件测试效率,完善软件测试系统和保证系统质量。因此,自动化测试系统作为软件测试的重要手段成为了重要的研究对象。在此对软件自动化测试系统进行了简要介绍,总结软件测试自动化的特点,分析不同环境下的主要测试技术,探索软件自动化测试系统的设计研究。
软件;自动化测试;系统
随着计算机水平的提高以及信息技术产业的飞速发展,计算机软件规模在不断扩大,对于软件的质量要求也随之加大,为保证软件工作的质量、提高软件自动化的可靠性,必须在软件开发中进行必要的软件测试,以便于发现和改正软件中的错误,避免潜在危险的出现。[1]自动化测试系统作为软件测试的重要手段在各行业领域内的需求和适应性都比较高,受到了广泛的关注,许多研究人员开始专注于对软件自动化测试系统进行研究。
可以注意到,尽管当前编码水平和软件技术发展迅猛,但是软件测试在软件开发周期中所占比例并没有因此而减小,反而有一定的上升。由此可见,研究和完善软件自动化测试系统对于企业效益对于社会发展兼具有重要的意义。
1.1 自动化测试流程
图1为软件自动化测试的大致流程。其中,执行测试负责保证整个系统根据给定要求完整运行,系统各成员元素在编译后进行迭代并连接系统,每一次迭代相对应的需要对增加的功能和之前测试过的所有用例进行回归测试,如此反复迭代完成自动化执行测试功能。[2]评估测试主要负责对测试结果进行评估和记录,通过评估测试给出的测试评估摘要便于对整个测试系统进行检测分析,因此,测试评估摘要本身必须具备一定的格式要求,必须完整提供测试结果以及主要的测试评估方法,以达到对测试对象与流程进行检测的目的。
图1 软件自动化测试的流程
1.2 自动化测试的作用
软件测试通常是分层进行的,存在不同的测试阶段,包括单元测试、集成测试、系统测试、回归测试和性能测试,不同阶段在测试中发挥着它们各自的优势。单元测试主要应用于开发阶段,是一个具有框架性的测试方法,由开发人员在编写代码前进行测试,只有在测试通过代码才可被接受,如此,在软件开发阶段可以保证代码的稳定性和高效性。集成测试主要对不同组件进行集中检验,有效处理了边缘合并后出现的错误。[3]系统测试主要对用户对系统的使用进行模拟,而且通常是在恒定的环境下进行,可以证明系统是否具备期望的功能。回归测试适用于自动化测试,通过迭代重复已存在的测试从而达到验证的效果。性能测试包括压力测试、负载测试、并发测试等,这一阶段的完成需要依靠自动化测试工具完成高密度的性能测试。
2.1 测试硬件系统
对于软件测试系统,存在一个测试总线,这个测试总线作为整个自动化测试系统的中枢神经发挥着至关重要的作用。测试总线主要完成对传送的指令以及测试数据进行控制,随着计算机技术的发展,测试总线亦在不断升级和完善,功能的全面化以及层次的多样化,使测试总线发展变得更具多元化。这些测试总线具体有GPIB、VXI、PXI、LXI,且各自发挥着各自的优势。GPIB可通过计算机实现各仪器和仪表的控制和操作;VXI传输效率高、功耗小、维修方便,具有较强的灵活性;PXI可支持多种语言;LXI作为新一代系统总线,兼具上述各总线的特点和优势。
对于测试硬件系统而言,除了测试总线占据了不可替代的地位,对于硬件设备也起着极为重要的作用。一方面,目前市场上多样化的硬件资源,使不同的测试可以根据需要选择恰当的硬件完成,因此,硬件的多样化可以实现测试的多元化。另一方面,硬件的接口标准化对于提高测试效率、信息共享率有着很大的激发作用,现今,通用性自动化测试系统具备了一些标准的硬件接口,给测试带来了极大的方便。
2.2 测试软件系统
实现测试软件的通用性是提高测试水平和效率的另一个重要手段,通过在信号和测试程序间建立标准接口,实现测试软件根据需要移植进入相应的硬件设备以及实现对信息的调动,从而使测试软件可以满足更多测试设备的需求,极大限度地发挥测试软件的作用。对于测试软件开发者为保证测试软件在不同环境下的适用性、满足多种需要的功能,通常需要进一步地做好对测试软件在各种语言环境和各操作系统下的检测工作。
3.1 主要功能
自动化测试系统为实现软件的自动化测试而开发和管理,必须具备满足既定的功能要求。这些自动化测试需要实现的基本功能有:(1)测试个案的生成,包含测试指令、测试输出以及标准输出等;(2)测试的控制与执行,包括测试对象的控制、单机与网络的多机运行;(3)测试结果与标准输出对比;(4)测试结果的记录、分析、评估报告;(5)总测试情况统计和报表、记录的生成。归纳起来,这些功能主要是对测试对象的自动化运行和控制以及自动生成准确、规范的测试报告。
3.2 测试系统软件开发
应用开发软件在整个测试系统结构中占据关键地位,通过这些应用开发软件工具实现仪器的信息传送、集成测量以及应用连接等。理想的应用开发环境应该具有高效率的编译性、集成性、灵活性等特点。
3.3 测试系统管理软件
自动化测试系统承担多种的测试任务,系统的一些功能实现与待测软件相关,另外的一些功能具有通用性。为了维护测试系统的持续平稳运行,减少维护的成本投入,提倡采用待测任务与系统任务分离的测试策略,以满足不同的测试需求。为了尽可能地提高开发效率,在自动化测试系统结构上采用测试管理软件,以减少通用操作的开发量,提高专有操作的开发量。
软件自动化测试系统以其较高的测试效率、测试速度,全面的回归测试等优势受到社会业界专业学者的广泛关注,亦将成为软件测试的发展趋势。软件自动化测试系统依靠日趋多样化的测试总线,配置通用的硬件与软件组合可大大满足测试的多样化,实现功能的全面化;通过执行迭代的回归测试与系统评估测试相结合,极大地保证了测试结果质量,提高了检测和管理的便捷性。
[1]杨巍.软件自动化测试系统的设计[J].科技传播,2014(6):234-235.
[2]黄茂生.软件自动化测试工具的评估与选择[J].电子测试,2007(12):62-66.
[3]王英龙,张伟,杨美红.软件测试技术[M].北京:清华大学出版社,2009.
The Study of Software Automation Test System
Qiu Lanlan
Guangzhou radio and television financial electronic Limited by Share Ltd, Guangzhou, Guangdong 510000
With the progress of society, the level of computer technology is becoming more and more mature, the development of software and hardware is more perfect. However, the emergence of large-scale computer software makes the load carrying capacity increased, making the software development in the market demand in the proportion of more and more. In order to improve the efficiency of software testing and improve software testing system and the assurance of quality system automatic test system is an important part of the software product development, in the software development process of automated testing. Therefore, as an important means of software testing, automated testing system has become an important research object. This paper briefly introduces the software automation testing system, summarizes the characteristics of the software test automation, analyzes the main testing technology under different environment, and explores the design of the software automation testing system.
software; Test automation; system
TP311.52
A
1009-6434(2016)6-0143-03