当前位置:首页 » 网页前端 » 提升用例脚本的稳定性
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

提升用例脚本的稳定性

发布时间: 2022-06-14 05:17:48

❶ 什么是自动化测试

一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

基本信息

  • 中文名称

    自动化测试

  • 外文名称

    Test

  • 定 义

    人为驱动测试为转为机器执行过程

  • 应 用

    软件测试的自动化

  • 工 具

    QTP

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

折叠编辑本段工具介绍

折叠QTP

全名HP QuickTest Professional software ,2012年12月6日发布11.5版本,并更名为Unified Functional Testing

QTP是quicktest Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等

QuickTest针对的是GUI应用程序,包括传统的Windows应用程序,以越来越流行的Web应用。它可以覆盖绝大多数的软件开发技术,简单高效,并具备测试用例可重用的特点。其中包括:创建测试、插入检查点、检验数据、增强测试、运行测试、分析结果和维护测试等方面。

折叠WinRunner

Mercury Interactive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。

企业级应用可能包括Web应用系统,ERP系统,CRM系统等等。这些系统在发布之前,升级之后都要经过测试,确保所有功能都能正常运行,没有任何错误。如何有效地测试不断升级更新且不同环境的应用系统,是每个公司都会面临的问题。

折叠RationalRobot

是业界最顶尖的功能测试工具,它甚至可以在测试人员学习高级脚本技术之前帮助其进行成功的测试。它集成在测试人员的桌面IBM Rational Test Manager上,在这里测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。这种测试和管理的双重功能是自动化测试的理想开始。

折叠AdventNetQEngine

AdventNet QEngine是一个应用广泛且独立于平台的自动化软件测试工具,可用于Web功能测试、web性能测试、Java应用功能测试、Java API测试、SOAP测试、回归测试和Java应用性能测试。支持对于使用HTML、JSP、ASP、.NET、PHP、JavaScript/VBScript、XML、SOAP、WSDL、e-commerce、传统客户端/服务器等开发的应用程序进行测试。此工具以Java开发,因此便于移植和提供多平台支持。

折叠SilkTest

是业界领先的、用于对企业级应用进行功能测试的产品,可用于测试Web、Java或是传统的C/S结构。SilkTest提供了许多功能,使用户能够高效率地进行软件自动化测试。这些功能包括:测试的计划和管理;直接的数据库访问及校验;灵活、强大的4Test脚本语言,内置的恢复系统(Recovery System);以及具有使用同一套脚本进行跨平台、跨浏览器和技术进行测试的能力。

折叠QARun

QARun的测试实现方式是通过鼠标移动、键盘点击操作被测应用,即而得到相应的测试脚本,对该脚本可以进行编辑和调试。在记录的过程中可针对被测应用中所包含的功能点进行基线值的建立,换句话说就是在插入检查点的同时建立期望值。在这里检查点是目标系统的一个特殊方面在一特定点的期望状态。通常,检查点在QARun提示目标系统执行一系列事件之后被执行。检查点用于确定实际结果与期望结果是否相同

折叠TestPartner

是一个自动化的功能测试工具,它专为测试基于微软、Java和Web技术的复杂应用而设计。它使测试人员和开发人员都可以使用可视的脚本编制和自动向导来生成可重复的测试,用户可以调用VBA的所有功能,并进行任何水平层次和细节的测试。TestPartner的脚本开发采用通用的、分层的方式来进行。没有编程知识的测试人员也可以通过TestPartner的可视化导航器来快速创建测试并执行。通过可视的导航器录制并回放测试,每一个测试都将被展示为树状结构,以清楚地显现测试通过应用的路径。

折叠Holodeck

-强大的故障植入软件测试工具

Holodeck is an advanced fault-injection tool that gives you the power to attack an application while it monitors and logs everything your application does - every function call, registry entry, piece of data read or written.

折叠TelelogicTAU

TAU第二代包含三个最新的、最强大的技术用来加速大规模软件开发和测试:统一建模语言(UML)及它的许多最新修订版本中的特性,UML2.0;功能强大的测试语言TTCN-3和新的构造系统的方法:Model Driven Architecture(模型驱动构架)。这三个新的业界标准结合成TAU的已经过认可的软件开发平台,形成了一个系统,一个一流的稳定可靠的工具解决方案。TAU第二代是系统与软件开发解决方案的一个突破,它把业界从使用了太长时间的手工、易出错、以代码为中心的方法中释放出来,自然而然地迈向下一步,一个更加可视化、自动化及可靠的开发方法。Telelogic TAU/Tester是基于通用测试语言TTCN-3,用于自动化的系统和集成测试的强大工具。TAU/Tester以现代化的开发工具为基础,提供高层测试功能,支持整个测试生命周期,加速自动化测试。TAU/Tester可使用户特别关注于测试的开发,因为TTCN-3语言是独立于开发语言或测试设备的,且是抽象和可移植的。

