自动化测试成熟度模型
这里讨论一下不同的脚本技术及用途。接下来要讨论的这些技术并不是相互排斥的,事实恰好相反,它们是相辅相成的,每种种脚本技术在支持脚本完成测试用例的时间和开销上都有各自的长处和短处。应该注意到,对于软件测试来说,使用哪种脚本技术并不是最主要的,脚本所支持的实现测试用例体现的整体考虑才是最重要的。
按照自动化测试的成熟度模型,自动化测试可被划分为5个级别:
级别1:录制和回放
这是使用自动化测试的最低的级别。
优点:自动化的测试脚本能够被自动地生成,而不需要有任何的编程知识。
缺点:会产生大量的测试脚本,同时当需求和应用发生变化时,相应的测试脚本也必须重新录制。
用法:当测试的系统不会发生变化时,可进行小规模的自动化。
级别2:录制、编辑和回放
在这个级别中,测试人员使用自动化工具来捕获想要测试的功能。将测试脚本中的任何测试数据,如名字、账号等,从测试脚本的代码中完全删除,并将他们转换成为变量。
优点:测试脚本开始变得更加完善和灵活,并且可以大大减少脚本的数量和维护的工作。
缺点:需要一定的编程知识。频繁的变化可能会引起“意大利面条式的代码”(可读性差,很难确定它到底完成什么工作。很多代码开始还是结构化的,但后来不断的修改之后,逐渐失去了结构性),并且变更和维护几乎是不可能的。
用法:当进行回归测试时,被测试的应用有很小的变化,例如仅是针对计算的代码变化,应用程序界面和逻辑没有发生变化。测试人员可以使用这种技术来快速编制一些测试脚本以检验脑子里的想法来探索预定的测试设计。通常如果适当的软件配置管理(SCM)良好的内部构建设计相结合时,使用级别2的技术已经足够了。
级别3:编程和回放
这个级别是多个被测试软件版有效使用测试自动化的第一个级别。测试经理需要在实际投资开始前确保测试团队和客户对项目有充分的信心和安全感。如果没有经过技术培训,测试人员将不具备到达这个级别的能力。因为在这个级别中,测试人员要很好地理解自动化测试工具所有的测试功能,还要掌握测试脚本语言知识。
优点:确定了测试脚本的设计,在项目早期就可以开始自动化测试。测试人员能够在项目的早期就开始进行测试脚本的设计,与开发人员一起研究他们认为可能会存在的问题的地方,确保了开发人员把精力放在设计得到可用于测试的方案上。
缺点:需要测试人员具有很好的软件技能,包括设计、开发等。
用法:大规模的测试用例被开发、执行和维护的专业自动化测试。
级别4:数据驱动的测试
对于自动化测试来说这是一个专业的测试级别。测试人员拥有一个强大的测试框架,这个测试框架能够基于根据被测试系统的变化快速创建一个测试脚本的测试功能库。维护成本相对比较低,而且测试中还会使用到大量的真实的数据。
优点:测试人员能够维护和使用良好的测试数据,这些数据有效地模拟真实生活中的数据。
缺点:要求测试人员具备软件开发的技能,能够访问相关的测试数据。
用法:可用于大规模的测试用例被开发、执行和维护的专业自动化测试。该级别对测试数据要求较高。一个测试人员要花费一些暗为识别在哪里收集数据和收集哪些数据。使用现实生活中的数据是最基本的,这些工作完成后,测试人员才能够通过使用现实的数据来运行大量的测试。使用良好的数据将为测试人员提供发现错误的能力,而这些错误通常在项目后期才会被发现或者被客户发现。
级别5:关键字驱动的自动化测试
这是自动化测试的最高级别,主要的思想是将测试用例从测试工具中分离出来。这个级别要求有一个具有高技能的测试团队,这些测试人员能够将测试工具的知识与他们的编程能力结合起来,这个团队负责在测试工具中生成并维护测试方案,能够使测试工具从外部的来源,例如Excel表或者从数据库中执行测试用例。这是一种称为DDE的概念,测试人员关注点放在Excel表中创建测试用例上面,保存和使用一些特定动作的关键字,执行过程是从Excel表中读取测试用例,并将测试用例转换成为测试工具能够理解的形式,然后使用不同的测试功能来执行测试。
优点:测试用例的设计被从测试工具中分离出来,测试人员可将关注点放在设计良好的测试用例上。允许测试用例的快速执行和基于用例的评估。
缺点:需要一个熟悉工具和具有开发技能的测试团队,以提供并维护测试工程(框架)
用法:这种专业的测试自动化能够将技能的使用达到最大化。使用关键字驱动的测试框架,测试人员可以使用Excel来生成实际的测试用例。这个级别对于那些按照正规使用测试用例的组织或者项目来说是非常适合的。测试人员可以集中精力来生成第一个包含被需要“对象映射”的测试用例(主流程)。如果测试用例设计不错,需要做的工作也非常简单。根据测试应用的复杂程序,通常这会花费大约半天到一天的时间。后续的每一个测试用例大概会花费15~20分钟的时间,因为通常大多数测试用例可以复制已有的测试用例,并对其进行必要的修改,通常这种修改工作量不大。关键字驱动框架能够通过使用测试用例,使紧密的、并行的测试用例开发变为可能。
目前,大多数企业中,测试工具还处于数据驱动阶段,或者数据驱动到关键字驱动的阶段。
你开始关键字驱动了吗?