黑马程序员技术交流社区

标题: 【上海校区】软件测试知识梳理 - 自动化测试 [打印本页]

作者: 不二晨    时间: 2018-12-24 14:21
标题: 【上海校区】软件测试知识梳理 - 自动化测试
软件开发的过程是一个持续集成和改进的过程,而每一次的改进都可能引进新bug,因此当软件的一部,或者全部修改时,都需要对软件产品重新进行测试。
其目的是要验证修改后的产品是符合需求的,而当没有自动化测试代码时,往往会由于各种各样的原因,回归不充分,导致bug遗漏。
自动化测试模型
一个自动化测试框架就是一个集成体系,在这一体系中包含测试功能的函数库、测试数据源、测试对象识别标准,以及种可重用的模块。
自动化测试框架在发展的过程中,不断有新的模型(概念)被提出,目前经历了几个阶段:模块驱动测试、数据驱动测试、对象驱动测试。
自动化测试模型是自动化测试架构的基础。
线性测试
通过录制或编写脚本,一个脚本完成一个场景(一组完整功能操作) ,通过对脚本的回放来进行自动化测试;
优势就是每一个脚本都是独立的,任何一个脚本文件拿出来就能单独运行;
缺点也很明显,用例的开发与维护成本很高;
这种模式下数据和脚本是混在一起的,如果数据发生变也需要对脚本进行修改。这种模式下的脚本没有可重复使用的概念;
模块化与类库
把脚本中重复使用的部分代码独立出来,形成公共的模块或库,需要的时候进行调用;
优点:提高了开发效率,不用重复的编写相同的脚本;方便了代码的维护,代码的更改限制在模块之内;
数据驱动
数据的改变(更新)驱动测试自动化的执行,从而引起测试结果的改变;
可以直白地理解成“输入数据的不同从而引起输出结果的变化”;
优点是实现了数据与脚本的分离(参数化),增强的脚本的复用性;
在开发层面,易于实现;
关键字驱动
理解了数据驱动,无非是把“数据”换成“关键字”,通过关键字的改变引起测试结果的改变;
独立以编程方式实现关键字驱动似乎不太容易,一般是利用现有工具和框架;
在QTP、robot framework 等此类型的测试工具中, “填表格”式的关键字驱动封装了很多底层的东西,易用性强;
测试人员只要考虑三个问题:要做什么? 对谁做?怎么做?
自动化测试用例自动化测试用例手工测试用例
执行对象是脚本,任何一个判断都需要编码定义。较好的异常处理能力,能通过人为的逻辑判断校验当前步骤的功能实现正确与否
用例步骤之间关联性强。人工执行用例具有一定的步骤跳跃性。
主要用来保证产品主体功能正确完整和让测试人员从繁琐重复的工作中解脱出来。人工测试步步跟踪,能够细致的定位问题。
主要定位在冒烟测试和回归测试主要用来发现功能缺陷
自动化测试替代不了手工测试,目的仅仅在于让测试人员从繁琐重复的机械式测试过程解脱出来,把时间和精力突入到更有价值的地方,从而挖掘更多的产品缺陷。
自动化测试用例设计
一些注意事项:
一些原则:
软件过程自动化
自动化测试的实施
适合做自动化测试的项目
不同阶段对应的自动化测试
自动化测试应该侧重于单元测试与接口测试。然后有选择有必要地通过自动化方式“部分解放”UI层的重复劳动。
三种测试的比例要根据实际的项目需求来划分。
以google为例,70%的投入为单元测试,20%为集成、接口测试,10% 为UI层的自动化测试(《google 测试之道》)。

【转载】仅作分享,侵删
链接:http://www.cnblogs.com/anliven/p/6076044.html


作者: 不二晨    时间: 2018-12-26 10:10





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2