折叠AutoRunner

AutoRunner是黑盒测试工具,可以用来完成功能测试、回归测试,可以提高测试效率,降低测试人工成本。

产品可以对以下类型对象进行GUI功能性测试:

1 Windows类型对象,一般为用C++/Delphi/VB/VFP/PB/.NetForm等技术开发的桌面程序。

2 IE网页对象,一般性的网站,比如大的门户类网站。

3 Java对象,一般为用AWT/Swing/SWT等技术开发的桌面程序。

4 Flex对象,网页的内容是用Flex开发的。

5 Silverlight对象,网页的内容是用Silverlight开发的。

6 WPF对象,一般为用WPF技术开发的桌面程序。

7 QT对象,一般为用QT技术开发的桌面程序。

折叠PhoenixFramework

Phoenix Framework是一款基于 Selenium,Webdriver,autoIt研发的一款集资源管理和测试于一体的Web自动化测试工具。最新版本是1.1.8,该工具支持无脚本执行模式,无人值守执行模式,自由定制模式。不仅执行模式可以定制,功能模块也支持定制。使用该工具的界面创建用例,组装脚本,启动执行。使用该工具其他开放的接口,可手动创建脚本,组装并执行。它支持两种部署模式,第一种是Server-Client方式,Server与Client均为EXE程序,通信协议是Socket;另一种是WEB版部署,方便与现有系统集成,支持Linux,将Server与Client放到Tomcat或Weblogic服务器下部署,通信协议为Http,通过WEB页面控制并监控Client端的执行。

折叠编辑本段前提条件

实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。通常需要同时满足以下条件:

1) 需求变动不频繁

测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。

项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。

2) 项目周期足够长

自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成,这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。

3) 自动化测试脚本可重复使用

如果费尽心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段了。

另外,在手工测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比如性能测试、配置测试、大数据量输入测试等。

折叠编辑本段适用场合

通常适合于软件测试自动化的场合:

(1)回归测试,重复单一的数据录入或是击键等测试操作造成了不必要的时间浪费和人力浪费;

(2)此外测试人员对程序的理解和对设计文档的验证通常也要借助于测试自动化工具;

(3)采用自动化测试工具有利于测试报告文档的生成和版本的连贯性;

(4)自动化工具能够确定测试用例的覆盖路径,确定测试用例集对程序逻辑流程和控制流程的覆盖。

随着测试流程的不断规范以及软件测试技术的进一步细化,软件测试自动化已经日益成为一支不可忽视的力量。能否借助于这支外在力量以及如何借助于这支力量来规范企业测试流程、提高特定测试活动的效率,正是本期所要讨论的话题。

软件测试自动化的研究领域主要集中在软件测试流程的自动化管理以及动态测试的自动化(如单元测试、功能测试以及性能方面)。在这两个领域,与手工测试相比,测试自动化的优势是明显的。首先自动化测试可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率;其次,自动化测试更便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用,这个特点在功能测试和回归测试中尤其具有意义;此外,测试流程自动化管理可以使机构的测试活动开展更加过程化,这很符合CMMI过程改进的思想。根据OppenheimerFunds的调查,在2001年前后的3年中,全球范围内由于采用了测试自动化手段所实现的投资回报率高达1500%。

折叠编辑本段选型原则

然而存在优势是否就一定意味着选择自动化测试方案都能为企业带来效益回报呢?也不尽然,任何一种产品化的测试自动化工具,都可能存在与某具体项目不甚贴切的地方。再加上,在企业内部通常存在许多不同种类的应用平台,应用开发技术也不尽相同,甚至在一个应用中可能就跨越了多种平台;或同一应用的不同版本之间存在技术差异。所以选择软件测试自动化方案必须深刻理解这一选择可能带来的变动、来自诸多方面的风险和成本开销。

以下笔者给出企业用户进行软件测试自动化方案选型的参考性原则,这些原则是从笔者实际工作中凝练而成的,它包括以下六个方面的建议:

●选择尽可能少的自动化产品覆盖尽可能多的平台,以降低产品投资和团队的学习成本;

●测试流程管理自动化通常应该优先考虑,以满足为企业测试团队提供流程管理支持的需求;

●在投资有限的情况下,性能测试自动化产品将优先于功能测试自动化被考虑;

●在考虑产品性价比的同时,应充分关注产品的支持服务和售后服务的完善性;

●尽量选择趋于主流的产品,以便通过行业间交流甚至网络等方式获得更为广泛的经验和支持;

●应对测试自动化方案的可扩展性提出要求,以满足企业不断发展的技术和业务需求。

折叠编辑本段过程

