Carl3300013 发表于 2011-7-28 15:05:03

How to Squeeze the Most Out of Your Automated Testing

关于作者:乔纳森林多
乔纳森林多是Replay Solutions的创始人之一,热衷于建立提高支付性软件方式。他的研究已经有许多申请专利的技术,包括高性能的网络,应用虚拟化,和计算机程序的记录/重播。作为一个工程师和企业家,他拥有超过15多年的工作经验,曾就职于包括北电网络,银河网络,和Muse的一些公司。

原文出处:http://test.techwell.com/articles/weekly/how-squeeze-most-out-your-automated-testing

Google翻译的全文: 
  如何挤你的自动化测试的最

  乔纳森林多|星期一,2011年7月25日。

  摘要:乔纳森林多介绍了利用开源和传统的,独立的软件供应商采购的软件自动化测试基础设施的例子。此外,他还讨论了扩展的自动化测试的价值转化过程中发现缺陷,减少文件,复制和故障诊断自动化测试产生的缺陷??,需要努力解决的缺陷的新技术。

  大多数组织仍然使用手工测试,为他们寻找应用程序错误的主要方法。很难想象,一个软件产品,不会要求在一定程度上的手动测试,即使是我们推动越来越多的在我们的软件生命周期的自动化。这就是说,工具来帮助生成,负载,和管理自动化测试不断完善,并使用自动回归测试是现在许多开发和QA流程的重要组成部分。除了显而易见的节省劳动力,有推进测试自动化的主要趋势:

  敏捷开发方法,从而增加了代码发布的频率和收缩测试Windows

  需要自动化测试,以有效的持续集成

  测试文档和可重复性的合规性和审计要求

  日益复杂和难以复制的生产环境,如多层Web应用程序和部署

  在采购和外包测试和发展,最经常地理上分散的千变万化的组合

  此外,一个重要的和相关的趋势是DevOps。在最近发布的2011DevOps趋势调查,50%的应答者表示,他们的组织使用某种形式的DevOps。61%的重大更新版本,至少每月一次。62%采用敏捷开发。有了这个代码的开发和部署速度,自动化测试是绝对必要的,以实现迅速和成功的产品发布目标。

  对于我们这些负责提供软件的好消息是,很好地理解基本的自动化测试基础设施是一个典型的框架可以从开源组件组装。中存在的一些功能强大的工具的例子包括:

                                                功能                         产品

                                              项目管理                     Maven的

                                          构建自动化工具                   蚂蚁

                                          测试自动化基础设施            iValidator

                                                                  自动化测试执行                  硒

  一旦一个组织已经把这些件,测试覆盖率和使用情况在二十四小时内,可以测试和验证的情况下是显着的水平。该组织经常可以做到每天通过多元回归一个合理的投资在硬件,虚拟化,云计算周期。不过,虽然这可能有助于缩小检测部分的缺陷管理,挑战仍然是各地的下游,找到问题的根源和解决自动化系统是由检测到的问题的过程。

  IDC估计,错误消耗37%的开发人员的工作周。在典型的开发人员的薪金,这意味着到每年在大型组织中的数以百万计的美元。下面的是发现错误后,所花费的时间分析:

      步骤                              估计花费的时间比例                           挑战

质量保证发现缺陷,日志和文件                      20%          收集足够的信息进行充分沟通的问题QA和开发之间的二十四小时的延误,由于地上上分散的团队

开发人员重现缺陷                                  20%         缺乏访问QA测试环境 难以重新建立用户的负载   网络和数据库条件

开发分离的根源                                    30%                     没有足够的文件   “工程在我的机器上”

