胡艳梅
[摘要]随着科技的不断进步,企业的信息系统都毫无例外的倾向数据大集中方向发展,这就需要我们提高系统的可靠性、安全性,合理使用自动化测试工具能够帮助人们更好的检测软件中存在的BUG。
[关键词]数据大集中自动化测试BUG
中图分类号:TP2文献标识码:A文章编号:1071-7597(2009)0610060-01
一、自动化测试工具的地位
随着软件功能的增加,软件规模也日益增大,人们对软件真正的了解也日渐减弱。人们的日常生活也渐渐不能离开软件,银行系统、高速公路的收费系统、医院的医疗系统,软件产品的质量已经与人们的生活息息相关。通过单纯的手工测试已经不能满足人们对软件的质量要求,人们逐渐采用能够进一步保证软件质量的自动化测试工具代替手工测试。
二、自动化测试工具的作用
(一)某些测试内容手工很难实现可以借助测试工具来完成。在负载测试中,我们通常需要模拟大量数据或大量并发测试,例如模拟2000人同时登陆邮箱或发信,我们可以将2000人聚集到一起进行操作,但是这种手工测试方式不但浪费时间、人力、物力,而且不能保证2000人能够同一时刻进行点击操作,这样就不能保证同一时刻对服务器产生压力。使用LoadRunner性能测试工具我们可以先录制一个用户登陆邮箱或发信的操作过程,然后进行场景设置,可以在一台机器上设置多个虚拟用户,使用测试工具可以完成手工测试难以实现的问题,发现正常测试中难以发现的错误。
(二)软件在回归测试中合理运用测试工具节省人力资源。任何一个项目在开发过程中都要进行修改,软件也会在不断的升级过程中增加新的功能,编码人员在修改项目中的部分模块后,有时会影响其它模块的功能。每天重复的手动黑盒回归测试会使软件测试人员陷入既耗时又单调的简单繁琐劳动中,而且很多企业的项目由于时间的限制经常无法在软件产品发布前彻底测试所有功能。通过测试工具可以一次性开发测试脚本,多次运行同样的测试用例来进行回归测试,不但可以减轻测试的劳动强度,而且能够提高测试效率。
(三)搜集测试结果数据。自动化测试工具能够监控后台各个环节的资源消耗情况,把后台资源消耗情况、客户端的相应时间、吞吐量等重要指标保存到本地硬盘上,测试结束后会将测试结果传递到分析机,并自动得出测试结果图,测试人员通过自动得出的结果图能够快速定位软件的瓶颈,及时的向开发人员提供软件存在的BUG。
三、正确看待自动化测试工具
测试工作中80%以上的缺陷都是手工测试发现的,仅有不到20%的缺陷是自动测试发现的,而且这20%的发现也要求测试人员合理的运用测试工具,而且随着软件的修改需要对脚本不断维护,过分强调工具的自动化作用,极力追求各种软件测试工具,是软件测试本末倒置的表现。
软件测试工具是针对解决某些特定的问题而开发的,所以必然有其局限性。而且测试工具本身也是软件,只要是软件就会存在缺陷,因此自动化测试工具也会存在软件兼容性等不可避免的软件通病,所以在使用自动化测试工具测试软件时要合理的选择测试工具,针对自己的软件产品,先解决实际测试中最突出的问题,才能达到事半功倍的效果。
四、自动化测试工具基本要素
1、产生压力:无论是Unix操作系统还是windows操作系统,都很容易产生多个进程或多个线程,每个进程或线程都可以模拟一个用户,我们很容易知道一台计算机可以模拟成百上千的用户,每个进程实际上是一个正在执行的程序,每个执行的程序向后台发送一个合法的请求包,每个请求以测试脚本形式存在,按照进程或线程的形式去运行就会对后台系统产生一定的压力,这个压力与成百上千用户的真实操作没有任何本质区别。
2、提供录制脚本的功能:自动化测试工具为了能够提高开发测试脚本的速度,必须能够提供录制脚本的功能。开发测试脚本可以不需要录制,可以由测试人员手动编写,但是测试人员需要先研究客户端对数据库的请求,需要大量了解底层细节问题,造成测试速度非常慢,延误产品的上市时间。采用自动化测试工具的录制功能可以将通讯包录制下来,快速得到技术细节问题,从而提高开发测试脚本的速度。通过录制脚本自动产生代码可以大大提高测试的工作效率。
3、监控计算机并自动生成测试分析图:产生压力后并不是漫无目的向服务器发出请求的,而是通过控制器控制如何向后台发送请求,同时控制器还能提供监控后台各个环节的资源消耗情况的监控手段,自动得出测试分析图,测试人员可以根据经验通过分析图对软件进行分析,快速得出软件中存在的BUG。
五、全面性能测试的模型
性能测试分为许多种类型,包括压力测试、负载测试、强度测试、并发(用户)测试、大数据量测试、配置测试、可靠性测试等。我们在测试过程中通常需要侧重某一点对软件进行测试,为了达到减少不必要的工作量、节约测试成本的目的,我们可以将性能测试的很多内容经过一定的组织来统一进行,这就是“全面性能测试模型”。
1、预期指标的性能测试:在进行测试之前,我们需要先对软件进行需求分析、制定测试计划,完成测试计划中制定的性能测试要求是对软件的基本需求,对软件的基本需求的测试即为预期指标的性能测试。
2、独立业务性能测试:软件有一些核心业务模块,核心模块的功能较复杂、使用比较频繁,它是测试人员测试的重点,核心模块中存在BUG可能会导致整个产品上市的失败。为了使软件中存在的BUG更少,测试人员通常在集成或系统测试阶段开始单独测试其性能,后期进一步对其进行测试,保证系统的稳定性。
3、组合业务性能测试:用户在使用软件时对模块的每个功能都会使用到,在对软件进行测试时既要模拟多用户的相同操作,又要模拟多用户的不同操作,一般我们按照用户的实际使用人数来模拟各个模块的组合并发情况。
4、疲劳强度和大数据量性能测试:以一定的负载压力或大数据量长时间运行系统,测试系统长时间处理较大业务量时的性能。
5、服务器性能测试:为了找出各种服务器存在的瓶颈,为系统扩展、优化提供相关的依据,测试人员对数据库、web服务器、操作系统进行的测试。
6、网络性能测试:现在的许多软件都是B/S操作系统,带宽、负载以及端口的变化都会影响用户使用软件的相应时间,为了测试应用系统的用户数目与网络带宽的关系,我们需要对网络进行相应的性能测试。
六、结论
随着人们对测试工作的重视以及测试工作的不断深入,越来越多的公司开始使用自动化测试工具。综合各种因素,正确的选择和使用自动化测试工具,能够提高测试的效率和测试质量,降低测试成本。更好的完成软件测试工作。