自动化测试与软件开发过程从本质上来讲是一样的,无非是利用自动化测试工具(相当于软件开发工具),经过对测试需求的分析(软件过程中的需求分析),设计出自动化测试用例(软件过程中的需求规格),从而搭建自动化测试的框架(软件过程中的概要设计),设计与编写自动化脚本(详细设计与编码),测试脚本的正确性,从而完成该套测试脚本(即主要功能为测试的应用软件)。

1) 自动化测试需求分析。

当测试项目满足了自动化的前提条件,并确定在该项目中需要使用自动化测试时,我们便开始进行自动化测试需求分析。此过程需要确定自动化测试的范围以及相应的测试用例、测试数据,并形成详细的文档,以便于自动化测试框架的建立。

2)自动化测试框架的搭建。

所谓自动化测试框架便是像软件架构一般,定义了在使用该套脚本时需要调用哪些文件、结构,调用的过程,以及文件结构如何划分。

而根据自动化测试用例,我们很容易能够定位出自动化测试框架的典型要素:

a. 公用的对象。

不同的测试用例会有一些相同的对象被重复使用,比如窗口、按钮、页面等。这些公用的对象可被抽取出来,在编写脚本时随时调用。当这些对象的属性因为需求的变更而改变时,只需要修改该对象属性即可,而无需修改所有相关的测试脚本。

b. 公用的环境。

各测试用例也会用到相同的测试环境,将该测试环境独立封装,在各个测试用例中灵活调用,也能增强脚本的可维护性。

c. 公用的方法。

当测试工具没有需要的方法时,而该方法又会被经常使用,我们便需要自己编写该方法,以方便脚本的调用。

d. 测试数据。

也许一个测试用例需要执行很多个测试数据,我们便可将测试数据放在一个独立的文件中,由测试脚本执行到该用例时读取数据文件,从而达到数据覆盖的目的。

在该框架中需要将这些典型要素考虑进去,在测试用例中抽取出公用的元素放入已定义的文件,设定好调用的过程。

折叠编辑本段脚本编写

该编写过程便是具体的测试用例的脚本转化。初学的自动化测试人员均会使用录制脚本到修改脚本的过程。但专业化的建议是以录制为参考,以编写脚本为主要行为,以避免录制脚本带来的冗余、公用元素的不可调用、脚本的调试复杂等问题。

折叠编辑本段测试运行

事实上,当每一个测试用例所形成的脚本通过测试后,并不意味着执行多个甚至所有的测试用例就不会出错。输入数据以及测试环境的改变,都会导致测试结果受到影响甚至失败。而如果只是一个个执行测试用例,也仅能被称作是半自动化测试,这会极大的影响自动化测试的效率,甚至不能满足夜间自动执行的特殊要求。

因此,脚本的测试与试运行极为重要,它需要详查多个脚本不能依计划执行的原因,并保证其得到修复。同时他也需要经过多轮的脚本试运行,以保证测试结果得一致性与精确性。

自动化测试引入的原因是就把软件测试人员从枯燥乏味的机械性手工测试劳动中解放出来,以自动化测试工具取而代之,使测试人员的精力真正花在提高软件产品质量本身。

折叠编辑本段注意事项

首先,一个企业实施测试自动化,绝对不是拍脑袋说干就能干好的,它不仅涉及测试工作本身流程上、组织结构上的调整与改进,甚至也包括需求、设计、开发、维护及配置管理等其他方面的配合。如果对这些必要的因素没有考虑周全的话,必然在实施过程中处处碰壁,既定的实施方案也无法开展。其次,尽管自动化测试可以降低人工测试的工作量,但并不能完全取代手工测试。100%的自动化测试只是一个理想目标,根据笔者的经验,即便一些如SAP、OracleERP等测试库规划十分完善的套件,其测试自动化率也不会超过70%。所以一味追求测试自动化只会给企业带来运作成本的急剧上升。再次,实施测试自动化需要企业有相对规模的投入,对企业运作来说,投入回报率将是决定是否实施软件测试自动化的最终指挥棒,笔者建议企业在决定实施软件测试自动化之前,必须要做量化的投资回报分析。此外,实施软件测试自动化并不意味着必须采购强大的自动化软件测试工具或自动化管理平台,毕竟软件质量的保证不是依靠产品或技术,更多的因素在于高素质的人员和合理有效的流程。

折叠编辑本段实战模拟

折叠背景介绍

A公司是一家大型保险公司,拥有近20个城市的分公司,并在其中5个城市建立了IT支持中心。平均每年的上线应用数量在20个左右(新业务系统和原有业务系统的主要版本发布)。A公司的专职测试团队人数不足30人而且测试团队的测试人员技能参差不齐测试只是作为项目上线前的一道工序而已。在测试团队内部也几乎没有自动化的手段,主要依靠手工测试。由于已上线应用系统的问题,开发团队必须分出一部分资源去维护和修复上线应用,而同时测试团队的测试成果和效率却无法和这些应用质量挂钩,也更无从谈起对软件质量的控制。所以,A公司决定在软件质量和测试方面进行投入,他们考虑以下几方面:

