《自动化测试最佳实践:来自全球的经典自动化测试案例解析》读书笔记

自动化测试最佳实践:来自全球的经典自动化测试案例解析.jpg

作者:(英)格雷Graham,D.),(英)福斯特Fewster,M.) 著出版社:机械工业出版社出版时间:2013年04月

第0章 案例研究反思

2017-01-13
对这些问题没有简单而通用的答案,但存在一些公共的要素。我们认为最重要的两个要素是管理问题和测试件架构:
注: 这两个问题需要重点关注,但是又有些宽泛,需后续章节细分析。 但是除此之外还有其它冷门的问题也需关注

0.1.1 自动化测试目标

2017-02-15
自动化测试目标
注: 并非测试的目标,后续学习如何制定出有效的自动化测试目标

0.1.3 ROI和度量标准

2017-02-15
第9章有一个用来评判投资的基于模型测试的ROI计算器的范例。
注: 分析自动化测试案例的ROI,分析案例是否适合做自动化

0.1.5 技能

2017-02-15
自动化测试人员的角色可以看做测试人员和工具之间的桥梁(参见0.2.1节)。
注: 测试架构师:设计自动化测试的整体结构,或将现有框架进行改进以适应新的需求
测试工程师:设计、编写、维护自动化测试的软件、脚本、数据、期望结果以及额外的实用工具

0.1.8 促进项目改变并启动自动化测试的触发器

2017-02-15
试点项目(pilot project)是个好主意,在将自动化测试扩展到更广的范围之前先在小范围内尝试不同的方法,来判断哪种方法最好。
注: 常用技巧,小范围试点验证

0.1.9 工具和培训

2017-02-15
拥有好的工具不能保证在测试自动化中取得成功——必须对整个测试框架进行良好地计划、定制和维护,工具仅仅是一小部分。
注: 工具没有标准的,寻找适合自己项目的,其实就是能够实现自动化需求的就行。
重点还是管理和计划

0.2.1 抽象、抽象、再抽象:测试件架构

2017-02-15
技术因素
注: 使用的工具,语言要接地气,要标准化,要能生成报告,编写的案例要避免过度依赖工具,失败分析要明确

1.2 整个团队的承诺

2017-02-15
敏捷开发团队中的每个人都进行手动测试,所以他们更能体会到自动化测试的好处。

1.3.1 一个可测试的架构

2017-02-15
解决问题的最直接途径未必是最佳途径。

1.3.3 获取测试的基准:GUI冒烟测试

2017-02-15
我们首先追求的是“快赢”,针对系统中每个用户角色的基本功能实现自动测试。
2017-02-15
首先,CI构建过程只运行了少量单元测试和一些覆盖系统高得分点的GUI冒烟测试。随着在这两个级别引入更多测试,我们将GUI测试移到单独的构建过程中并只在晚上运行,这样,我们可以更快得到的反馈信息。

1.11 总结

2017-02-16
总结
注: 核心团队成员稳定,不断尝试新工具,测试和开发互相学习;在使用新工具上一定先做培训,试点时小范围实施,有好的反馈后,大面积推广使用; 该敏捷项目案例支持单元测试覆盖率,GUI功能覆盖率,历时1年过度完成全部回归测试案例的自动化测试案例编写。

2.1 本案例研究的背景

2017-02-16
不要尝试对设计很差的测试实施自动化,先完善测试,再进行自动化。

2.3 自动化测试的目标

2017-02-16
刚开始不要设定太多目标,最初先重点完成某些目标,再逐步添加新的目标。

2.6 管理自动化测试

2017-02-16
我们的测试过程在持续改进,并且我们为测试设计了一个可记录的生命周期,如图2-2所示。

2.10 如何使用自动化测试书中的建议

2017-02-16
所有的测试人员参加国际软件测试认证委员会(International Software Testiing QualificationsBoard, ISTQB)的基础认证课程,这样有助于术语的统一使用和理解,从而有助于增进测试人员间的交流。

第3章 移动到云端:TiP的演化——在线的持续回归测试

2017-02-17
移动到云端:TiP的演化——在线的持续回归测试
注: 通过在云端实施自动化测试,从而将基于产品的自动化测试变更为基于服务的自动化测
在线测试:Testing in Production, TiP

3.3 如何实施TiP

2017-02-17
不要仅仅通过一种途径来实施自动化,尽可能使用多种有用的方法。不同方法之间可以互补并且往往比单独使用一个方法更有效。

3.6.5 易犯的错误

2017-02-17
易犯的错误
注: 1 自动化提示的错误可能是个临时性的错误,如网络断开,解决方案提供重试的机制
2 假的“安全感”比如看起来都没问题其实是分支覆盖不全,要阶段性的做探索性的测试。从整体看结果。 多出现在横向扩展产品的时候

5.4.1 试着用原先的方法来使用新工具

2017-02-17
测试工具与UI构建环境的交互能力是最重要的。

6.3.4 第一个月:了解任务和工具

