“录制回放”的方法是简单的,也是脆弱的,但是它的开发成本很低,然而维护成本很高,因此总体成本也会很高。使用先进的关键字驱动测试的方法,则维护成本会很低,但是开发成本会很高,因此总体成本也会很高。测试经理需要在这些方法中作出明智的选择,以便把总体成本尽量降低。(~说明几种方式是可以并行存在于同一个测试项目中的吧~)
编写脚本的方法
不同的自动化测试脚本编写方法主要有:
1. 线性的
2. 结构化的
3. 共享的
4. 数据驱动的
5. 关键字驱动的
线性脚本编写方法 (~此方法可以通过执行前备份数据库,执行完毕后恢复数据库的最原始方法来解决,低成本省时省力,但同样,这样做,也是一锤子买卖,极端情况下使用~)
线性脚本编写方法是使用简单的录制回放的方法,测试工程师使用这种方法来自动化地测试系统的流程或某些系统测试用例。它可能包含某些多余的、有时候并不需要的函数脚本。
优缺点:
1. 是一种非结构化的编程方式
2. 测试用例由脚本定义
3. 非常低的开发成本
4. 测试人员所需要的编程方面的技巧几乎可以忽略
5. 不需要计划、设计
6. 测试数据在脚本中是硬编码的
7. 脚本会很脆弱,因此维护成本会很高
8. 没有公用的脚本,因此可能造成重复劳动
结构化脚本编写方法 (~略微强于第一种纯录制的方法~)
结构化脚本编写方法在脚本中使用结构控制。结构控制让测试员可以控制测试脚本或测试用例的流程。在脚本中,典型的结构控制是使用“if-else”, “switch”,“for”,“while”等条件状态语句来帮助实现判定、实现某些循环任务、调用其它覆盖普遍功能的函数
优缺点:
1. 是结构化的脚本编写方法
2. 测试用例在脚本中定义
3. 编程的成本要比线性脚本编写方法略为高一点
4. 需要测试员的调整编码技巧
5. 需要某种程度上的计划、设计
6. 测试数据也是在脚本中被硬编码
7. 因为相对稳定一点,所以需要相对少的脚本维护,维护成本比线性脚本编写方法的要相对低
8. 除了编程知识外,还需要一些脚本语言的知识
共享脚本编写方法 (~开始强调方法、类等概念,增强复用性,降低开发成本~)
共享脚本编写方法是把代表应用程序行为的脚本在其它脚本之间共享。意味着把被测应用程序的公共的、普遍的功能的测试脚本独立出来,其它脚本对其进行调用。这使得某些脚本按照普遍功能划分来标准化、组件化。这种脚本甚至也可以使用在被测系统之外的其它软件应用系统。
优缺点:
1. 脚本是结构化的
2. 测试用例在脚本中定义
3. 开发成本相对于结构化脚本编写方法来说要降低一些,因为减少了很多复制的劳动
4. 需要测试员的调整代码的编程技巧
5. 由于脚本需要模块化,所以需要更多的计划和设计
6. 测试数据也是硬编码的(~一套数据写死在脚本里~)
7. 脚本维护和维护成本要比线性脚本编写方法的相对低
数据驱动脚本编写方法
这种方法把数据从脚本分离出去,存储在外部的文件中。这样脚本就只是包含编程代码了。这在测试运行时要改变数据的情况下是需要的。这样脚本在测试数据改变时也不需要修改代码。有时候,测试的期待结果值也可以跟测试输入数据一起存储在数据文件中。
优缺点:
1. 脚本是以结构化的方式编程的
2. 测试用例由测试数据或脚本定义
3. 由于脚本参数化和编程成本,这种方法的开发成本跟共享脚本编写方法比较要相对高
4. 需要测试员较高的代码调整方面的编程技巧
5. 需要更多的计划和设计
6. 数据独立存储在数据表或外部文件
7. 脚本维护成本较低
8. 推荐在需要测试正反数据的时候使用 (~推荐对数据种类、格式验证要求比较严格的测试中使用~)
关键字驱动脚本编写方法
这种方法把检查点和执行操作的控制都维护在外部数据文件。因此测试数据和测试的操作序列控制都是在外部文件中设计好的,除了常规的脚本外,还需要额外的库来翻译数据。是数据驱动测试方法的扩展。
优缺点:
1. 综合了数据驱动脚本编写方法、共享脚本编写方法、结构化脚本编写方法
2. 测试用例由数据定义
3. 开发成本高,因为需要更多的测试计划和设计、开发方面的投入(~适合公司模式~开始可能入不敷出,但是随着时间和项目的进展效率会越来越高~)
4. 要求测试人员有很强的编程能力
5. 最初的计划和设计、管理成本会比较高
6. 数据在外部文件存储
7. 维护成本比较低
8. 需要额外的框架或库,因此测试员需要更多的编程技巧 (~对人员要求比较严格~)
评价
关于开发的成本
随着脚本编写方法从线性到关键字驱动的改变,开发的成本不断地增加。
关于维护的成本
随着脚本编写方法从线性到关键字驱动的改变,维护的成本在降低。(~对于长期项目来说,降低维护成本~)
关于编程技能要求
随着脚本编写方法从线性到关键字驱动的改变,对一个测试员的编程熟练程度的要求在增加。(~对于人员的培养~)
关于设计和管理的需要
随着脚本编写方法从线性到关键字驱动的改变,设计和管理自动化测试项目的要求在增加。
本文来自CSDN博客