●引进软件测试流程管理的自动化,提高软件测试过程的管理水平,使软件测试和软件开发一样可被评估、被衡量。

●实现性能测试自动化,所有应用上线之前必须有应用性能风险评估报告和相关部门的确认

●逐步实现功能测试的自动化,在目前人员配置的情况下,把部分手工测试变成自动化测试,提高测试可信度,降低人为错误。

●通过软件测试自动化,管理软件测试中的案例、缺陷、报告等资产,进一步提升软件测试的效率并建立测试基础库。

●在规划中,将来的2~3年内使所有的应用系统上线都必须有数字化的测试数据作为依据。

折叠系统的情况

由于保险公司的业务种类繁多,同时在经过了几十年的经营后,公司内的应用系统从早期的终端方式到现代的J2EE和.NET等应有尽有,鱼龙混杂。IT部门已经建立的3年规划,即在未来的3年时间内将所有终端和C/S方式的应用转换成B/S架构,但当前仍然需要对这些旧应用系统进行维护,以保证业务的顺利进行。对于开发部门来说,新应用开发基本上已经以B/S架构为主,主要是基于J2EE架构的WebHTTP应用和部分Window.NETForm的应用。

折叠公司现状

企业机构在做测试自动化选型时一定要考虑清楚企业内部哪些部分可以实施自动化、哪些部分暂不实施自动化、哪些部分仅在某几个项目做自动化试点。切忌匆忙上马或盲目否定,缺乏实事求是的理性思考。

测试部门仅负责系统测试和对用户验证测试进行管理,对于之前的单元测试和集成测试主要由开发团队中划分出的一部分临时测试人员完成。由于缺乏监测手段,测试部门也无法收集和确定集成测试和单元测试的完成情况,在整个软件测试过程中,业务需求是由开发部门通过RationalRequisitePro进行管理,但测试需求尚没有提出要求,测试案例主要通过在公司公用的文件服务器中的目录管理方式管理,对测试中缺陷流程等管理主要依靠邮件的流转进行处理90%以上的测试是通过Excel和Word等测试案例文档来完成,测试人员对软件测试自动化的认识仅停留在"记录+回放"的认识上。

折叠方案

方案A:A公司可以采用美科利(Mercury)公司产品为主的软件测试自动化方案。

●依照原先的邮件流转过程配置TestDirector缺陷管理流程,为每个保险业务的开发小组和测试团队分配相应的用户许可证,取消原有邮件方式。

●部署MercuryQuickTestProfessional,以便完成应用程序相关功能测试。

●部署MercuryLoad-Runner。从测试团队中分化出专职的性能测试自动化工程师和小组,和业务部门协调,建立A公司应用系统上线性能指标,通过LoadRunner给出测试指标。

●建议A公司成立专门的质量控制部门,对TestDirector中的数据定期进行分析,建立相关质量模型,以便于企业量化管理和过程改进。

方案B:A公司也可以采用IBMRational产品为主的软件测试自动化方案。

●采用RationalTestmanager来进行整个测试流程的管理,为相关开发和测试小组成员分配相应权限,改变以前通过邮件以及Word、Excel文档管理测试的工作方式。

●部署RationalRobot,用它来完成功能相关的测试工作以及新版本发布时的冒烟测试。此外,RationalRobot也能较好地完成性能相关测试。统一的操作方式降低了工具的学习周期和培训带来的大笔开销。

●部署RationalPurifyplus,使测试工作前移到开发阶段。由于Purifyplus能较好地支持白盒测试,编程人员在编码阶段引入的错误能尽早被检测到,这大幅降低了后期测试的开销。

●建议A公司成立专门的质量控制部门,对Testmanager中的数据定期进行分析,建立相关质量模型,以便于企业量化管理和过程改进。

方案C:A公司也可以采用开源软件为主的软件测试自动化方案。

●采用Bugzilla来进行Bug跟踪管理,采用BugzillaTestRunner进行测试用例管理,采用CVS进行测试资源的配置管理。

●采用MaxQ和WebInject对B/S结构的应用系统进行功能测试。

●采用DBMonster、Open-STA、LoadSim进行性能相关测试。

●可采用Xunit架构的开源工具对不同语言的程序单元进行单元测试。

●建议A公司成立专门的开源软件维护小组,以解决可能会碰到的工具维护工作。

●建议A公司成立专门的质量控制部门,对Bugzilla、TestRunner、CVS中的数据定期进行分析,建立相关质量模型,以便于企业量化管理和过程改进。

折叠方案评价

