读书笔记--软件测试的艺术(1)

写在前面的碎碎念:

近日,看了好多文章,也思考了很多。有些东西,总要实践一下嘛。

想锻炼文字,不一定上来就要从自己想写的东西开始,比如写写读书笔记,读后感啊,都可以进行很好的锻炼和积累。

很感谢古典老师的拆墙文。因古典老师,又结缘了很多大咖(说的好像人家认识我似的 ≧≦),从大咖们的经历中也收获良多。十一期间,本就打算要再好好想想一些东西,也基本想好接下来要怎样做了。目前在看《软件测试的艺术》这本书,若只是看一遍,恐怕很快就会忘却。记笔记还是很OK的方式的,不过又不太想用一般的写在本上的方式。诶,不如写个读书笔记吧,看过之后,经过自己的理解并进行总结,再落实到文字上,既巩固了学习内容,又能锻炼文字能力,一举两得啊。虽然开始会很弱,但不要怕,高手也是一步一步练就出来的。

嘛,就从这篇开始吧。

写于2016.10.4

--------碎碎念好长啊,我是吐槽的分界线-------

第4章 测试用例的设计

这一部分的总体思想,就是教你如何设计出高效的测试用例。

总体方法:用黑盒的方法来设计用例,用白盒的方法进行补充(视情况而定),尽可能多的运用黑盒和白盒下的各种方法,以达成优势互补,从而设计出严谨的测试。

1.白盒测试

1)语句覆盖

2)判定覆盖 or 分支覆盖

3)条件覆盖

4)判定/条件覆盖

5)多重条件覆盖

白盒测试即逻辑覆盖测试,有以上5种准则,覆盖程度按罗列顺序由弱到强。关于5种准则的关系画了个简图,如下:

白盒测试的5种准则

对每种准则做个简要说明。借助书上的图画了个简要流程图:

流程图(简)

这5个准则就是要依据各自的方式,从入口走到出口。当然,可以走多次,但要满足各自的条件。

语句覆盖,就是保证每条语句都走到;

判定覆盖,就是要把每个判断语句为Y和N的情况都走到(即每个判断语句的分支都要走到);

条件覆盖,就是保证判断语句中的每个条件满足、不满足的情况都覆盖到;

判定/条件覆盖,即判定覆盖和条件覆盖的条件都要满足;

多重条件覆盖,则要将判断语句中的每个条件满足、不满足的情况进行组合,保证每种组合都覆盖到。

假设第1个判断语句为 if(x>3 && y>4 && z>5),这条语句中有3个条件,多重条件覆盖就是要保证2^3=8种情况都被覆盖到。

注意:不是说有多少种组合情况,就一定有多少个用例,有时有的用例能同时覆盖多种组合情况,即用例数≤组合数

这5个准则的定义如下,供参考:

1)语句覆盖:程序中的每条语句至少执行一次。

2)判定覆盖:每个判断的所有可能的结果至少执行一次,每个入口点(包括ON单元)都至少调用一次。

3)条件覆盖:每个判断中的每个条件的所有可能的结果至少执行一次,每个入口点都至少调用一次。

4)判定/条件覆盖:每个判断中的每个条件的所有可能的结果至少执行一次,每个判断的所有可能的结果至少执行一次,每个入口点都至少调用一次。

5)多重条件覆盖:将每个判断中的所有可能的条件结果的组合,以及所有的入口点都至少调用一次。


2.黑盒测试

1)等价类划分

2)边界值分析

3)因果图分析

4)错误猜测

PS:书中的范例很好,值得一看。


1)等价类划分

① 确定等价类:根据规格说明,选取每一个输入条件(通常是句子或短语),并将其按“有效等价类”和“无效等价类”进行划分。这两类下可能会有多个等价类。

② 生成最小测试用例集:编写新用例,每个用例尽可能覆盖多个有效等价类;编写新用例,每个用例只覆盖一个无效等价类。


2)边界值分析

