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