由于不同客户在组织架构、员工素质以及流程管理水平等方面的不同,我们很难用一个实例、一两句话来说明不同解决方案的适用性。在上面的例子中,笔者给出了3种可行的方案,具体选择哪一个,需要仔细权衡。这里笔者给出一般性的意见,对于不想受制于某个测试自动化厂家的企业,开源绝对是一个理想的选择。此外,它不需要支付成本,工具的源代码可以随意修改,因而具有较好的灵活性。但开源工具的弊端也是明显的:缺乏使用培训和技术支持,工具的用户界面一般也较为粗糙。而对于那些比较看重培训和售后支持的企业,笔者建议选择IBMRational或Mercury或其他厂家的产品。这样虽然需要支付一部分费用,但省去了工具维护所需要的大量工作。至于具体选择哪个厂家的产品为好,笔者尚无结论性意见。相信读者朋友都有一些见仁见智的看法,不妨来信交流。

❷ 如何提高 GUI 测试的稳定性

GUI自动化测试稳定性,最典型的表现形式就是,同样的测试用例在同样的环境上,时而测试通过,时而测试失败。
造成GUI测试不稳定的五种因素:

非预计的弹出对话框
页面控件属性的细微变化
被测系统的A/B测试
随记的页面延迟造成控件识别失败
测试数据问题
对于这几种因素的解决思路:

非预计的弹出对话框
非预计的弹出对话框一般包含两种情况:
GUi自动化测试用例执行过程中,操作系统弹出的飞鱼级对话框。
被测软件本身也有可能在非预期的时间弹出预计的对话框。
解决方法:
当自动化脚本发现控件无法正常定位,或者无法操作时,GUI自动化框架自动进入“异常场景恢复模式”。在“异常场景恢复模式”下,GUI自动化框架依次检查各种可能出现的对话框,一旦确认了对话框的类型,立即执行定义的操作,比如单机“确认”按钮关闭这个对话框,接着重试刚才失败的步骤。
这种方式只能处理已知可能出现的对话框。而对于新类型的对话框,只能通过自动化的方式尝试点击上面的按钮进行处理。每当发现一种潜在会弹出的对话框,我们就把它的详细信息(包括对象定位信息等)更行到“异常场景恢复”库中,下次再遇到相同类型的对话框时,系统就可以自动关闭了。

页面控件属性的细微变化
解决方法:采用“组合属性”定位控件会更精准,而且成功率会更高,如果能在此基础上加入“模糊匹配”技术,可能以进一步提高控件的识别率。
“模糊匹配”是指,通过特定的相似度算法,控件属性发生细微变化是,这个控件依旧可以被准确定位。(通常需要二次开发)

北栅系统的A/B测试
A/B测试,是互联网产品常用的一种测试方法。它为Web和App的界面或流程提供两个不同的版本,然后让用户随记访问其中一个版本,并收集两个版本的用户体验数据和业务数据,最后分析出最好的版本用于正式发布。
A/B测试通常会发布到实际生产环境,所以就会造成生产环境中GUI自动化测试不稳定。
解决方法:在测试脚本内部对不同的被测版本做分支处理,脚本需要能够区分A和B两个的不同版本,并作出相应的处理。

随记的页面延迟造成控件识别失败
解决方法:加入重试(retry)机制,重试机制是指,当某一步GUI操作失败时,框架会自动发起重试,重试可以是步骤级别的,也可以是页面级别的,甚至是业务流程级别的。需要自己二次开发来实现。

❸ 测试中如何使用自动化脚本

