持续交付读书笔记-测试策略、容量设计、测试数据管理

本来计划读《需求实例化》,考虑自己打算写TDD总结文档,还是选一些相关内容,决定先读《持续交付-发布可靠软件的系统方法》(根本原因是没有书^_^)。

《持续交付-发布可靠软件的系统方法》全书51.2万字,15章,384页。在仔细读完序言部分和目录,挑选了三个最有兴趣的主题进行精读,即:测试策略(第四章),容量设计(第九章部分内容),测试数据管理(第十二章部分内容)。


1、测试策略


戴明14条之一就是“停止依赖于大批量的检查来保证质量的做法。改进过程,从一开始就将质量内嵌与产品之中”[9YhQXz]

【对于软件研发的过程改进来说,减少人工测试,尽可能考虑使用自动化的单元测试,并且内嵌到CI中。】

1.1测试象限

系统阐述了Brian Marick提出的测试象限。来为软件进行测试建模。

测试象限

1.2 Happy Path

在4.2.1业务导向且支持开发过程的测试中:

* 定义:对于每个需求或者用户故事来说,根据用户执行动作,一定会找到应用程序中一个中规中矩的执行路径。

* 描述方式:就是(Gievn-When-Then)书写模型。假如[当测试开始时,系统所处状态的一些重要特征],当[用户执行某些动作后],那么[系统新的状态的一些特征]。【以前描述不准确,需改正】

* 引申:执行结果状态不同时,就会出现Alternate Path。引发的错误处理叫Sad Path.

* 工具:定价划分分析和边界值划分析可以帮助我们找到最小的用例集合。【单元测试需要这样的技能】

1.3 自动化测试相关

-自动化验收测试限于Happy Path行为,并仅覆盖其他一些极其重要部分。(这是高效的策略,前提是其他自动化测试很全面)

* 一般将代码覆盖率搞80%测试视为“全面的”测试,测试质量也非常重要。

* 第二条规则包含单元测试,组件测试和验收测试,单独满足,而不是累加满足

* 每个故事至少要有一个Happy Path的自动化验收测试。给开发人员充当冒烟测试,检测“是否破坏已有功能”快速反馈。

【看来我们的测试时万里长征第一步,需要继续努力】

1.4 单元测试和组件测试(集成测试)

单元测试:依赖于测试替身模拟系统其它部分。要求:

* 不应该访问数据库,文件系统与外部系统交互。

* 不应有组件间交互

* 运行非常快

【单元测试现在方向是对的,思路也是对的,时间的玫瑰o(* ̄︶ ̄*)o】

组件测试(集成测试):更大的测试集,连接真实的数据库

1.5 现实中情况与应对策略

新项目:理想国。1)技术平台&测试工具;2)自动化构建;3)制定INVEST的用户故事并考虑验收条件。

项目进行中:Happy Path自动化,覆盖高价值的场景。逐步补全尽可能多的场景。

遗留系统:测试你修改的代码。以及高价值的场景。

【我们的产品是各种合体,可以针对不同部分选择策略】

迭代前找到高优先级的场景。利用工具或者DSL可以场景变成测试用例。【这块感觉很难,也许是一个很好目标和方向,需关注】

管理待修复缺陷列表。根据严重、阻塞、中、低来管理缺陷。


2、容量设计

2.1 如何容量编程

高德纳的过早优化理论指出早期的预料可能是错的。也不是后期解决所有的问题。正确策略:

--为系统决定一种架构。包括:进程、网络边界和IO

--使用真确的模式,避免影响容量和稳定性的反模式。书《Release it!》

--研发过程中,可读性(清晰简单)优先。在没有测试数据时,避免过早优化。

--选择高性能的算法和数据结构【听过一句更好的描述:数据结构决定性能上限,算法决定性能下限】

--注意线程阻塞。

--自动化测试断言所期望的容量级别。

--修复调测中问题。

--尽可能用真实数据度量性能。

2.2 容量度量

-扩展性测试:扩容能力下,响应时间和并发数用户的指标。

持久性测试:用来检测内存泄露和稳定性问题。

吞吐量测试:每S处理多少事务。

负载测试:在生产环境情况下,系统容量。

完全负载生产环境是不可能的,需要做流量分析,结合经验和直觉来表达尽可能接近真实环境的模拟。

【以前性能测试关注吞吐量和响应时间是不够的】

2.3 自动化容量测试

目标:创建比较现实的类生产环境的负载;选择并实行代表性且现实生产中非正常负载状态的场景。

还有一种有效中方法“识别系统中代价最高的事务,然后在系统中把他变成两三倍的数量”(《Release It!》)。【这个思路棒,可以作为后续的内容】

对于我们来说,有两种方法更为实用:实用录制的交互模板;使用容量测试桩开发测试

2.4 将容量测试加入到部署流水线

避免容量的过度设计;尽早发现容量的问题,进行修复。【这也是个目标】

2.5 容量测试附加价值

把容量测试设计为组合式,基于场景的测试。可以用来诊断问题、预测问题并找到办法解决问题。

3  测试数据管理

主要有两点:测试性能-尽可能快的完成;测试独立性-收入受控,才能评估出他的输出。

3.1 为单元测试进行数据库模拟

单元测试不实用真正的数据库是非常重要的。可以考虑两种策略:

1、测试替身对象来代替访问数据库的代码。【对于C++后来来说,就是gtest+gmock的方式。】

2、使用假的数据库。作者建议内存型数据库例如H2,SQLit,Java。【我们的MOCKDB也是属于这种思路,但比这个开源数据更有优点,看来我们找到最优解了。棒!以后写总结】

3.2 管理测试和数据耦合

有三个方法来做测试设计:

-测试独立性:测试的数据只对该用例可见。【Mockdb的测试框架成功做到这点】

-适应性测试:先检查环境,从环境中获取数据进行测试。

-测试顺序性:按照已知的顺序进行测试,并且具备依赖性。

作者强烈推荐第一种。【看来我们的测试框架是最优选择】

3.3 连贯的测试场景

作者认为这是需要抵制的诱惑。这种耦合会导致设计困难,设计失败后会造成一系列的影响。【这个值得思考和注意】

总结

作为实用主义者,选择自己最有兴趣的三个部分,从泛读,到精读,然后整理并输出笔记。前后耗时5小时,收获颇丰,值!

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

推荐阅读更多精彩内容