需要考虑:

① 恰好处于边界上的值

② 刚在边界之外的值

③ 不仅要对输入条件考虑边界值,对输出结果也要考虑边界值

注意:边界条件可能非常微妙,边界值分析往往比想象中要费脑筋。


3)因果图分析

因果图是一种形式语言,它可以对输入条件的组合进行系统的分析,有助于我们选择出高效的测试用例集。此外,它还可以指出规格说明的不完整性和不明确之处。

把输入看做“因”,把输出视为“果”,将语义转换为连接因果关系的布尔图,同时将因或果之间的限制用符号进行标注,所得到的就是因果图。


基本的因果图符号:

Identity;NOT;OR;AND


输入条件间的约束符号:

E(不能同时为1)

I(不能同时为0)

O(有且仅有一个必须为1)

R(require.  如果条件a为1,b也必须为1)


输出结果间的约束符号:

M(如果a为0,则b强制为0)


图略。


灵活设置中间节点,有利于因果图的生成。


用因果图生成用例的过程:

① 将规格说明分解为可执行的片段

② 转换为因果图

③ 转换为判定表

④ 转换为测试用例

直接由因果图生成测试用例是比较困难的,在这个过程中需要借助于一个二维表,即判定表


因果图转换为判定表有一定的方法和规则,只要遵循这一方法和规则,就可达到这样一个作用:减少组合关系,排除低效测试用例。即得到一个可接受、高质量的测试用例集。

具体方法就不详述了。

判定表的每一列即代表一个测试用例。

因果图转换为判定表是最难的部分。这个过程是有算法的。可使用相关软件进行转化。


* * * * * * * * * * * * * * * * * * * * * * * * * * * *

自己平常测试时,使用的就是个简单的二维表,方法自然不似这般系统,当然也无这个必要。条件间的关系也并不复杂,所以可直接转化为二维表。

结合实际工作又想了想,大多数时候,我是将有交的关系的条件直接当做判定表的每一行,有或的关系的则不拆开,直接当做一个条件,打勾划叉时再做具体考虑。

本来对书中生成判定表的过程这一块看的很绕,很费劲才想明白,等再看时又会绕半天。突然开窍将此对应于实际工作中用的方法,再一思考,也就明白多了,其实在工作中自己就是那么考虑的。同时也发现了自己平时忽略的一些情况。结合实践思考,能让自己更好的理解一些方法、原理,并意识到自己的不足。

虽然自己平时并不需要用这样复杂的二维表,但看了判定表这部分内容后,我知道了二维表系统化后的样子,以及它可能的复杂性。也意识到自己在测试的道路上,路漫漫其修远兮。

* * * * * * * * * * * * * * * * * * * * * * * * * * * *


仅仅使用因果图的方法通常不能生成全部应该被确定的有效测试用例。

一个比较好的策略是:因果图+边界值分析

在用因果图生成测试用例时,可将边界值分析一并考虑进去,从而减少用例数的增长。


3.错误猜测

探索性测试的思想。

依赖于测试经验,磨炼出的对测试情况的敏锐,跳出常规思维方式等。


4.测试策略

例如:

因果图+边界值    为主

等价类,错误猜测    进行补充

逻辑覆盖    检查、补充



以上即是我关于第4章的读书笔记。

虽然还有很多不足,但也是个很大的进步。

从开始写到现在,拖了好久了呀~

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

推荐阅读更多精彩内容

  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    Mr希灵阅读 21,833评论 7 277
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    宇文臭臭阅读 6,664评论 5 100
  • 等价类划分方法: 一.方法简介 1.定义是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个...
    繼續hug阅读 5,482评论 1 16
  • 本着共享主义,本人将PPT考点梳理出来,并且已经翻译成中文,供大家参考,欢迎各位指导! 本次考试题型分为选择、判断...
    Moonsmile阅读 4,027评论 13 27
  • 一切安好
    二狗子去哪儿了阅读 165评论 0 0