APP下载

软件测试发展趋势研究

2019-12-13陈建锋

无线互联科技 2019年19期
关键词:测试工具软件测试发展趋势

陈建锋

摘   要:随着计算机技术的发展以及软件技术的应用,软件测试的方法和工具越来越丰富,特别是云测试的出现,使软件测试发生了很大的变革。文章针对国内外软件测试的发展状况、软件测试工具以及软件测试的未来发展趋势等进行了详细综述,为软件测试相关人员提供参考。

关键词:软件测试;测试工具;云测试;发展趋势

1    软件测试介绍

软件测试的定义,不同学者有不同的观点,电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)在1983年曾经定义:软件测试就是使用人工手段或某种自动化的手段来运行或对某个系统过程的测定,检验它能否满足特定、规定的需求或是弄清未来预期的结果与实际现状结果之间的异同。软件测试是保证软件质量、提高系统软件可靠性的有效途径,软件测试的质量与软件测试人员的技能、经验以及对被测软件的理解密切相关。软件测试人员要求了解国内外被测技术发展历程,掌握目前发展动态,运用新技术、新方法、新工具来满足不断提高的软件行业要求,有效提高软件测试的效率和成果质量,确保软件测试的质量[1]。通过软件测试,人们可以将出错的概率大大降低,提高軟件运行的可靠性,增加人们对软件产品的信心。

2    国外软件测试技术发展现状

在国际上, 很多发达国家一开始就非常重视软件测试,例如在IBM,Microsoft等软件公司开发大型系统时,很多重要软件项目的开发、测试人员比例能够达到1∶2甚至1∶4。在软件测试技术方面,自动化测试系统(Automatic Test System,ATS)正朝着通用化、标准化、网络化和智能化的方向迈进[2]。自从20世纪90年代以来,自动化软件测试系统高度重视以综合通用的工具,如ATS来代替单独某一系列,并且采用共同的硬件以及平台实现资源共享。

在我国,由于大多数企业早期对软件测试不够重视,很多企业没有专业软件测试人员,软件测试基本由编程人员完成,软件测试其实就是完成程序员的代码调试,所以测试技术起步较晚,和国外发达国家有很大差距。随着我国软件广泛应用到各行各业,软件成为人们日常生活必不可少的一部分,软件存在缺陷往往对科研和生活带来重大影响。例如,在2003年5月的某一天,俄罗斯一次载人飞船的飞行试验,一个小小船导航软件中的设计错误,导致“联盟—TMA1”载人飞船在返回途中竟然偏离了原来特定降落目标地点约460 km。在我国,一个售票终端设备软件问题,导致南京地铁系统全线售检票系统瘫痪,有大约一万的乘客因售检票系统瘫痪受到影响。因此,人们越来越重视软件质量问题,软件测试的重要性也被绝大多数企业认可,软件测试的方式随之丰富起来,测试工具逐步完善。

3    常见测试种类以其测试工具

软件测试的种类很多,从不同角度划分有不同的种类,总得来说,从测试级别来划分有:需求分析测试、单元模块测试、系统集成测试、软件接口测试、系统性能测试、软件系统测试、软件验收的环境测试。从软件的测试方法来划分有:动态软件测试、静态软件测试,黑盒软件测试、白盒软件测试、灰盒软件测试,冒烟软件测试。软件测试贯穿整个软件开发过程,从软件客户需求调研开始,一直到软件部署的环境测试,软件测试涉及软件开发的方方面面。下面重点介绍软件测试常见的方法以及它们对应的测试工具。

3.1  白盒测试及其测试工具

白盒测试是对源程序的分析,基于逻辑驱动或代码的测试。白盒测试指的打开上面的盒子,研究源代码及其输出结果。白盒测试工具代表有IBM Rational公司的工具Rational Purify和Compuware公司的自动白盒测试工具DevPartner。

3.2  静态测试及其测试工具

静态类型的测试工具有Fail Safe测试工具(RA.TIONALPR公司),SQA ROBOT测试工具(Macabe公司)以及Logiscope测试工具(Tele Logic公司),静态分析工具有McCabe & McCabe Visual Quality ToolSet分析工具(Associates公司),LogiScope分析工具(ViewLog公司),TestWork/Advisor分析工具(Software Research公司),Discover分析工具(Software Emancipation公司),国内有DTS缺陷测试工具(北京邮电大学)等。其中,ViewLog公司开发的Logiscope最为典型杰出,它的辅助工具能支持所有的评审过程。

3.3  动态测试及其测试工具

动态测试方法是指通过程序运行,对比运行结果和预期结果,分析程序的正确性和健壮性等性能。常用的动态测试工具有Compuware公司的Dev Partner,Rational公司的Purify以及Numega的Bounce Checker等,动态测试主要用于功能确认、接口测试、覆盖率分析、性能分析、内存分析等。

3.4  黑盒测试及其测试工具