2017-02-19
分享对工具和策略的理解。
■了解工具,这样就可以根据任务来使用工具。较为完整的文档有助于从文档中找到每项任务的标准实践和最佳实践是什么。
2017-02-19
我们按照自己使用工具的方式,为QC和QTP编写了一个快速指南。同时还一直维护着关于最佳实践及项目中所使用标准的日志,每当有一个新的好方法的时候就补充进去。

6.3.6 敏捷测试方法

2017-02-19
通过频繁地报告自动化进展来获得利益相关者持续的兴趣和支持。

6.3.7 第一阶段的结果

2017-02-19
管理层的支持;
■清晰的目标;
■同样的知识水平;
■对工具的了解;
■在GUI上的实际应用知识;
■对任务的处理策略;
注: 初期达到的目标清单,值得借鉴
2017-02-19
■可用方法,包括描述最佳实践;
■一个符合实际的计划;
■一个符合实际的时间安排表。

6.4.3 统一解决方案

2017-02-19
描述最佳实践以及整个项目阶段应遵循标准的文档。如果我们选择不采用最佳实践,我们必须要有充分的理由,并将其写进最佳实践文档里面,这样我们就能知道哪些地方有差异
注: 定义标准,但是在必要的时候也要允许例外情况。

6.4.4 应用程序结构和QC中的测试用例结构

2017-02-19
组件和测试用例的命名标准是采用面向业务的方法,这样就比较方便找到相应的用例并进行整体的维护。
■测试用例由公共组件和特定组件构成,这就保证了对于同一功能不会出现冗余的组件。
注: 自动化测试组件的划分标准及理念:测试件架构采用标准的方法具有易用性,并有助于长期的维护。

6.4.7 实际产品发布版本中使用的第一个自动化测试

2017-02-19
开发人员必须在变更管理系统中对GUI中的功能和变更进行详细的记录和描述,这样自动化测试团队就知道应该对哪些部分进行维护。

6.5 总结

2017-02-19
总结
注: 1 要掌握对工具的学习使用,制作快速指南及培训
2 最佳实践跟踪记录并做分享
3 业务组件划分为公共组件和特定组件
4 小步快跑,小范围试点,要梳理好自动化功能清单
5 制定GUI开发规范,让开发人员主动反馈修改内容
6 自动生成测试报告(让领导看到成果)
2017-02-19
5个成功的准则
注: ■公司人员必须知晓任务和责任,并达成一致意见。
■进行一个试点项目并定义明确的目标。
■确保整个项目成员对项目有共同的了解和认识,记录最佳实践和标准。
■了解整个业务应用,以确保测试用例的结构和规模是合适的。
■“使它尽量保持简单”

第10章 10年过去了,项目还在进行

2017-02-20
测试文档化
注: 可以长时间使用

10.2.8 我们遇到的其他问题

2017-02-20
维护是很重要的,需要尽早进行良好的设计使得维护工作量最小化。
注: 项目实践需要考虑

10.4.1 将测试人员和自动化人员分离开来

2017-02-20
自动化不能带来好的测试。仅仅对那些有价值的测试进行自动

10.4.2 管理层的期望

2017-02-20
需要很好地理解质量管理、测试策略过程、系统规格说明、测试计划、待测系统和测试自动化工具集的相对成熟度。
注: 成熟度

10.4.3 从特定的工具和工具提供商中独立出来

2017-02-20
对自动化进行良好的设计,以便能够在需要时转向使用不同的工具——保持工具独立性。

11.5.1 关注知识分享

2017-02-21
关注知识分享,对自动化框架中测试运行的结果进行跟踪,设计时考虑速度和易用性。
注: 实现凤凰重生的几点内容

11.5.3 设计时考虑速度和易用性

2017-02-21
可以运行可变数量的测试
注: 项目中可以研究testng通过网页选择执行的测试案例

12.2.2 健康检查和“吸烟者”

2017-02-22
冒烟测试是开始使用自动化的一个好地方,因为它们经常被运行,比较乏味,并且手动测试容易出错。
注: 项目中实现健康检查,最好每天都有这个健康检查的报告呈现,也可单独执行

12.2.3 面临的挑战和汲取的经验教训

2017-02-22
高价值的测试环境健康检查和“吸烟者”的套件已经开发出来,并且仍在使用。
2017-02-22
设定的目标为:减少人工劳动力成本,提高产品质量,增加测试的灵活性,使手动测试资源能够自由变化(具有较高的bug发现率),由于需要较少的临时测试人员而降低了网络资源的紧张程度。

12.3.5 销售自动化

2017-02-22
将自动化的好处传递到高级管理层是必不可少的。比较自动化和手动测试是有效的
注: 整理自动化测试对比手动测试的分析,主要是自动化的开发验证时间,手动测试的人工验证时间,不能单从一个版本看,最好有累计的信息

12.5.1 概念:脚本开发与业务知识相结合

2017-02-22
自动化服务(包括脚本开发、维护、执行、报告,以及工具的内部结构)。
注: 定义清楚岗位职责很重要

15.2.4 代码审查