从毕业到现在,经历了软件开发,
软件测试,
1)QTP工具。QTP是一个快速测试专业工具。它的优点是可以快速建立企业自动化框架,但不是一个全能的工具,因为利用QTP并不能帮助用户找出更多的 BUG,只能提高执行测试用例的效率。 QTP的价格也较贵。 QTP主要应用于较稳定的测试项目的回归测试,UI的变化不明显,功能较稳定的项目。它可以节省回归测试的成本,但相对手工测试来说,QTP对测试人员的要求较高,比如要掌握VB脚本,掌握函数调用等技术;另外,建立QTP框架前期需要投入较大的人力写测试用例,加上调试的时间,是一笔不小的开销,所以企业在选用QTP测试工具时一定要三思而后行。
2)Loadrunner是一个企业级性能测试工具,应用十分广泛。对于WEB应用,Loadrunner的优势十分明显。但与QTP一样,lr的 License十分昂贵,所以很多企业都使用破解版。并且真正掌握LR精髓的人员并不多,很多人都会使用这个工具,但能用这个工具找出系统瓶颈的人并不多,所以,会使用Loadrunner和会性能测试是两码事。懂脚本语言的性能测试人员当然最好。
3)Python和Tcl/tk脚本语言。在我之前的经验中,我用到过PYTHON和TCL。他们都是脚本语言,不需要编译。两种语言的特点如下:Python开发JAVA方面的http接口比较方便;tcl/tk开发C++方面的接口更容易一些。PYTHON写的程序可读性强,TCL写的程序的可读性不好。
4)在需要产生一些大批量数据时,如一个表需要插入100万条数据,然后这100万条数据属于100个不同的类别,如果是手工输入的话,估计10个人一个月都输不完,但如果利用脚本,如PB,VB或者Tcl/tk,可以通过产生批量SQL脚本的方式,来产生SQL脚本,这样不到半小时就可以搞定全部的数据。看来脚本的威力不小!
5)另外,就是Linuxshell脚本了,我们通常说“事半功倍”,shell脚本的确可以帮助你实现这个目的。我们平时在LINUX部署一个应用会用到很多的命令如 Checkout,ps,vi,kill等等,如果能把这个操作流程写成一个SHELL脚本让机器自动执行,那该是省了多少事?另外,作为 UNIX/LINUX管理员,平时可以要监控较多的PC终端,他完全可以在UNIX/LINUX上定制各种任务(如备份,删除临时文件,检查磁盘空间等等),所以,掌握Shell脚本(如Sed,awk,grep等)对一个测试人员来讲是十分必要的!
6)另外一个就SQL脚本了,要能写存储过程(SP)和触发器(Trigger),还有游标(Cursor)的使用,掌握这些的话对于测试数据库方面的用例是相当有帮助的。SQL脚本对系统性能和功能都起着十分重要的作用。
作为一名有6年测试经验的工程师,我坚定地认为脚本测试技术是以后的发展方向,包括白盒测试,也是将来的一个发展方向,对于测试人员来讲,核心竞争力是能完整的测试开发人员的程序,尽可能找出更多的BUG。黑盒测试只能从系统的角度去完成功能测试,但作为软件本身,应该作更深层次的测试。

❹ 如何提高测试用例编写效率

1.尽早参与到项目中
测试尽早介入项目详细了解项目的业务需求,做好测试的前期准备:目前来说,可能大家都有类似的感受,接触到的大多数的项目,都是测试周期比较短,开发人员耽误了时间,为了不拖延项目进度,留给测试人员做测试的时间都非常紧张。如果项目测试的前期了解业务需求、了解产品属性和准备测试数据不充分,往往测试效率很低,测试时间变长,测试效率急剧下降。
2.合理的测试计划
首先要有一个合理的详细的测试计划:没有详细的测试计划,测试部的每个成员都在那儿盲无目的测试,何谈提高测试效率?当然测试计划也不能够太细,太细了,编写测试计划同样浪费时间,做到时可而止。最好是测试任务尽量能细化到测试的功能较为理想。
3.要做好测试文档的评审
测试负责人认真做好测试文档的评审:测试经理一定要认真做好测试用例的评审,尽量使用较少的测试用例,发现较多的Bug,无疑是最佳提高效率的一种方式。很多时候,经验较少的测试人员在设计测试用例的时候,写了很多的测试用例,测试时几乎没有发现缺陷。还有一种:比如说等价类的测试,只要具备代表性就可以了,如果写了很多测试用例,执行了半天,臃肿的测试用例,未发现任何问题,也很不值。这些主要是靠测试用例评审的时候,测试Leader去把握了。尽量做到在满足需求的情况下,精简测试用例数量,提高测试覆盖率。很多时候,测试人员写好用例就自己测试,根本没人评审,有些地方理解有偏差,测试点没测试到,导致发给客户版本被退回,给公司也会带来巨大经济损失。
4.提高测试接受的标准,减少测试版本送测次数:
大部分公司的开发人员都有一种惰性,一旦公司成了测试部,他们自己测试时,都不会那么认真,以为有了测试人员,就自己就解放了。很多时候都是调试编译通过,实际上开发人员没有做完整的自测,就拿到测试部进行测试。如果测试部门有严格的测试接受标准,一旦发现有重大问题,立即拒绝测试,送回开发人员修改。可以减少很多次反复测试,重复测试,明显提高了测试效率。
5.发挥主观能动性,积极沟通
测试工作是一项沟通要求比较高的工作,一般需要同项目经理、产品经理、开发人员、业务人员、客户沟通。很多时候,由于测试介入较晚,测试时间短,测试初期测试人员了解需求不及开发人员,为了迅速熟悉需求,需要项目组成员之间相互培训和沟通。测试人员为了利于测试工作,平时也需要主动和开发团队沟通项目的进度、项目存在的问题、项目的需求变更等等情况。与团队成员沟通得越充分、对项目的信息收集和把握得越及时、越准确,我们的测试工作才可能做得越顺利,才可能提高测试效率。我们绝不能消极等待或一味埋怨开发人员的不理解和不重视。我们首先需要正视自己、改进自己,通过自身的不断努力让开发人员,真正体会到测试的价值。同时,也需要理解并配合开发人员的工作。只有这样,才能赢得开发人员的支持。互相配合、互相促进,项目成员之间形成良性循环,彼此感情加深了、配合默契了、工作效率和工作质量也就自然提高了。
6.按照项目的性质大小不同,引入自动化测试工具和自动化测试脚本
是否引入自动化的测试工具,主要取决于测试的时间长短和测试的轮次。一般来说,测试周期较长、版本升级平凡和回归测试次数较多的项目,引用测试工具可以提高测试效率。如果测试周期较短,本来测试周期只有两三个月,开发测试脚步就要花费大量时间,引入自动化测试工具,用的次数较少,结果得不丧失,劳民伤财!
7.对测试项目前景充满信心,调整最佳心态,保持愉悦的工作心情:
一般来说,如果大家认为测试的项目没什么发展前景,当然测试也不会很卖命,测试效率不用说。如果某个测试人员碰到什么不顺心的事,当天的工作效率肯定比平常低。所以,要保证测试效率,测试负责人要察言观色,及时找不开心的下属谈心,了解并帮忙消除部分员工的不良情绪,让员工有更好的心情投入到测试工作中去。
8.提高测试人员的专业技能和工作能力:
由于测试技术的不断成熟和完善,许多的新技术陈出不穷,作为测试人员需要不断提高自己的专业技能和工作技能。不断的给自己充电,补充测试理论知识,让自己工作技能力去弥补专业技能的不足。这样,你的工作同样可以做到最棒,效率自然很高。一段时间过去,回过头来一看,自己确实进步不少,没有虚度光阴呀!