黑盒测试不关心软件的内部结构,把软件整体看作一个黑盒子,只看重输入和输出数据是否符合预期。黑盒测试是软件测试最常见的方式,黑盒场景的测试工具有 Rational公司的TeamTest和Compuware公司的QACenter。黑盒测试的代表工具是QACenter, 它可以创建一个快速、可重用的测试过程。

3.5  灰盒测试及其测试工具

灰盒测试是介于白盒测试与黑盒测试之间的一种测试,吸取黑盒测试和白盒测试的优点不像白盒测试只关注软件代码的内部细节,更关注业务的内部逻辑。通常用一些特定的事情、特殊的标志来判断软件内部的结构状态。灰盒测试大多数用在软件测试的集成阶段,是白盒测试和黑盒测试的有效补充。同时,灰盒测试的工具也包含在白盒测试工具和黑盒测试工具中。

3.6  冒烟测试及其测试工具

冒烟测试(smoke testing)据说最早起源于微软,冒烟测试指开发人员在自己最初成型的软件上执行简单的项目测试,确定程序代码是否正确无误。冒烟测试顾名思义:测试时间短,一会功夫即可完成测试。冒烟测试过程同时也是对测试用例进行评估的过程,要充分利用这一阶段,对前期形成的测试案例进行检验,及时对案例进行补充、删减和修订,使案例更贴合实际、更具有可执行性[3]。冒烟测试是软件测试确定以及软件缺陷的最经济的方法,通常是软件代码开发后对软件功能完整性的测试。

除此之外,还有性能测试及其测试工具:HP Mercury公司的LoadRunner,Micro Focus公司的QTP,Apache公司的Jmeter以及开源测试工具SoapUI。自动化测试框架工具:Nokia Siemens Networks公司的Robot Framework和网页模式的自动化功能测试工具Watir等。

4    软件测试未来发展趋势

4.1  大数据测试

随着信息化程度提高,人们日常积累的数据越来越大。大数据测试指对高速产生的海量信息数据进行测试,在测试过程中,测试人员对服务器集群以及其支持类型的组件,要验证TB级数据,测试重点是性能和功能。此外,还有一个非常重要的关注点是数据的质量,在开始阶段需要对数据质量进行验证,特点在于重点关注数据质量的适用性、有效性、完整性等方面。

4.2  软件测试自动化

传统人工测试过程需要花费很长的时间,投入很多的成本,很容易受到人为操作失误的影响,很难获得良好的效果[4]。另外,现在社会变化迅速、节奏快,要想在激烈的市场竞争中取得优势,并且保证产品开发能高质量快速完成,自动化测试是必然的选择。同时,自动化测试有新的特点和趋势,不是简单用代码或测试工具代替人工测试,不同产品有不同的自动化测试技术,不同业务需求对应不同的测试方案。因此,自动化测试可读性更好,成本更低,且具备高效率和高覆盖率。

4.3  云技术降低软件测试成本

与传统软件测试的环境相比,基于云计算测试平台和 计算技术的云测试具有效率高、通用性强、处理能力强等诸多优势,是未来的发展的主要趋势。云测试平台支持基于SDN技术的虚拟网络,实现了第2层和第3层网络的完全真实模拟以及不同虚拟网络在第2层网络下的完全隔离[5]。这种采用虚拟化技术,可以随着软件测试任务以及软件测试环境的变化,快速改变当前软件系统组织模式及其硬件与软件结构、网络拓扑结构,从而很好地提高测试效率,便于软件测试环境管理。云技术的发展,可推动软件测试成本的大幅降低,完善软件测试缺陷。

5    结语

随着软件测试技术的不断发展以及测试工具的不斷完善,软件测试变得更加专业化和精细化,不同的软件架构体系选择不同测试方式及其测试工具。总的来说,软件测试低成本化、软件测试高效率化、软件测试自动化、软件测试环境通用化是软件测试的未来趋势。

[参考文献]

[1]肖汉.软件工程理论与实践[M].北京:科学出版社,2006.

[2]易敏捷.软件测试国内外发展现状及趋势研究[J].电脑知识与技术,2013(26):6020-6022.

[3]闫峰,宋向晖.冒烟测试浅谈[J].信息技术与信息化,2018(10):158-159.

[4]杨丽波.软件自动化测试方法的发展现状分析[J].无线互联科技,2017(4):49-50.

[5]史鹏洲.基于SDN的负载均衡与带宽控制技术的研究[D].石家庄:河北科技大学,2019.

Abstract:With the development of computer, the application of software technology, software testing methods and tools more and more rich, especially the emergence of cloud testing, software testing has had the fundamental change. In this paper, the situation of software testing, test tools, and the trend of the development of software testing and so on were reviewed in detail, to provide reference for software test related personnel.

Key words:software testing; testing tools; cloud testing; development trend

猜你喜欢

测试工具软件测试发展趋势
基于OBE的软件测试课程教学改革探索
Http并发连接测试工具
EXCEL和VBA实现软件测试记录管理
关于软件测试技术应用与发展趋势研究
手车式真空断路器回路电阻测试电流线接头研究
软件测试工程化模型及应用研究
福禄克推出先进的连接式测试工具系统