从测试角度看质量内建-行动篇之“持续集成”

前情回顾:

上期我们一起了解了在测试的角度对质量内建这个活动的基本操作之一,太祖长拳之--测试先行。如果要落地质量内建,那么就需要充分的发挥质量排头兵--测试工程师的作用, 让测试工程师可以最大限度的发挥质量保障上面的天赋。

同时,软件开发也是一门技术活, 虽然它已经荣获新兴农民工的青睐,但不代表从事软件行业的人员都是农民工, 这就好像在一个建筑工地中, 有着不同的角色, 所以作为开发, 应该尽量的避免让CURD和CV大法作为自己核心技能;而测试,也应尽量避免让点点点和扯皮成为自己的核心技能,然后通过“转职”的路径使自己获取更好的职业发展。以上的做法我不认同也不反对, 我只是觉得作为一个工程师,一位工匠,骨子里应该不断的磨练自己的技能, 不断的打磨自己的方法论, 不断深入自己的行业深度,这样才能获取真正的快乐。好的, 有人一定觉得工作的目的是在赚小钱钱,这没毛病, 我写文章的目的之一也是这个,但这绝不是主要目的。

下面就是从工匠的角度看,一个测试工匠光会使用太祖长拳未免说不太过去, 这如果在电影里,也就是一个镜头就过去了, 凭这一招想成为“扫地僧“多活两集是远远不够的。今天,我就来给大家讲讲质量内建第二式之第八套广播体操:持续集成。

持续集成,故名思议,就是持续的,不间断的将新的功能增量“归集”到现有的产品中,使其“成为”一个新的产品。

如下图所示:

图片.png

每次一个周期都会产出一个新的增量, 再由一系列的动作将这些增量合并至Release(发布)的实物中,周而复始,这就是持续集成。

那测试可以在持续集成中做什么呢?按照这张图,测试的活动有两个:

1.发布前的测试

发布前的测试即常规软件模型中的测试, 测试的工作是对于开发提交的工件(代码,功能等)进行质量检测,这里要声明一点,质量保证是大家的事情, 质量检测是这一环测试需要做的事情。

2.发布后的测试

发布后需要测试对已经发布的程序进行一轮验证, 这轮验证是即作为测试也是作为用户的。同样的,这轮验证也是一次质量检测的活动。

相信看官们已经看出来了, 单纯的质量检测并不能满足质量内建的要求,因为质量内建的的本质是将质量写入到项目的DNA里边。所以作为测试,可以在这个持续集成的循环中如何做才能将原来的“质量检测”的动作变得更大些呢?

我的答案是两种:

1.更大意义上的质量检测

2.更大范围的质量检测

对于1.我们已经在上一章体现了出来, 测试先行和测试的全覆盖可以将原有仅担任质量检测工作的测试工程师们一跃提升为质量保障工程师,从而去推动质量在项目全方面周期内的保障工作。

对于2.就是今天我想重点讨论的话题:

更大范围的质量检测作为测试和项目组需要共同攻克的难题,是想如果每个环节都进行或多或少的质量把控,那累计到测试工程师手上发现的问题会发生什么样的变化?

所以我们需要在每个项目环节中都将质量检测的动作落实下去。搬出万有软件模型之源:传统的软件工程V模型

图片.png

单纯的看测试,测试分为:单元测试,集成测试,系统测试,验收测试

通常, 在传统模型中,除了单元测试,剩下的多数都有手工测试参与,而在目前的软件测试体系中,我们可以使用高级单元测试,API自动化测试,UI自动化测试,E2E自动化测试等手段将自动化测试进行模块化,将已经确定功能加入到持续集成中不断的测试,这样的好处就是可以不断的对已有的模块进行回归测试。极大的缩短了历史功能因种种改动出现问题的发现周期。

上述种种测试可以通过自动化方式覆盖整个代码的开发周期,甚至软件的开发周期,如果要覆盖大部分的功能, 需要编写大量的测试,如果编写不当,会造成维护测试用例的成本加大,从而加重测试工程师的负担;又由于测试用例带来的结果不精确,开发人员往往在排错后发现是测试用例的问题造成的测试失效,这也从侧面加重了开发人员的负担。

使用代码测试代码,这是一个悖论,如果软件中一定会有BUG,且自动化测试也是一个软件,那么就无法保证测试代码是没有问题的,所以自动化测试结果严格意义上是不完全可信的。

那么如何规划测试用例,使测试更加的可靠?

我们首先来分析一下各个维度的自动化测试用例的特点

图片.png

基于如下特性, 一个较优的策略是将稳定性增高,可信性增高,维护成本减低,复杂度减少,代码能力减少,执行时间减少,这显然是不可能的,但也显然是可以权衡的

所以,经过实践和论证, 目前大多数的权衡方式是:

稳定性,维护成本,复杂度,执行实践

这是一个牺牲了可信性的解决方案, 这不意味着这个方案是没有可信性的, 由于在自动化测试中, 牺牲了一部分可信性可以权衡其他的指标性能, 所以大部分会选择通过人工验证去补齐这部分的可信性,因为人工测试的可信性无限趋近于100%。

权衡后,我们得到了当今最为业界承认的自动化架构模型:测试金字塔

图片.png

这个金字塔描述的各个测试中以面积表示所应包含的测试数量和所应覆盖的测试功能点数量。

建立测试金字塔是非常有效的规划自动化测试的方式,不过有一个很重要的条件制约了这个金字塔,就是干系人。果然,所有的问题最后都会落在人上面啊。这个问题将在后面的文章中描述

另外还有两个知识散点,执行自动化用例是一个需要等待的过程, 很多项目和公司都进行了尝试,确定自动化全部通过以后才可以将代码合并到主干。开始一切都很棒,但自动化慢慢的变得臃肿,执行的时间也慢慢的增加,导致代码提交验证到合并需要半天或者一天, 这大大的增加了合并的难度,造成了极大浪费

同时,由于自动化的失败,去修复自动化用例也是有成本的,大多数自动化都运行在开发环境或者测试环境这种不稳定的测试,或多或少由于环境的问题,数据的问题,代码功能的问题导致少量的失败,所以要控制失败的比例。

统称提交代码到获得自动化构建的结果(包含编译,单元测试,集成测试,冒烟测试,部署等动作)叫反馈弧,那么对反馈弧方面自动化的建议是:

执行时间:10分钟

通过率:90%

好了, 这就是质量内建的行动--持续集成和自动化测试的一些拙见, 在自动化构建中,不同的体系一定会有自己的做法, 我将一些经验分享进行删改和合并分享到这里,供大家增删改查。

下期预告

下面一期, 我想和大家聊聊质量内建的另外一个核心实践:测试也是资产。在这一章,我将和大家介绍如何使用管理代码的思想去管理测试

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

推荐阅读更多精彩内容