2017-02-23
对于自动化测试代码、脚本和文档进行审查和复审是非常有效的。
注: 让相近领域的同事提前审查代码,评审会上再谈论

15.2.6 “Checkman for eCATT”工具

2017-02-23
在你的自动化测试套件中谨防“无用”测试用例。
注: 【重要】通过静态检查或案例代码执行覆盖率检查“无用”的案例脚本

16.4.2 编码规约和文档化

2017-02-23
TwinText工具为我们的框架产生一个完整的HTML帮助文件,它可以作为一个参考文档被任何使用该框架的人使用。
注: 框架说明文档

17.3.1 已有的测试工具以及改变的原因

2017-02-23
unit,自动化单元测试
注: 谷歌内部工具TAU(test automation

17.4.6 提交队列该为我们做什么

2017-02-23
提供给开发人员立即反馈的测试用例对于他们来说是最有用的
注: 自动化后期需考虑

17.6.2 一般的自动化测试:我们汲取的经验教训

2017-02-23
建立稳定、可维护的测试用例还是非常困难的
注: 所有的基于浏览器的自动化测试工具都有的问题

18.2 自动化测试框架

2017-02-24
自动化测试框架
注: 看架构图

18.4 抽象层

2017-02-24
挑选最优的抽象层厚度和它的技术。
注: 面向对象的理念进行抽象,定义抽象的厚度。【重要】考虑电商商品录入的抽象

18.5 配置

2017-02-24
自动地检测一个测试的前置条件,如果它们不满足,就不执行该测试。
注: 除了健康体检,单个案例还需要有前置条件检查

18.6 成本和投资回报率

2017-02-24
自动化测试的节约成本
注: 产出物
2017-02-24
每个测试套件映射了一个功能域(一系列的需

19.3 自动化测试用来支持手动探索式测试

2017-02-25
一次性的脚本可以有实际的短期收益。
注: 自动化测试实现多用户并发操作一个业务的实现,考虑公共构建

19.6 通过组合简单的工具模拟现实世界的负载

2017-02-25
使用一种工具的组合能够做到一些单个工具很难或者不可能办到的事情。

20.8 结果报告

2017-02-25
测试结果的分层报告能够节省很多失效分析时间。我们只报告一些测试目标所需要的信息。

21.4.2 缺点

2017-02-25
自动化测试不仅仅是执行测试——记录缺陷日志、调试和状态报告同样需要支持。

21.5.2 框架中目前还不可用的特性

2017-02-25
特性
注: 见文中下图。收集整理好

24.3 测试猴子

2017-02-25
为了真正利用自动化的力量,要跳出自动化回归测试的框框。
注: 猴子测试,随机测试

27.2.3 对QA授权

2017-02-27
清晰的和可测量的目标是自动化的最好起点。

29.6 探索性测试自动化:数据库记录锁定

2017-03-01
好的自动化的候选方案是那些难以手动实现的测试以及那些对手动测试来说过于复杂的测试

29.8.4 学到的经验教训

2017-03-01
对外部的依赖进行封装
注: 作为设计的原则

29.13.2 最终成功的关键:自动化过程

2017-03-01
自动化过程
注: 示意图
分析和设计:理解客户的需求,并确认是否可能在我们当前的技术条件下满足每项需求。
■编写脚本和配置:通过自动化的解决方案来实现客户需求。这可能包含重新编码、编码和创建一些特定的实用工具。
参数定义:在系统中使用用户定义的场景对脚本进行评估,目的在于找出那些需要参数化的元素。
■参数管理:在定制的电子表格中管理大量的数据。
■场景收集:根据系统利益相关人员提供的测试场景来生成电子表格。
■确认:检查电子表格和参数,在电子表格中创建标准去决定测试通过或是失败,并且允许自动化脚本确认已执行测试的结果。
对脚本进行测试:保证测试以期望的方式运行,移除脚本中的任何bug。
■脚本执行:使用已定义的场景和参数运行脚本。
■对结果的评审:在内部对脚本执行的结果进行评审,包括哪些测试通过或者失败,以及任何常见的问题,如环境不可用等。
■对结果进行交流:对结果进行总结,并发送给经理、开发人员、利益相关人员和其他相关人员。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,829评论 1 331
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,603评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,846评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,600评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,780评论 3 272
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,695评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,136评论 2 293
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,862评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,453评论 0 229
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,942评论 2 233
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,347评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,790评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,293评论 3 221
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,839评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,448评论 0 181
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,564评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,623评论 2 249

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,050评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,472评论 25 707
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,184评论 6 345
  • 2016年9月21日,在去见某人的路上,在那个熟悉的十字路口,我遇见了一只脏兮兮的小猫,猫咪看起来大约出生有一个月...
    921麻麻阅读 958评论 19 27
  • 正念小说《花千骨后传》 (从获得洪荒之力开始) 写一部正念短篇小说不错。 电视剧的结局太悲惨了, 看正念如何扭转乾...
    正念教练张林宝阅读 2,487评论 0 1