❺ 怎么加强自动化测试脚本的稳定性

IBM® Rational® Functional Tester 是用于功能性和回归线测试的高级测试自动化工具,它可以在一个基于图形化用户界面(GUI)的程序上录制测试场景,并回放测试场景以实现测试自动化。在录制期间,您可以插入确认点,这些确认点可以从您正在测试的程序中获取特定的数据或者属性。然后在回放期间,这些确认点用来将录制的信息,与现场信息进行比较以确保稳定性。工具会搜索映射的对象,并在测试期间对其执行一系列的操作。 但是,由于对象不存在或者不适当的状态,Playback 特性通常会遇到一些失败情况,在回放期间,如果 GUI 响应时间或者 GUI 到达预期状态所花费的时间,要远远高于录制时间,那么工具所执行的操作就不能在适当的位置找到适当的对象或者它们的状态或属性了,这样脚本回放就会失败。通过按照本文中所介绍的步骤进行操作,您将会学到怎样利用 Rational Functional Tester 程序编程界面(API),来改进脚本以实现基于 Eclipse 程序地可靠测试自动化。 前提条件 如果您拥有下述的知识,那么您就能从本文中学到更多的信息: 熟悉 Eclipse 环境以及为测试下程序配置 Rational Functional Tester 熟悉录制和回放测试脚本,并理解测试脚本的内容 场景 注意: 对于这些范例,IBM® Rational® Software Architect(一种基于 Eclipse 的程序)用作测试下的程序。 本文将会涉及到测试自动化中以下的失败场景,并解释在 Eclipse 工作区中遇到它们时的方案。 场景 1:不匹配的 GUI 响应时间 在回放期间,如果 GUI 响应时间要比录制期间的时间长,那么自动化工具将不会找到需要执行操作的对象,而测试脚本也将会失败。 场景 2:未预期的活动窗口 如果在自动化测试的回放期间,出现了一个未预期的活动窗口,那么在录制期间该窗口将不会出现,自动化脚本将会失败。自动化会因为未处理的窗口而停止。 场景 3:不适当的对象状态 当您在创建确认点时,如果对象没有处于它所预期的状态,那么它会获取所有需要的具体内容。同样,在回放期间,如果并不能确保相同的对象状态,那么确认点将会失败。 图 1 中的图表描述了处理这些场景的基本方法。 图 1. 方案的基本方法 方案方法基本上可以改进使用 Rational Functional Tester API 的脚本。作出的选择能够处理描述的场景,该场景可能发生在测试自动化场景之中。 创建 Eclipse:准备 Rational Functional Tester 以测试基于 Eclipse 的程序 为了对基于 Eclipse 的程序使用 Rational Functional Tester 自动化测试特性,您必须首先按照下面的方法来创建测试的环境: 点击 Configure > Enable environment for testing 以打开 Enable Environments 窗口(参见图 2)。 选择 Eclipse 实例,并点击 Enable。如果 Eclipse 环境尚没有列出,那您您可以点击 Search。 点击 Finish 以保存您所做的修改。 图 2. 激活环境窗口 修改代码:根据用例来更改自动生成的代码 在这一步中,会获得对自动生成代码所做的更改,以处理前面所描述的一个或者多个失败。每一个失败场景的解决方案,都与下述描述的子部分不同。 场景 1:不匹配的 GUI 响应时间 对于该场景有两个可能的解决方案: 方案 1a. 检查进度条的状态 当您在基于 Eclipse 的程序中创建一个项目时,项目构建和确认会在项目向导完成之后才启动,其中基于 Eclipse 的程序例如 Rational Software Architect 或者 IBM® Rational® Application Developer。有时所花费的时间要比预期的长,脚本回放会失败,因为项目构建没有完成,但是脚本会试着进一步地操作。为了避免这种失败情况的发生,您可以在 Eclipse 工作区右下角查看进度条的状态 修改代码:根据用例来更改自动生成的代码 在这一步中,会获得对自动生成代码所做的更改,以处理前面所描述的一个或者多个失败。每一个失败场景的解决方案,都与下述描述的子部分不同。 场景 1:不匹配的 GUI 响应时间 对于该场景有两个可能的解决方案: 方案 1a. 检查进度条的状态 当您在基于 Eclipse 的程序中创建一个项目时,项目构建和确认会在项目向导完成之后才启动,其中基于 Eclipse 的程序例如 Rational Software Architect 或者 IBM® Rational® Application Developer。有时所花费的时间要比预期的长,脚本回放会失败,因为项目构建没有完成,但是脚本会试着进一步地操作。为了避免这种失败情况的发生,您可以在 Eclipse 工作区右下角查看进度条的状态