开发人员修复,验证,并提交更新                  30%                  真正根源的条件和环境因素的不确定性   多试图在决议

  因此,除了在解决缺陷的延迟表示出来的口袋和机会成本,,它有可能明显减慢释放和部署。

  QA测试的自动化,一般不会攻击这个问题的一部分。事实上,自动化测试有时加剧了开发商的挑战,因为它是难以完全描述是什么原因造成的问题和资源复制的测试环境,往往是不可用的。日志文件是一些帮助,但很少,因为它产生的开销和高输出量,它生成启用调试级别的日志记录。只需在一个虚拟机捕获一切的问题推给开发者,他们必须再复制与希望得到更多的调试信息的测试。

  利用目前的自动化的基础设施,以攻击查找和修复问题的关键是要扩展的体系结构与现有的或新增加的功能以上所述。Examplesofthisinclude:这方面的例子包括:

  接口与该组织的缺陷跟踪系统的自动化测试系统,以便分配给问题的开发人员有尽可能多的信息,而无需重建原始测试用例。如硒,JMeter中,QuickTest临等产品提供接口来指定什么样的信息发生故障时,应收集和利用的工具,如Bugzilla和JIRA的API无缝地自动生成故障单,数据包的。

  凭借QuickTestPro的,Wati??r,硒等产品,不断捕捉除了自动化测试库手动测试用例。当一个应用程序记录工具(见下文)相结合,这将增加没有压倒性的开发商在产品质量的信心。

  附加的应用程序记录的能力,为他们进行测试,以增加收集的缺陷数据的水平和精度的目标。如CA的Introscope产品可以提供事务级的信息,如Java和的IntelliTrace为ReplayDIRECTOR更精确的录像机。NET可以提供详细的缺陷信息,没有从标准的执行环境。

  利用监控工具来添加缺陷跟踪信息。硒现在集成与应用记录,使插入测试记录,在开始测试,测试结束的“标志”,当任何外边界或意外的情况发生。然后,开发人员可以使用这些标记时重播测试记录,以查明缺陷发生在源代码级。

  作为缺陷测试记录“的文件记录。”通常情况下,他们不仅会记录应用程序,因为它是测试,但与缺陷相关的客户端的活动,还可以捕获屏幕截图。当应用程序的详细记录,包括在缺陷报告中,屏幕抓取和“三十四个步骤来重现”,常常不再需要连接到bug报告。

  自动化应用程序测试已迅速演变成今天的高速度发展和部署环境中的基本??功能。许多产品现已实现自动化测试过程,并抵达不仅以减少测试时间,但开发人员的查找和修复过程。缺陷跟踪系统的紧密集成简化了沟通。积极捕捉手动测试用例添加到测试库,扩展的自动化测试套件的覆盖范围。而且,应用程序记录工具的使用,大大扩展无缝捕获详细的调试信息,同时提供高度精确的缺陷文件自动化调试过程自动化测试的价值。

  关于作者:乔纳森林多

  乔纳森林多是重播解决方案的创始人之一,是热衷于提高软件方式建成并交付。他的研究已导致许多专利申请的技术包括高性能的网络,应用虚拟化,和计算机程序的记录/重播。他拥有超过15多年的经验,作为一个公司,包括北电网络,银河网络,和Muse公司的工程师和企业家。

Carl3300013 发表于 2011-7-28 15:13:40

本帖最后由 Carl3300013 于 2011-7-29 10:22 编辑

申明:由于本文谷歌翻译错误太多,所以未用红字标注,译者能力有限,如有部分错误,敬请谅解。

校对后的文章:  
  如何最大的“榨出”自动化测试

  乔纳森林多|星期一,2011年7月25。

  摘要:乔纳森林多介绍了开源和传统的自动化测试的基础设施利用
的例子,和独立的软件供应商采购的软件。此外,他通过在转化过程中发现缺陷从而解决,并减少工作所需的文件,以及复制,和排除有缺陷的自动化测试的故障,从而来讨论推广价值的自动化测试新技术。

  现在大多数团队仍然使用手工测试来作为他们寻找应用程序错误的主要方法。很难想象,一个软件产品,在某种程度上不需要手动测试,即使是我们越来越快的推动自动化软件生命周期。也就是说,用工具来帮助生成,负载,和管理自动化测试的不断完善,并使用自动回归测试是现在许多开发和QA流程的重要组成部分。除了显而易见的节省劳动力外,更有一些大的推进自动化测试的趋势:

  使用敏捷开发方法,从而增加了代码发布的频率和收缩Windows测试

  需要自动化测试才能有效的持续集成

  测试文档和可重复性的遵守和审计要求

  日益复杂和难以复制的生产环境,如多层Web应用程序和部署

    不断变化的采购和外包测试以及发展结构,是最常见的分布

  此外,一个重要的相关趋势是DevOps。在最近发布的2011DevOps趋势调查中,50%的应答者表示,他们的团队使用某种形式的DevOps。61%的表示更新重大版本,至少每月一次。62%的采用敏捷开发。有了这个代码的开发和部署速度,自动化测试是绝对有必要用来以迅速实现成功产品的发布目标。

  对于我们这些负责提供软件的人的好消息是,对于基本的自动化测试基础设施可以很容易的理解,而一个典型的框架可以从开放源码组件组装。一些功能比较好的工具包括:

                                                功能                         产品

                                              项目管理                     Maven

                                          构建自动化工具               Ant

                                          测试自动化基础设施            iValidator

                                             自动化测试执行                Selenium

  一旦一个团队能在二十四小时内测试并验证测试覆盖率水平和用例场景,两者同时做到是很重要的。该团队经常可以通过每一天来完成多元回归与合理的硬件投资,虚拟化,或云计算周期。不过,虽然这可能有助于缩小检测部分的缺陷管理,但是挑战依然在下游过程。在下游过程中,要找到被检测的自动化系统问题根源并解决。

  IDC估计,bug消耗开发人员37%的工作周。包括典型的开发人员的薪金,这意味着到每年在大型团队中的数以百万计的美元。下面的是发现错误后,所花费的时间分析:

  因此,除了在解决缺陷的延迟所表示出来的现金和机会成本外,它有可能明显减慢发布和部署。

  QA测试的自动化,一般不会解决这个部分的问题。事实上,自动化测试有时加剧了开发商的挑战,因为它是难以完全描述是什么原因造成的问题,和资源复制的测试环境往往是不可用的。日志文件是有一些帮助,但很少,因为开销和高输出量的产生,使他们把捕获在虚拟机上的一切问题都推给开发者,而那些开发者们必须复制测试,与希望得到更多的调试信息。

  利用目前的自动化的基础设施,来解决查找和修复问题的关键是,上述扩展体系结构与现有的或新增加的功能。这方面的例子包括:

      步骤                              估计花费的时间比例                           挑战

