|
转自<中国计算机报>总第1541期 年第66期
当今,企业必须对关键应用展开全面的功能测试,才能确保所有的业务流程能如期运作。严格的功能测试,是决定应用开发成功与否的关键,如何在紧缩的预算下,加快测试流程的速度、提升测试的正确性和完整性,成为软件开发人员、QA小组和经理们关注的话题。本文将为您介绍开展测试自动化的最佳途径,这种自动化功能测试的优势和挑战,帮助企业从业务流程测试的速度、质量和ROI三个角度全面提升功能测试的效率。
通过对功能测试的关键组成部分实现自动化,企业可以赶上发布进度,更全面、更可靠地展开测试,正确验证业务流程功能,并以出色的在线运作能力,最终赢得更高的收益和更高的客户满意度。但是,在开始测试自动化项目之前,必须全面调查和了解自动化功能测试的前景的一些疑问。
自动化 功能测试流程所必须
随着IT机构面临压力日益加剧,管理层希望IT能实现新的功能,开发新的业务机会,并通过软件形成极具竞争力的优势。这就意味着会有愈来愈多的业务应用开发项目出现,但是其进度将日益紧迫,预算和资源也将更加有限。
与此同时,管理层也逐渐意识到,Web服务、在线交易流程和企业资源规划(ERP)应用不仅重要,而且它们还决定了企业的收益获取能力。
在以下图表中可以显示出,一个典型的机构会依靠多个应用,这些应用运行在不同的操纵系统上、使用多个不同的前端客户(front-end clients)、涉及大量的业务流程,并且和多个独立的数据包产生交互作用。
全球业务优化科技(BTO)领导者美科利(Mercury)公司调查显示,当软件失败后,其代价将是及其高昂的——销售额的损失导致员工积极性、客户满意度的丧失,开发和QA小组的士气受损。在开发周期中,发现缺陷的时间越晚,代价将越高昂。实现自动化是提高软件测试流程的速度、正确性和灵活性的关键所在,能帮助企业及早地发现和修复更多的缺陷。
手动功能测试面临挑战
通过对传统手动功能测试流程的分析调查,我们发现了以下的不足之处:
● 测试花费的时间较长。有限的IT资源,加上交付日期紧迫,使费时的手动测试很难有效地实现业务的目标。测试人员和开发人员在实施手动测试时,必须对测试案例的每个步骤展开冗长的文档记录,会消耗大量宝贵的时间和资源。根据行业分析机构Aberdeen Group的调查显示,90%的IT项目交付时间推迟,导致该问题的主要因素就是执行了手动测试。
● 测试覆盖面不完整。平台、操作系统、客户设备、业务流程和数据包的激增,为手动测试流程带来了空前的复杂性。当测试人员开始组合多个数据包、操作环境和业务流程时,将会产生无数个亟待执行的、用于验证应用某个功能点的测试案例。这样,要验证所有的排列组合就显得异常困难。
● 导致较高的风险。相比计算机驱动的流程,手动测试流程会导致较高的错误风险和勘误,不可能做到多次重续面面俱到的测试。
测试自动化的优势
相对手动测试的不足,以美科利公司为代表的自动化功能测试解决方案优势逐渐彰显:
● 实现更快的执行速度。在执行功能测试脚本方面,计算机可以在较短时间内展开更多的测试,在规定时间内将可以测试更多应用,并按时交付更多的项目。和人工不同的是,计算机可以7×24小时不停地运作;它们不会感到疲惫和厌倦;不会主观设定工作内容。
● 推动更为广泛的测试覆盖面。自动化测试产品支持在所有的普通浏览器、操作系统中执行测试脚本。测试自动化产品拥有集成的、数据驱动的电子数据表单功能之后,开发人员和QA小组就能执行计算功能、操作数据包,并且快速创建多个测试循环来扩展测试案例的范围。有了自动化测试工具,就能快速形成任何一种交易组合和用户负荷。
● 实现更高的测试正确性,并及早发现更多的错误。测试自动化使开发人员更便捷地复制和文档记录软件缺陷,从而推动开发流程的进行,同时确保所有环境、数据包和业务流程的正确功能点。
● 提供统一的流程。引进自动化测试推动测试小组形成统一的流程,实现更高层次的测试一致性和更好的文档记录。
● 促进测试的重复使用。一旦测试脚本录制完成,开发人员在应用发生变更时,就能使用和重复使用脚本,并在测试系列中添加脚本。对于每个应用修改,开发人员无须重新创建脚本来测试相同的功能点。
● 支持ERP/CRM实施。随着愈来愈多的客户实施ERP/CRM解决方案,执行端到端回归测试的频率和重要性也将日益提升。
界定是否实施自动化测试的方法
通常,自动化测试的目标主要集中在关键的业务流程、复杂的应用,以及组成这些流程和应用的用户案例上。如果一个企业每天要调用多个软件测试人员,花费很多时间进行测试,但是仍然存在质量和功能问题的话,那么该企业起用自动化测试必将受益匪浅。
美科利认为,是否对测试流程实行自动化取决于对ROI的考虑。但如果应用需要多个构建(builds)/补丁/修复;需要对大量的软件或硬件配置进行测试;需要支持多种并发用户时,实现自动化一定会取得积极的回报。此外,如果测试过程中涉及重复任务,如数据上传、系统配置以及应用需要满足特定的服务水平协议(SLA)时,自动化测试必将节约大量的时间和资源。
计算任何一项投资的ROI可以通过以下简单的公式:
ROI=投资的净现值/初始总成本
自动化测试流程的实现成本是有形的,但是其净现值却包含多种无形的因素。最佳方式就是尽可能精确地确定硬钱成本(hard-dollar costs),然后将该成本和实现自动化测试后所取得的硬钱和软钱(soft-dollar)总体利益相比较,得出自动化测试的ROI。
一般的在ROI计算中所考虑的硬钱成本包括:购买成本:购买自动化软件的成本;硬件成本:功能测试所需的硬件成本。通常,如果测试人员有权限进入一个标准的、具有Ethernet端口的桌面计算机或工作站的话,功能测试中就不需要具有特定目的的硬件;人力成本:包括培训人员编写测试案例或构建手动测试的支出。还需包括招聘、雇用、支付,以及保留熟练QA工程师所需的开支;培训成本:根据所选择的测试自动化产品,用户可能需要大量的培训来熟练编写自动化测试脚本。或者,企业会选择让专业服务公司来协助创建初期的自动化测试。
在衡量自动化测试的潜在利益时,关键在于要看到无形的收益,如测试人员的士气和工作满意度不断提高,客户满意度和忠诚度得到提升,以及最终用户对于可靠软件的信任度进一步得到巩固。
评估自动化测试软件:确定需求
许多供应商都提供测试自动化产品。每个解决方案都有其强项和弱点,具有特定的属性和市场定位。每个企业的特定需求决定了对产品的选择,但是,包括美科利在内的任何一个测试自动化产品中,都需要包括几点重要的能力:
● 自动化测试的“无脚本”表现:产品必须提供一种“点-击”(point-and-click)界面,用于进入和作用于被测应用组件——这完全不同于用多行脚本来展现的形式。测试人员应该能直观再现业务流程中的每个步骤,直接观测和修改测试案例。这样就能缩短测试人员的学习周期,帮助QA小组满足紧迫的发布期限。
● 集成的数据表格:自动化功能测试的关键优势之一就是能在系统中快速导入大量的数据。但是,更为重要的是能够处理数据包,执行计算功能,并且用最少资源,快速创建上百个测试循环和排列组合。企业所需要的产品应该能够提供集成的电子数据表,实现强大的计算功能。
● 清晰、简明的报告:如果测试结果难以理解和领会,运行大量的测试也只能获得少量的利益。测试产品应该能自动生成报告,显示测试运行的所有方面,以易读的格式解释测试结果。报告应该详细说明应用错误发生的方位,以及所使用的测试数据类型;提供每个步骤的应用截屏,用于标识出任何存在的差异;提供每个检查点通过或失败的详细解释。另外,这些报告还应该在整个QA和开发小组中,不作任何修改地实现共享。
美科利功能测试解决方案
全球业务优化科技(BTO)软件的领导厂商美科利(Mercury)对实施自动化功能测试拥有自己独特的解决方案。目前市场上最为成熟且简单易用的功能测试解决方案是美科利QuickTest Professional和美科利WinRunner,通过这两款解决方案实施自动化功能测试IT小组将快速发现缺陷,确保应用在上线之前正确运行。
美科利QuickTest Professional是美科利用于创建功能和回归测试系列的高级自动化测试解决方案。它利用一种创新的、零配置、关键词驱动的方式来实现自动化,使测试人员能使用自然语言来创建测试,验证用户的交互行为,确保业务流程按照设计要求运行。它是行业最佳的功能和回归测试自动化解决方案,适用于每种软件应用和环境。它使测试人员能自动捕获、验证和重放用户交互行为,以发现应用缺陷。
美科利WinRunner是业界最常用的功能测试解决方案。目前,有24000多家企业和250000多位QA专业人员使用这种强大的解决方案。美科利WinRunner自动捕获、验证和重放用户交互行为,使测试人员能发现缺陷,确保业务流程直至部署阶段都能顺畅运行,并保持可靠的性能。
总结
实施自动化功能测试,企业可以显著提升测试流程的速度和正确性,并且在降低风险的同时,从软件项目中获取更高的投资回报。美科利解决方案使机构能全面优化软件质量,在客户的环境不断发展时同时,管理和控制应用开发和测试过程中的风险,通过完善的功能测试解决方案来实现持续的收益。 |
|