❻ selenium webdriver 执行测试常见问题

  1. selenium中如何保证操作元素的成功率?

  2. 如何提高selenium脚本的执行速度?

  3. 用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,如何去提升用例的稳定性?

  4. 你的自动化用例的执行策略是什么?

❼ 自动化测试的前提条件

实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。通常需要同时满足以下条件:
1) 需求变动不频繁
测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。
项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。
2) 项目周期足够长
自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成,这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。
3) 自动化测试脚本可重复使用
如果费尽心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段了。
另外,在手工测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比如性能测试、配置测试、大数据量输入测试等。

❽ 测试用例稳定性是指什么

稳定性测试的概念有2种,
一, 稳定性测试,对应于异常性测试,即发生异常情况时,系统如何反应的测试。包含:
1 交互性测试,被打扰的情况,如来电,短信,低电量等。这些其实在上章的功能测试中有提到。
2 异常性测试,断网,断电,服务器异常等情况
二,稳定性测试指的是性能测试,压力测试
1 基准性能测试,通过压服务器端口及客户端在不同网络环境下响应速度
2 大数据测试,在特定环境下,客户端一次性更新大量数据及人员列表
另有其它文章,提到性能测试,为评估APP的时间和空间特性(真是高深啊,时间和空间,再来个4维,5维?),包括:
1 极限测试:在各种边界压力情况下,如电池,存储,网速等,验证app是否能正确响应
--内存满时安装app
--运行app手机断电
--运行app时断掉网络
这几点倒是与第一条的内容重复
2 响应能力测试:测试app中的各类操作是否满足用户响应时间要求
--app安装 ,卸载的响应时间
--app各类功能性操作的影响时间
3 压力测试:反复、长期操作下,系统资源是否占用异常
--app反复进行安装卸载,查看系统资源是否正常(弄个几次就行吧,正常人,谁反复安装卸载啊)
--其它功能反复进行操作,查看系统资源是否正常(这倒是应该的)
4 性能评估:评估典型用户应用场景下,系统资源的使用情况
这里要定义,什么是典型用户应用场景
5 benchmark测试(基线测试),应该不是基准性能测试:与竞争产品的benchmarking,产品演变对比测试等(没有多大意义)。
简要步骤:adb devices---了解包名--adb shell monkey -p 包名 -v 运行次数(多个参数的组合形成不同的用例以求最大的覆盖)--当崩溃或无响应时分析monkey日志
常规monkey命令(可直接在项目里使用):
adb shell monkey -p com.jiochat.jiochatapp --throttle 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000000>d:\b.log
重现bug:monkey日志搜索关键词ANR exception,将之前的事件重新操作,尤其是seed值要一模一样,如monkey -p 包名 -v seed 0 500
日志分析:查看是否有crash等关键字,找上下文,进行简单分析将你所能定位的错误信息发给开发。
该工具用于进行压力测试。 开发人员结合monkey 打印的日志 和系统打印的日志,修改测试中出现的问题。Monkey 是SDK中附带的一个工具,所有的事件都是随机产生的,不带任何人的主观性。

❾ 用例在运行过程中会出现不稳定的情况,不一定每次都可以通过。该去提升用例的稳定性

测试用例: 1、熟悉业务需求。 2、在熟悉需求的基础上设计测试用例。 3、设计正常业务测试用例 4、设计异常情况测试用例。