掌握自动化测试的技巧

自动化测试是什么

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

自动化测试应用场景

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

一、熟练的编程能力

对于一个优秀的测试人员来讲,拥有熟练的编程能力是十分必要的,如果没有熟练的编程能力,就无法编写逻辑自动化测试脚本,大大降低了测试的效率。掌握编程方面的背景知识不仅可以简化自动化脚本,还可以改善与开发人员的沟通。不仅如此,一旦单元测试完成,还可以参与深入的功能测试。要具备这种技能,需要做到两个方面:

(1)学习好设计框架

需要对c#、Python、Java、Perl、SQL、XML以及HTML和CSS有全面的理解和编码技能。尽管如此,精通哪种语言取决于开发人员在项目中使用的编程语言

(2)能够熟练的创建测试脚本

在这个阶段,是否应该具有编程知识取决于所使用的自动化框架。如果项目正在使用SpecFlow或Cucumber进行测试自动化,那么可以用简单的英语编写脚本,而不必考虑后端逻辑或编码。只有对Selenium web驱动程序有足够的了解就足够了。但是,如果正在使用UFT或QTP,则应该对编程有全面的知识。

二、具备优秀的手动测试技能

要成为一名熟练的自动化测试人员,还需要具备敏锐的眼光和手动测试的经验。请记住以下几点

(1)眼睛有时比机器精确

当某样东西在测试时看起来有点不对劲时,人眼可以很容易地检测出来。使用自动化脚本很难检测到可视化问题。从用户的角度查看软件,可以帮助测试人员识别UI和可用性测试,以发现bug,这是在自动化脚本中难以编程的特性。

(2)人工测试也是必不可少的

自动化测试是一台机器,机器只做它被要求做的事。复杂的测试需要大量的准备和计划,也有一定的边界。然后脚本遵循协议并相应地测试应用程序,特别测试帮助测试人员回答诸如“当我遵循X而不是Y时会发生什么”之类的问题。它帮助测试人员使用最简单的方法进行思考和测试,而简单的方法很难在自动化脚本中编程。即使是可视化的跨浏览器测试也需要手工方法。而不是取决于一个自动化的脚本找到视觉差异,你可以手动检查的问题通过真正的浏览器和设备上的测试。

(3)自动化测试可能存在漏洞

自动化脚本就像另一段代码。无论多么优秀的程序员,错误总是存在的。在整个测试过程中进行手动操作,而不是完全依赖自动化,这将确保在执行脚本之后,测试结果不会出现问题。

三、需要掌握使用自动化工具的专业知识

在当前时代,行业要求速度和质量,客户都希望软件厂商能够在短时间内交付高质量的无bug应用程序。这就是自动化测试应用趋势上升的原因,每个厂商都希望自动化测试人员能够具备以下自动化工具的知识和经验。

(1) Selenium

Selenium 可能是网页应用中最流行的开源自动化测试框架,也是其他开源自动化测试工具比如 Katalon Studio,Watir,Protractor 和 Robot Framework 的核心框架。Selenium 支持多系统环境(Windows,Mac,Linux)以及多种浏览器(Chrome,FireFox,IE 以及无头浏览器(没有界面))。它的脚本可以由各种各样的编程语言编写,比如 Java,Groovy,Python,C#,PHP,Ruby 以及 Perl。

(2) 自动化测试平台-优测

优测是腾讯旗下的移动云测试平台,拥有50余名测试领域专家,300余人专业测试团队,10余年终端测试服务经验,提供兼容性测试、自动化测试、云真机,设备分享等多种服务方式,不仅支持标准能力输出,也可提供定制化测试解决方案,帮助企业打造完备的DevOps测试体系,以及具有互联网思维的质量团队。

掌握自动化测试的技巧