软件测试的基本原则

我一生中学到的最重要的东西是一种以原则为基础的生活方式,是它帮助我发现真相是什么,并据此如何行动。

-- Ray Dalio《原则》

原则,是每个人在行事中所遵循的准则。每个人都有自己的原则,或成文或尚处襁褓。软件测试也有一套原则让每位软件测试从业人员去遵循,这些原则是前辈们前仆后继在无数的坑坑洼洼中总结出来的。

原则一:测试显示软件存在缺陷 

Testing shows presence of defects

即使今日,依然有不少人容易犯错:没有发现错误的测试说明软件没有缺陷。

测试只能证明软件是存在缺陷的(证伪),却不能证明软件是没有缺陷的(证实)。测试是为了降低缺陷存在的可能性而开展的活动,即便多次测试都没有发现任何缺陷,也不能证明软件是完美的。

历史著名的泰坦尼克号,开始也被认为是完美的,有着“永不沉没”的美誉。然而,在她漂洋过海来看你的处女航中,估计是旅途上受不了Jack和Rose一直在撒狗粮,突然就跟冰山好上了,成了睡美人。

原则二:穷尽测试是不可能的 

Exhaustive testing is impossible

假设我们不了解该原则,在开展软件测试工作时,我们的工作将会发生什么?

(1)简单的日历功能,我们会在每个日期上填满事件进行测试。

(2)简单的计算器功能,无穷无尽的组合需要进行计算(先完成1位数相加,然后是2位数相加,再是3位数,接着是4位数,如此反复)。

随着系统承载业务多,代码规模也越庞大,算法逻辑复杂度也越高。要让测试完全覆盖是不可能的。那难道不测?非也!我们可以采取以下策略:

1、精准测试:改什么测什么;

2、二八原则:只测重点;

3、等价划分;

上述测试策略将会在后续文章中详细介绍。

原则三:尽早介入测试  

Testing Early

我们从小就被教育:早起的鸟儿有虫吃。,是我们解决问题的有效办法。

研发流程中,研发活动抽象为 需求分析、开发管理、 测试管理、发布运维四个阶段。在传统的开发模型里,测试只关注测试管理活动,而严重缺乏对对需求、开发的测试。

据调查,缺陷的修复成本与其发现时间成反比,且越晚修复其修复成本将会成指数级增长。

显然,降低缺陷的修复成本,提前暴露缺陷所在,是我们提升产品质量的一大突破。这个原则与 测试左移、测试前移 具有异曲同工之妙。

原则四:缺陷具有集群性 

Defect Clustering

每当看到福布斯或胡润发布财富榜单的时候,总会让人产生一种错觉:我和马化腾的平均财富达到 1500 个小目标。然而,细思极恐,0.3%的人手里掌握着24%的财富,财富的集群性十分显著。

据统计,一家公司的利润的80%是由20%的客户/项目创造出来的,对企业而言, 如果把精力平均分配给每一个客户/项目是不科学的,将有限的精力和资源投放在大客户/项目身上,才能取得更显著的成效。

在软件测试活动中,80%的缺陷发生在20%的模块中。特别是在回归测试时,如何选择测试用例集,全部选择还是选择20% ?这部分内容我们后续会有专题详细分析。

原则五:杀虫剂悖论 

Pesticide Paradox

当我们反复使用相同的杀虫剂的时候,会有少量害虫产生免疫而存活下来,使得杀虫剂失去药效。

软件测试也是类似的, 当我们一直使用相同的方法或手段去寻找bug的话,可能很难发现bug甚至无法发现bug。

如果我们一直使用相同的测试用例反复执行,这部分测试用例发现缺陷的效果就会越来越差。

如果我们一直使用相同的测试策略来制定计划,这个测试计划会越来越不适应项目进度,导致测试有效性降低。

如果我们一直使用相同的测试工具来执行用例,这个工具发现缺陷的效果也会越来越差。

如果我们一直使用相同的测试思路设计用例,生成出来的用例也越来越雷同,效果也会越来越差。

如果我们一直使用相同的测试人员执行用例,执行的效果也会越来越差。

原则六:测试是上下文相关的 

Testing is context dependent

当我在互联网公司待上一段时间后,我的脑子装满了互联网知识:

当我即将踏入智能机器人行业的时候,我的脑子是这样的:

古人说得好,一招鲜吃遍天。于是,我带上了虚构的《互联网测试人员生存宝典》上路了。这一路走来,虽然软件测试所服务的行业具有多样性,有金融、游戏、电商、智能机器人等等,但是,各公司内部几乎遵循一样的测试法则(测试设计、测试开发、测试流程、测试工具等),在了解业务知识后,很快便能开展测试活动。

原则七:“没有错误就是好” 是谬误

Absence of error - Fallacy

在 原则一:测试显示软件存在缺陷 中说明,测试是为了降低缺陷存在的可能性而开展的活动,即便多次测试都没有发现任何缺陷,也不能证明软件是完美的。

软件测试不仅仅是找出缺陷,还是确认软件是否满足需求,如果产品不能满足用户的需求,即使没有出现任何缺陷,这个产品也是失败的。

在功能机时代,手机一哥诺基亚风光无限,质量也是出奇的好,怎么用都不坏,还可以砸核桃。但是随着智能机的到来,没有满足用户更多的需求(如果当时能开发出切西瓜、开榴莲的功能,也许能再坚持一段时间),最终也无法逃脱没落。

“没有错误” 并不是我们的追求,在互联网时代,始终快速给用户创造最大的价值才是我们孜孜不倦的追求。

小结

通过上述原则的学习,让我们站上了前人的巨浪之上,仿佛没有什么变化。但是谨记以下原则,潜移默化中对我们的抉择产生着影响。

遵守:

(1)证伪测试

(2)尽早测试

(3)聚焦测试

(4)关联测试

谬论:

(1)穷尽测试

(2)杀虫剂

(3)没有错误就是好

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

推荐阅读更多精彩内容