杨勋
摘要:中国现阶段的IT行业越来越大,软件市场逐步成熟,无论是个人还是企业都对软件的期望值越来越高,所以软件的质量和可靠性等方面也越发引起个人和企业的重视。最近几年里,由软件引起的错误,从而造成严重的经济损失的事故越来越多。所以,必须保证软件产品的高质量和高可靠性成为人们必须解决的一个问题,其中,软件测试是保证软件质量和可靠性的一个非常重要的手段。该文主要阐述了软件测试现状、测试目的、测试方法、测试技术的发展趋势等。
关键词: 软件测试;测试目的;软件测试现状;测试方法; 发展趋势
中图分类号:TP31 文献标识码:A 文章编号:1009-3044(2015)28-0207-02
中国现阶段的IT行业越来越大,软件市场逐步成熟,无论是个人还是企业都对软件的期望值越来越高,所以软件的质量和可靠性等方面也越发引起个人和企业的重视。最近几年里,由软件引起的错误,从而造成严重的经济损失的事故越来越多。所以,必须保证软件产品的高质量和高可靠性成为人们必须解决的一个问题,其中,软件测试是保证软件质量和可靠性的一个非常重要的手段。
近十几年来,信息技术经过了迅速发展,软件产品渗透到了社会的各个行业和各个领域。由于软件的质量不高不稳定,不仅可以大大增加开发商的维护费用和使用成本,还可以增加其他风险,例如企业的信誉度下降等。在一些关键领域可能会造成无法估量的严重后果。
1软件测试的现状
软件领域发展的速度非常快,软件的品牌和种类也越来越多,要保证软件的高质量和高可靠性,软件测试就成为一个非常重要的环节。近些年来不断的涌现出新的测试方法和测试理论,而且也快速出现了新的软件测试机构和组织,因此软件测试技术也逐步的走向了新兴职业的发展道路。
在国外,软件测试技术已经经过了长时间的发展,技术日臻成熟,但是国内的发展较为缓慢,还没有出现一个可以适用中小型软件公司的软件测试规范。从而造成了这些中小软件公司生产出来的软件产品质量上无法进行控制,而这些中小型软件公司在整个国内占了很大的比重,可想而知,中国的软件行业不能快速的发展。
2 软件测试目的
软件测试是计算机软件诞生时就出现的,软件测试的过程并不是至简单的包括了测试,还包括了开发时的任务,换句话说,测试的周期要必须充分的包括进行测试的时间还有开发修复的时间。
软件测试要快速准确的将软件产品中存在的各种问题找出来,软件开发者要迅速的对这些问题加以解决,然后把解决好的软件产品及时的反馈给客户。软件测试是软件开发的一个非常重要的环节,它始终贯穿了软件开发的整个过程。从软件项目开始,软件测试也正式开始了,从需求分析到最后的安装调试,软件测试始终存在。
软件测试不仅仅是找出软件产品中错误的过程,还包括了对该软件产品质量的评价,应该仅仅是发现和纠正产品中的错误。测试是为了度量和提高被测软件的质量,对测试件进行工程设计、实施和维护的整个生命周期过程。
软件测试的目的决定了应当用什么样的方法来进行测试。如今,软件的开发规模越来越大,复杂程度越来越高,要找出产品中的错误的难度愈来愈大。因此,选择一个适当的的测试方法显得尤其重要。适当的测试方法不仅可以快速准确的找出软件中的错误,还能够明显的降低各种测试和维护成本。
3 软件测试的方法
按照软件测试用例的设计方法而论,软件测试包括了黑盒测试和白盒测试两种。
3.1白盒测试
白盒测试又叫做结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。通过白盒测试可以知道软件产品内部工作的过程,可以通过测试来测出软件内部的动作是否按照说明书的规定正常运行,按程序内部的结构进行测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,不用管它的功能。测试的主要方法包含了逻辑测试和基路测试等,主要进行软件内部结构的验证。它是一种用于测试用例的设计方法,其中盒子指的是被测试的软件产品,白盒的意思是说盒子是能够看得见的,你能看清楚盒子里面的东西,还能明白盒子里面是如何操作的。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。
3.2黑盒测试
黑盒测试正好和白盒测试相反,白盒测试被看成一个透明的盒子,而黑盒测试是一个看不见的盒子,它完全不用考虑软件本身的内部逻辑结构和特性,也不针对软件的界面和软件的功能来测试。它属于穷举输入测试,它把有可能出现的输入都作为测试用例,挨个输入,才能找出软件程序中的错误,实际上测试情况有无数个,测试人员不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。
4 软件测试工具简介
4.1 功能测试工具
⑴ QTP。是是一种自动化功能测试工具。它主要侧重于功能的回归,而且QTP提供了很多的插件,并且适用于各种类型的测试, 它支持所有的常用环境。
⑵ WinRunner。WinRunner使用的是TSL语言,主要还是面向c/s架构,它主要面向企业级的功能测试。
⑶ Rational Robot。Rational Robot 是rational 的产品之一,它可以开发出三种测试脚本。⑷ AdventNet QEngine。AdventNet QEngine是一个应用广泛且独立于平台的自动化软件测试工具,它便于移植和提供多平台支持。
⑸ SilkTest。SilkTest 是一种用于目前全球企业应用的先进的基于标准的测试平台。
⑹ QA Run。QARun适用于所有关键业务领域的应用测试,而且能够以在复杂的企业环境里,测试各种类型的应用。
⑺ Test Partner。TestPartner是Compuware自动测试工具,促进基于Microsoft,JAVA和web技术复杂应用的功能测试。
4.2 性能自动化测试工具
4.2.1 主流负载性能测试工具
⑴ QA Load。QALoad是企业级的负载测试工具,它能够有效的帮助测试人员、开发者和系统管理人员,能够有效的负载测试分布式应用。
⑵ SilkPerformer。SilkPerformer V可以让你在使用它之前,就可以预测出企业电子商务环境的行为,使它不受电子商务应用规模和复杂性影响。
⑶ LoadRunner。LoadRunner 是一种预测系统行为和性能的工业标准级负载测试工具,它是·通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。
4.2.2 资源监控工具
资源监控在整个系统压力测试过程中扮演了一个非常重要的脚色,有非常多的集成在测试工具上。例如Loadrunner就包含了用户的执行情况、TPS、Load、场景状态等等集成因素。而Nmon作为另一种性能测试监控工具,被广泛的应用在AIX与各种Linux操作系统上进行监控与分析。相比较其他的系统资源监控工具,Nmon记录的信息数据是非常全面的,Nmon不仅仅可以在系统运行过程中准确实时的捕捉到系统资源的使用情况,还能够及时地把结果输出到文件中,最后用Nmon Analyzer工具生成数据文件与图形化的结果,效率非常高。
5 软件测试的发展趋势
软件技术一直在发展,同时软件测试技术也是在不断的向前发展的。软件测试的未来发展趋势包括了软件产品的易测试性、构建测试还有web测试。软件产品的易测试性指的是软件在设计和编码的同时就考虑到了测试的问题,它是在硬件易测试性的基础上而来的。其中,内建式测试、内建式自测试还有合约式测试是软件产品的易测试性在设计的时候考虑的三个主要方面。内建式的测试方法,指的是在代码中加入其他的测试机制,容易使软件产品在该模式下工作;内建式的测试方式指的是在内建式的测试方法基础上,又引入了其他的机制,能够产生测试的用例。而合约式的测试指的是在软件开发的同时加入相关的规则和约束条件,让软件产品能够根据某些约束条件来进行开发设计,这样可以大大降低软件产品在开发时产生的错误,并且可以减少后期的测试工作的很多工作任务。比如说前置和后置条件、轨迹等。
在软件测试的环节中,常常暴露出很多问题,比如说软件测试人员的经验不是很多,在出现问题时没有合适的办法应对,这样势必会导致测试的效率大大降低。但是培训出一个合格的软件测试员是需要相当长的一段时间。有种方法可以有效地解决此种问题,就是软件测试复用,而软件复用的技术基础就是软件构件。软件的测试用例构件能够独立的来完成某些测试功能,并且能够交付使用这些封装的测试用例。软件测试用例构件颗粒大小可以根据软件测试用例的功能力度来划分的。
现在的整个软件行业的模式早已经发生了很大的变化,由原来的以软件产品为中心的单纯制造转变成了以客户为中心的服务为主。www也从两层体系变为了三层体系结构,B2B已经演变成了简单通用的连接,而不是原来的复杂专用的连接。而且web服务可以很快得适应了这些。Web服务已经受到了人们很广泛的关注,它和黑盒测试差不多,能够得到规则约束,而不能知道程序的源代码和产品本身的设计。
6 结束语
软件测试始终在软件开发过程中都要存在,并不是最后才需要它,并不是保证软件产品质量的最后一个环节,而是实时适时的需要它。软件测试人员应该要顾虑到全局,要用全面的眼光来看待整个软件项目的开发,要全面的掌握整个软件产品的开发过程,并且站在客户的角度上,来看产品本身的问题进行测试。测试人员要使用最合适的测试工具,管理者要不断地思索怎样提高管理水平,从而能够搭建出一套完整软件测试体系,这套测试体系要适合企业开发人员的开发,使得测试员保证所有的测试机制都能够被正确地使用,一直到产品交付给用户使用。
软件开发技术水平在不断地提高,同时也约束软件测试水平也要跟着相应的提高。现在软件产品更多地使用了构件和web服务等新技术,这样对软件测试提出了更高的要求,也给软件测试带来一些困难。软件测试将来会与软件开发前期相融合,而且软件测试工具也一直在发展中,升级和更新。我们国家的软件测试水平还很落后,在向国外学习的同时,还需要更深入的研究软件测试技术,路还很长。
参考文献:
[1] 单锦辉,姜瑛,孙萍.软件测试研究发展[J].北京大学学报,2005,41(1):134-145.
[2] 夏启明.软件测试及评价的复用策略研究及其实现[D].武汉:武汉大学,2010.
[3] 杨芙清,梅宏,吕建.浅论软件技术发展[J].电子学报,2002,30(12): 1901-1906.
[4] 杨根兴,蔡立志.软件质量保证、测试与评价[M].北京:清华大学出版社,2007.
[5] 杨芙清,王千祥,梅宏.基于复用的软件生产技术[J].中国科学,2001,31(4):363-371.