当前位置:首页 > 工作计划 > 驶入快车道【测试驶入快车道】
 

驶入快车道【测试驶入快车道】

发布时间:2019-03-18 04:10:56 影响了:

   软件测试是软件生命周期的一个重要阶段。软件测试,特别是测试自动化技术属于当前国际软件界最有争议,亟待发展的技术。所谓自动化测试就是希望能够通过自动化测试工具或其他手段,按照测试工程师的预定计划进行自动的测试,目的是减轻手工测试的劳动量,从而达到提高软件质量的目的。
  测试自动化涉及到测试流程、测试体系、自动化编译、持续集成、自动发布测试系统以及自动化测试等方面的整合。也就是说,要让测试能够自动化,不仅是技术、工具的问题,更是一个公司和组织的文化问题。
  优势不言而喻
  自动化测试相对于手工测试,其优势主要体现在:对新版本执行回归测试、更多更频繁的测试、替代有困难的手工测试、具有一致性和可重复性、更好的利用资源、解决测试与开发之间的矛盾等等。
  对新版本执行回归测试 对于产品型的软件,每发布一个新的版本,其中大部分功能和界面都和上一个版本相似或完全相同,这部分功能特别适合于自动化测试, 从而达到测试每个特征的目的。
  更多更频繁的测试 每款产品面向市场前都会有一个发布周期,在测试期间是每天或者每两天都要发布一个版本供测试人员测试。如果一个系统的功能点有几千甚至上万个,手工测试就显得非常耗时和繁琐,这样必然会使测试效率低下。
  替代困难的手工测试如果用户有些非功能性方面的测试:如:压力测试、并发测试、大数据量测试、崩溃性测试,用手工测试是不可能达到的。
  具有一致性和可重复性 由于每次自动化测试运行的脚本是相同的, 所以每次执行的测试具有一致性, 手工测试是很难做到的。由于自动化测试的一致性,很容易发现被测软件的任何改变。
  更好的利用资源 理想的自动化测试能够按计划完全自动的运行,在开发人员和测试人员不可能实现24小时轮流工作的情况下, 自动化测试可以胜任这个任务。这样充分的利用了公司的资源,也避免了开发和测试之间的等待。
  解决测试与开发之间的矛盾 通常在开发的末期,进入集成测试阶段, 在每发布一个版本的初期,测试系统的错误比较少,这时开发人员有等待测试人员测试出错误的时间. 事实上在叠代周期很短的开发模式中,存在更多的矛盾, 但自动化测试可以解决其中的主要矛盾。
  防止自动化测试误区
  虽然自动化测试能为开发企业带来许多好处,但仍然有一些局限,我们应当尽量避免以下误区。
  期望自动化测试能取代手工测试 我们永远不能期望自动化测试能够取代手工测试, 毕竟自动化测试没有人工更智能。
  期望自动测试发现大量新缺陷 同样不能期望自动化测试去发现更多新的缺陷, 事实证明新缺陷越多,自动化测试失败的几率就越大。
  技术、组织和脚本维护 自动化测试的推行,存在很多阻力,比如是否受到重视,是否成立一个专门的测试团队,是否有这样的技术水平,对于测试脚本的维护工作量很大,是否值得维护等等问题都必须考虑。
  避免不适合的自动化测试
  自动化测试并不是适合所有的公司,以及所有的项目。
  定制型项目 为客户定制的项目,维护期由客户方承担的,甚至采用的开发语言、运行环境也是客户特别要求的,即公司在这方面的测试积累就少,这样的项目不适合进行自动化测试。
  短周期的项目 如果项目周期很短,测试周期也很短,那么该项目就不应该做自动化测试。花大量精力建立的测试脚本,如果不能得到重复利用就是一种浪费,也是不现实的。
  业务规则复杂的对象 对业务规则复杂的对象,有很多的逻辑关系、运算关系,自动化测试就很难进行。
  美观、声音、易用性测试 界面的美观、声音的体验、易用性的测试等属于主观方面的,而不是客观的,所以也只能通过人工测试。
  测试很少运行 如果测试很少运行,对自动化测试就是一种浪费。自动化测试就是要不断循环地运行才有效率。
  软件不稳定 如果软件运行不稳定,则会由于这些不稳定因素导致自动化测试的失败。只有当软件达到相对的稳定,没有界面性严重错误和中断错误才能开始自动化测试。
  涉及物理交互 工具很难完成与物理设备的交互,如刷卡的测试等。
  选择适合的自动化测试
  自动化测试之所以能在很多大公司实施起来,主要是它具有适合自动化测试的特点和高的投资回报率。
  产品型项目 每个项目只改进少量的功能,但每个项目必须对那些没有改动过的功能进行反反复复的测试。这样的测试完全可以自动化, 同时可以把新加入的功能的测试也慢慢地加入到自动化测试当中。
  增量式开发、持续集成项目 由于这种开发模式是频繁的发布新版本进行测试,也需要利用自动化测试来频繁的测试。
  能够自动编译、自动发布的系统 要能够完全实现自动化测试,必须能够具有自动化编译,自动化发布系统进行测试的功能。 当然,不能达到这个要求也可以在手工干预下进行自动化测试。
  回归测试 回归测试属于自动化测试的强项,它能够很好的确保是否引入新的缺陷,老的缺陷是否修改。在某种程度上可以把自动化测试工具叫做回归测试工具。
  多次重复、机械性动作 自动化测试的优势就是那些多次重复、机械性动作的测试。
  需要频繁运行测试 在一个项目中需要频繁的运行测试,测试周期按天算,就能最大限度的利用测试脚本,提高工作效率。
  自动化测试的目的在于发现老缺陷,而手工测试的目的在于发现新缺陷。因此,我们应该针自己公司的实际情况来决定是否采用自动化测试,充分利用自动化测试所带来的优势。
  
  手工测试面临挑战
  自动化测试与传统的手工测试在所有的方面都有很大的不同,尤其是在执行测试和产生测试报告的方面,手工测试的劣势就暴露无遗。
  迭代式的开发过程已经显示了比瀑布式开发的巨大好处,取代传统的瀑布式开发成为了目前最流行的软件开发过程。在迭代开发中强调在较短的时间间隔中产生多个可执行、可测试的软件版本,这就意味着测试人员也必须为每个迭代产成的软件系统进行测试。测试工作的周期被缩短,频率被增加。因此,传统的手工测试已经严重的满足不了软件开发的需求。
  随着软件开发过程的进展,测试工作变得越来越繁重,如果使用手工测试的方法,将很难保证测试工作的进度和质量。在这种情况下应用良好的自动测试工具将势在必行。通过使用自动化测试工具,测试人员只要根据测试需求完成测试过程中所需的行为,自动化测试工具将自动生成测试脚本,通过对测试脚本的简单修改便可以用于以后相同功能的测试。
  同时,现代的 GUI 开发技术已经非常先进,它提供给开发人员快速开发的能力。这就意味着开发人员能够非常快速的改变应用程序,并将新的版本交给测试人员进行测试。实际上,很多公司每天都会有多个应用版本产生。如果还是使用传统的手工测试的方法,是根本不可能符合软件快速开发的要求的。
  
  度量测试工具
  ――评估自动化性能测试工具三大指标
   陈彦卓
  
  使用自动化性能测试工具,可以有效缩短测试周期,在新的版本和补丁发布的最后阶段按时交付高质量应用软件。目前常见的自动化性能测试工具如Mercury公司的LoadRunner、IBM公司的Rational Robot和Compuware公司的QALoad等,这些性能测试工具在不同方面分别具有一定的优势,因此用户在选择这些产品时必须建立一种比较合理的评测方法,并根据自己的实际需要选择一种合适的产品。
  功能指标
  对自动化性能测试工具进行有效评估的功能指标主要包括:脚本制作能力、脚本调试能力、场景制作和管理、场景监控、数据分析能力和测试结果管理等等。
  脚本制作能力 脚本制作用于制作性能测试自动化所需脚本,应该同时具备界面录制、手工编制、通信包录制三种方法。
  脚本调试能力 录制脚本后,工具会用某种开发语言生成相应的脚本,这时制作者可以使用调试功能对脚本进行调试、排错、检查变量值,调试方法包括单步执行、设置中断点等。
  场景制作和管理 场景制作是指以脚本的组合形式整体运行,包括制作手工场景、制作目标场景、设置脚本运行位置、定义场景属性等。。
  场景监控 在场景的运行过程中,提供对各服务器、网络设备、应用平台等资源和状态的监控。
  数据分析能力和测试结果管理 提供监控数据的汇总报告、监控数据的精确值、各种图形用于分析被测系统的性能,提供多种报告形式,将监控数据以报告的形式进行组织。
  性能及可靠性指标
  对自动化性能测试工具进行有效评估的性能及可靠性指标主要包括可靠性、易用性和可集成性。
  可靠性 保证不出现死机、数据处理错误、主业务流程断点、软件错误导致数据丢失等现象,否则会导致系统无法运行。
  易用性 菜单、工具栏随所进行的操作变化,无效的菜单项应变灰或隐藏;应具有联机帮助功能,功能所对应的操作都有相应的联机帮助;对用户操作的实时引导,对用户的每一步关键性操作都有相应的提示。
  可集成性 与配置管理工具、项目管理工具、缺陷管理工具集成。
  
  文档指标
  
  对自动化性能测试工具进行有效评估的文档指标主要考察用户文档完整程度、描述与实际功能一致和用户文档的易理解程度。
  用户文档完整程度 用户文档中应包括全部软件功能、业务流程和计算过程的说明,并可以提供在线帮助。
  描述与实际功能一致 用户文档描述的功能与软件实际功能应一致。
  用户文档的易理解程度 用户文档的文字描述应条理清晰、易于理解,用户文档对关键的操作应配以例图说明,用户文档采用中文编写,对主要功能和关键操作应提供应用实例。
  因此,对于自动化性能测试工具进行一定程度的评估,才能作出比较适合自身需求的选择。
  
  相关链接
  
  为什么需要软件测试?
  Standish group 报告表明,80% 以上的项目都是不成功的,或者是因为超过预算或延期未完或缺失功能,或者几种因素都有。此外,30%的软件项目执行得十分糟糕,以至于在完成之前就被取消了。因此,进行软件测试就显得非常必要。
  迄今为止,软件质量仍然主要靠软件测试来验证和确认,而且由于测试工作特别耗费资源,在软件开发的总成本中,用在测试上的开销要占30%~50%。在极端的情况下,例如在关系到人的生命安全的软件中(如飞机控制或核反应监控等软件),测试费用可能相当软件生存周期所有其它阶段费用总和的3~5倍。
  
  软件测试工具选型
  
  IBM Rational Robot:全方位检测平台
  
  Ratioanl Robot 可以帮助用户实现有效的自动化测试,Robot 可以监测到测试人员与应用程序之间的所有交互行为,并可以产生相应的测试脚本。
  目前,Robot 对几乎所有流行的应用环境多有良好的支持和工作表现。尤其是对象HTML、Java和.NET应用、Visual Basic、PowerBuilder、Delphi、Oracle表单和MFC控件(控件最常用在C和C++的应用中)有着非常强大的支持。可以说,使用Robot能过满足几乎所有的测试环境要求。
  通常的情况下,Robot的通用录制机制可以支持多数的自定义控件。但是也存在Robot本身无法访问到被控件的属性或者数据的情况。即使出现这种情况,Robot可以通过其良好的扩展接口来解决,这个扩展接口使IBM Rational的合作伙伴可以扩展Robot的功能,可以支持几乎任何的控件。使测试人员从问题控件中解脱出来,将精力放到测试任务之中。
  
  Borland Optimizeit ServerTrace:性能优化专家
  
  Borland Optimizeit ServerTrace 从根本上对性能管理进行优化,这个过程将遍及J2EE 应用软件在被部署前所进行的测试阶段。通过提供详尽而准确的诊断信息来描述性能问题产生的精确位置和原因,Optimizeit ServerTrace在测试团队和开发团队间建立了强有力的沟通桥梁,其提供的有建设性、明确的反馈信息有助于开发人员在其基础上采取有效行动,最终达到缩短应用软件测试周期的效果。
  Optimizeit ServerTrace为企业级Java 系统的性能表现提供了端到端的可视性,这是一种关键的业务需求。一个简单易懂的途径是在测试和开发团队中对相关性能问题进行隔离、文档记录和有效沟通,降低了在部署阶段形成风险的可能。Optimizeit ServerTrace降低风险和节省开发、部署、运行J2EE系统的费用通过提供全面的技术,以及对J2EE性能的高度洞察力,可以帮助用户加速企业应用软件生命周期中的测试阶段。
  
  Mercury WinRunner:企业级应用的保护者
  
  Mercury WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。
  随着时间的推移,开发人员会对应用程序做进一步的修改,并需要增加另外的测试。使用WinRunner,用户不必对程序的每一次改动都重新创建测试。WinRunner可以创建在整个应用程序生命周期内都可以重复使用的测试,从而大大地节省时间和资源,充分利用你的测试投资。
  
   Telelogic TAU第二代:开放的测试环境
  
  Telelogic TAU 第二代是一套面向实时及其他复杂系统与软件开发的集成的、灵活的工具。它包含三个最新的、最强大的技术用来加速大规模软件开发和测试:统一建模语言 (UML) 及它的许多最新修订版本中的特性,UML2.0;功能强大的测试语言TTCN-3 和新的构造系统的方法:Model Driven Architecture (模型驱动构架)。这三个新的业界标准结合成TAU 的已经过认可的软件开发平台,形成了一个系统,一个一流的稳定可靠的工具解决方案。
  Telelogic TAU是一个开放的开发环境,基于标准如UML、SDL、TTCN 和XML。TAU还是流程独立的并且可以和任何已有开发流程,无论是内部的还是公开的进行平滑集成。为形成一个完整灵活的开发环境,TAU提供了和其他领先工具的紧密集成,包括需求管理系统,如市场上的Telelogic DOORS和领先的变更和配置管理解决方案,如Telelogic SYNERGY。
  
  Compuware QARun:应用程序的加速器
  
  Compuware QARun是一种自动化的捕捉和回放工具,不论是主从应用系统、电子商务到ERP与CRM,都提供重要业务的功能测试。透过测试脚本的开发和测试执行的自动化,QARun帮助测试人员和 QA管理人员更有效地工作,以加速应用程序开发与上线。
  QARun集中储存所有测试对象的定义,因此这些对象可以重复被使用测试。这些对象包括测试脚本、检查、事件与记录等。提高测试可再用性的中心数据库所有的测试脚本、检查、事件和物件定义都储存在 QARun的中心数据库(Central Repository),该资料库有助于修改的方便性并维护测试成果。该数据库可选择存放于Microsoft Access、SQL Server或Oracle。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3