《持续交付》读书笔记-第四章-实施测试策略

关于《持续交付》这本书,有评论称之为“持续交付精华的蒸馏水”



“Continuous Delivery: Reliable Software Releases Through Build, Test, and and Deployment Automation”, Jez Humble, David Farley, Addison Wesley, 2010

  1. 京东中文版有售:https://item.jd.com/10843669.html
  2. 英文亚马逊地址: http://www.amazon.in/dp/0321601912

内容概要:

  • 一本持续交付早期的书
  • 它的出版其实在 DevOps 被热炒之前,但是它还是道出了DevOps概念的精华
  • 此书分为三部分:Foundation, The Deployment Pipeline, 和 The Delivery Ecosystem
  • 本书基于作者的时间经验,并涉及到重要的方面,如功能割接

以下是本章读书笔记脑图的图片以及之上的文字内容。

本图在Mac OS X上用MindNode软件编辑。下载MindNode原文件

CD-4-实施测试策略

脑图文字导出版

引言

测试的定位

需要进行自动化测试

是跨部门的活动

整个团队的责任

项目一开始就进行

质量内嵌

  • 多层次写自动化测试案例

  • 作为部署流水线的一部分执行

测试策略的目标

识别和评估项目风险优先级

建立信心

测试能约束开发团队使用更好的开发实践

测试的分类

分类维度

业务导向

  • 支持开发

  • 评价项目

技术导向

  • 支持开发

  • 评价项目

四种定位

业务导向-支持开发过程

  • 类型

    • 功能测试或者验收测试

    • 自动化执行

  • 保证满足用户故事的需求

  • 理想情况下

    • 用户或客户会写验收测试

    • 测试通过-覆盖到所有需求,用户故事被认为是完成的

  • 自动化功能测试工具

    • Cucumber

    • JBehave

    • Concordion

    • Twist

  • 测试执行路径

    • Happy path

      • given-when-then

      • 自动化测试应该全覆盖

      • 对于开发人员,它等同于冒烟测试

    • Alternate path

    • Sad path

  • 测试覆盖率

    • 手工测试是不可避免和替代的

      • 易用性测试

      • 界面一致性测试

      • 探索性测试

    • 高于80%

      • 全面的测试

      • 单元测试、组件测试和验收测试每一类都高于80%

  • 优化

    • 识别自动化案例

    • 消除并自动化掉重复的手工测试

    • 考虑测试的维护成本

    • 根据不同的需求,选择新增的测试案例的路径

技术导向-支持开发过程

  • 由开发人员建立并维护

  • 自动化执行

  • 三类

    • 单元测试

      • 不应该访问

        • 数据库

        • 文件系统

        • 外部系统

      • 不应该有组件之间的交互

      • 覆盖每个代码的分支路径

    • 组件测试

      • 测试更大的功能集合

      • 需要访问

        • 数据库

        • 文件系统

        • 外部系统

      • 有时候亦称“集成测试”

    • 部署测试

      • 检查部署的过程是否正确

      • 应用正确地被

        • 安装

        • 配置

        • 启动服务

        • 服务能调用并响应

  • 依赖

    • 测试替身

业务导向-评价项目

  • 手工执行

    • 确认软件是否符合用户期望

    • 建立快速有效的迭代反馈

  • 三类

    • 应用系统演示

      • 团队在每个迭代完成向用户演示新功能
    • 探索性测试

      • 优化测试设计

      • 分析测试信息

      • 设计更优的测试

    • 易用性测试

      • 用户是否能容易地使用软件完成工作

      • 验证软件是否能交付价值给用户

      • 做法

        • 场景调查

          • 记录/分析测试用户的操作细节

          • 请用户对软件的满意度打分

        • 网站对部分特定用户的Beta测试

        • 金丝雀发布

技术导向-评价项目

  • 手工的或自动的

  • 测试系统特性

    • 容量

    • 易用性

    • 安全性

    • 可变性

    • 可用性

  • 特点

    • 低频

    • 秏资源-耗时间

    • 依赖特殊的环境/技能的人

    • 依赖测试工具

    • 通常与其他测试相比,频度低;并不是应该频度低

回归测试

  • 跨象限

  • 所有自动化测试的合集

测试替身

术语来源

作者:Gerard Meszaros

书籍:《xUnit Test Patterns》

test double

dummy object

fake object

stub

spy

mock

实战的情势和对策

新项目

有机会进入本书描绘的理想国

重要

  • 一开始就要写自动化验收测试

  • 精心编写验收测试

期望的良性循环

  • 在正确的时机写测试会产出更好的代码

进行中的项目

引入点

  • 最常见、最重要、最高价值的用例

  • 把happy path用自动化测试覆盖

遗留系统

定义

  • 无自动化测试的系统

和用户一起识别高价值的功能

  • 用冒烟测试覆盖

仅写出出那些有价值的自动化测试

集成测试

上下文

  • 和真实的外部依赖系统一起测

  • 由外部服务商提供的替代系统

  • 用自己创建的测试用具测

时机

  • 尽早做自动化集成测试

  • 作为发布计划的一部分

流程

团队沟通不畅导致编写验收测试成本高

召集所有人参与识别最高优先级的测试场景

开发和测试人员尽早一起讨论验收测试

管理待修复缺陷

建立backlog

立刻修复缺陷

可视化它们

分四个级别

小结

测试主要是建立反馈环

驱动开发、设计和发布活动

每次修改都能触发自动化测试集合是最短的反馈环

“完成”—Done

用测试方法定义它

测试结果是制定项目计划的基石

测试与完成的定义相互关联

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

推荐阅读更多精彩内容

  • 引言 质量内嵌是指从多个层次(单元,组件和验收)上写自动化测试,并将其作为部署流水线的一部分来执行,即每次应用程序...
    杨慧莉阅读 364评论 0 0
  • 现在很多的项目团队都只是依靠手工的验收测试来验收软件是否满足它的功能需求和非功能需求。他们也知道这样会大大的影响项...
    司鑫阅读 678评论 0 4
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    Mr希灵阅读 21,938评论 7 278
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    宇文臭臭阅读 6,713评论 5 100
  • 一 或许我久不出门、亦或者以前并不敏感,对国内“车厢文化”一直停留在很久以前,比如“上车不排队、拼命抢座、大声讲话...
    江苏刘志祥阅读 302评论 0 0