质量保证发现缺陷,日志和文件               20%          收集足够的信息进行充分沟通的问题QA和开发之间的二十四小时的延误,由于地上分散的团队

开发人员重现缺陷                                  20%         缺乏访问QA测试环境 难以重新建立用户的负载   网络和数据库条件

开发分离的根源                                    30%                  没有足够的文件   “工程在我的机器上”

开发人员修复,验证,并提交更新               30%                  真正根源的条件和环境因素的不确定性试图多分析



  将自动化测试系统与该团队的缺陷跟踪系统建立接口,以便提供给问题的开发人员尽可能多的信息,而无需重建原始测试用例。当如Selenium,JMeter,QuickTestPro等产品提供给指定的信息收集的接口发生故障时,利用API工具,如Bugzilla和JIRA,把自动生成的数据故障单进行无缝打包。

  凭借QuickTestPro,Watir,和Selenium 等产品,不断捕捉除了自动化测试库的手动测试用例。当一个应用程序记录工具(见下文)相结合的时候,这将会增加小部分开发商在产品质量的信心。

  附加一个的应用程序记录能力的指标作为他们测试增加的程度和精度的缺陷数据的收集。如CA的Introscope产品可以提供事务级的信息,更精确的录像机,如Java的ReplayDIRECTOR。Intellitrace可以为.NET提供详细的缺陷信息,而这些缺陷信息不是从标准的执行环境得到的。

  利用监控工具来添加缺陷跟踪信息。Selenium现在结合应用机,使插入“标记”到测试记录里的开始测试,当任何外界或意外的情况发生时。开发人员可以使用这些标记重播测试记录,以查明缺陷发生的源代码级。

  作为缺陷测试记录的“文件记录”,通常情况下,由于是在测试过程中,他们不仅会记录应用程序,也会捕捉屏幕截图的客户活动的相关缺陷。当应用程序的详细应用记录,被包括在缺陷报告,屏幕抓取和“三十四个步骤来重现”中时,通常已不再需要连接到bug报告。

  自动化测试已迅速演变成今天的高速发展和调度环境中的一个必不可少的功能。许多产品现已实现自动化测试过程,不仅减少测试时间,也使开发人员的查找和修复过程进行简化。缺陷跟踪系统的紧密集成简化了沟通。积极的捕捉手动测试用例用以添加到测试库已经发展到自动化测试套件。而且,使用测试记录工具,大大的扩展了自动化测试的无缝捕获详细的调试信息,并更准确的提供缺陷文档自动化的调试过程。

wla7594304 发表于 2011-7-28 21:01:28

回复 2# Carl3300013
自动化做到好,真的很有成果。

个人感觉,自动化测试需要越来越智能,全面,效率...

目前的问题是 实现自动化的过程 ,大部分的企业 不能 有一个有效 合理 科学的方法 ...

再者在实现的过程中 所消耗的时间和资源 怎么让公司 或者 客户去认可,以及接受...

magicwin 发表于 2011-8-2 22:09:59

大善
页: [1]
查看完整版本: How to Squeeze the Most Out of Your Automated Testing