`

测试的第三重境界:挑战零缺陷

阅读更多

测试的第三重境界:挑战零缺陷

孔子说“人无远虑,必有近忧”,用在软件测试上,是什么意思呢?可以这样理解,如果我们不从发生问题的根源上解决问题,认为测试仅仅是找Bug,千方百计找Bug,觉得Bug总是找不完,意识中就会陷入“永无天日”的状态。然而,有小部分测试人员还真希望软件存在多一些问题(唯恐天下不乱),这样可以多提交Bug,认为业绩比没有提交多少Bug肯定要好。无独有偶,有小部分开发人员也把自己犯下的程序错误视为理所当然,甚至还有个别人会戏虐地说“软件如果没有Bug的话,测试人员不就失业了”。这好像在唱一出双簧戏。软件开发的整个过程中,Bug是理所当然要存在的,是这样吗?软件工程中软件危机的根源问题只能通过找到Bug的手段来控制吗?

实际上,我们都很清楚,任何一个Bug的产生都是有来源的,来源包括需求的设计、软件的设计(含代码的编写)等。相对于前端的设计,测试是事后的验证,是一种“堵”漏洞的措施。然而,在实际工作中,时间与成本并不允许我们去堵住所有的Bug。日本质量大师田口玄一说得好“质量是设计出来的,而不是测试出来的”。如果我们能变被动为主动,在设计之前,就做好设计的防患措施,为设计高质量的软件打下坚实的基础,这便是本节打算向读者介绍的测试的第三重境界:挑战零缺陷。

缺陷的防与堵

    几乎在每次面试测试工程师时,笔者都会问一个这样的问题:“你所负责测试过的模块,是否存在漏测的情况”,几乎每个应聘者都回答说“有”。面对复杂的软件,纷繁复杂的运行环境,在有限时间内进行的测试活动,做到真正的零Bug是 不可能的,也是不现实的。但这些都不是理由,所有的测试活动是有目的的商业活动,每个公司有自己测试通过的一套标准或原则。虽然漏测不可避免,但并不是说 漏测是一种正常现象或应该的现象,出现的漏测问题如果超出公司所能接受的原则,就属于不正常的现象,很有必要进行漏测分析。进行漏测分析活动(需要特别注 意的是它绝不是对漏测人员的批斗会),它的主要目的是通过分析过去的教训,找出问题的根源,分析测试中哪个环节工作存在缺失,以拿出规避的可操作的措施出 来。

    测试人员进行漏测分析时,免不了对问题进行追本溯源。软件是由开发人员设计出来的,所以漏测分析活动少不了开发人员在场,甚至有时还会涉及需求设计人员。关于漏测分析的追本溯源,这里有一个关于开发与测试之间的工作关系像修筑堤坝一样的有趣比喻,如图2?11所示。开发人员设计软件就像修筑一道堤坝,如果堤坝在结构上存在问题,当洪水冲击时,可能不只是局部的泄漏,而是直接的决堤,犹如软件的崩溃。高高的堤坝,难免会存在漏水的小洞,或渗水的小孔,就好像软件中存在的小Bug。越是在堤坝基部的漏水或渗水问题越难发现,解决的代价也越大。

    在设计时要把结构建牢,不存在漏洞当然更好,这是一种防范。如果超越防范界线,把设计带出的大洞小孔遗留到测试环节,它只好拿着各种放大镜(使用各种方法)来检测,以网罗各种深深浅浅、大大小小的问题,最后通过“打补丁”的方式,堵住堤坝上的“百孔千疮”。

    在对缺陷的防与堵方面,测试是发现问题的中间角色,告诉开发人员哪里漏水或渗水了。防与堵的工作是由建堤者来做的。当然,防是主动的,堵是被动的,主动变为被动后,中间经历了资源与时间的投入,诚然即使是同一个Bug,它们的代价也是完全不一样的。这种堵越在后面,影响越大,代价也就越大,如表2-6所示(摘自《代码大全》)是一个根据缺陷出现的阶段来增加测试成本的例子。

2?6  根据缺陷的引入和检测时间,修正同一缺陷所需的平均成本

引 入 时 间

   

体 系 结 构

   

系 统 测 试

发 布 之 后

需求

1

3

510

10

10100

体系结构

--

1

10

15

25100

建设

--

--

1

1

1025

    如表2-6所示为在需求阶段引入的一个缺陷。如果立即发现了此问题,修改成本只需要1美元,但如果在系统测试阶段发现它,修改成本就增加了10倍。更为严重的是,如果在版本发布后用户端发现了此问题,则需付出10倍以上甚至是100倍的代价。缺陷在系统中的时间越长,解决它的代价就越大,因为时间越长,开发与测试人员修改的成本就越高,还将影响大面积的用户端升级。

 

 

本文节选自《软件测试之魂:核心测试设计精解(第2版)》一书

肖利琼

电子工业出版社出版

0
8
分享到:
评论

相关推荐

    配置管理的七重境界

    第三重境界:文档与代码的初步整合 在这个阶段,文档一开始就进入配置管理,文件名带有版本号,多人可以同时在同一个组件或项目中工作。配置管理进一步发展,引入了开发库、静态库(稳定库)和发布库(产品库),...

    软件测试工作的三重境界

    测试的第一重境界:围着Bug转  测试的第一重境界:围着Bug转  “意识决定行动,行动决定结果”是管理学中众所周知的名言。做测试的前几年,笔者并没有这个意识,也没有主动地去思考过这个问题,但随着一个个项目...

    课堂高潮的三重境界

    **第三重境界:紧扣“文”的教学目标** 最高层次的课堂高潮是要服务于教学目标,以学生的实际收获为衡量标准。教师需要确保教学活动不仅符合课程大纲的要求,还要能够激发学生的深度思考和自主学习。以《金岳霖先生...

    参考资料-12、绩效沟通的“三重境界”.zip

    第三重境界:情感共鸣与信任建立 最高境界的绩效沟通涉及到情感层面,它包括建立信任关系,理解和尊重员工的情感需求。在IT团队中,管理者需要关心员工的职业发展,提供反馈和支持,鼓励他们面对挑战。例如,定期的...

    怎样学习 ARM 嵌入式开发.ppt

    怎样学习 ARM 嵌入式开发?作者:李明。内容预览: 1)ARM 嵌入式开发领域包括什么,不包括什么 2)怎样学习 ARM 嵌入式开发 3)怎样进入一个陌生的村庄 ...18)自我修炼之第三重境界:项目 19)推荐参考资料 20)总结

    设计开放性问题促进深度学习的三重境界.pdf

    3. **第三重境界:超越认知边界** 在这个阶段,教师不仅要引导学生解决开放性问题,还要鼓励他们挑战现有的认知框架,进行深度探究。例如,当学生已经掌握了初步的比较方法后,教师可以引导他们进一步思考,比如,...

    海大集团-002311-公司更新报告:三重境界看海大.rar

    三、第三重境界:创新驱动的先行者 海大集团注重科技创新,积极引进国内外先进的科研成果,并与多家高校和科研机构建立合作关系。公司在生物技术、饲料配方、疾病防控等方面的研发成果,不断推动行业技术进步。此外...

    小学科学深度学习课堂的三重境界.pdf

    第三重境界:“有意境” 在这一境界中,科学课堂应当体现学科特质,即科学味,引领学生进入奇妙的科学意境。科学探究活动应当是真正的、具有理性思考的过程。教师需要引导学生展开质疑,让学生在质疑与释疑的过程中...

    模拟芯片设计的四重境界

    ### 第三重境界:创造与优化 当设计师达到这一阶段,他们不再满足于遵循现有的设计方案,而是开始尝试创新和优化。这包括开发新的电路拓扑结构,改进传统设计,或是创造全新的解决方案来应对复杂问题。创新可能源自...

    复盘总结:反思构建方法论 课后测试答案.pdf

    5. 复盘的三重境界:复盘的三重境界是指从已有框架到通用工具、从已有框架到单一领域解决方案、总结提炼工作方法与框架、发明新的工作方法和流程等。 6. 给框架、方法命名的方法:给框架、方法命名的方法可以考虑...

    程序员十层境界(很经典)

    #### 第三境界:精通者 当程序员掌握了C/C++等语言的基础知识,并能够熟练运用这些语言进行开发时,他们便进入了精通者的行列。这个阶段的程序员不仅限于语言本身的学习,还会深入研究语言的设计原理及其底层实现...

    java程序员上班那点事

    《我工作我Java》1 原名:《Java 程序员要上班!...1.1.3 修炼第三层境界:最深即最浅,最浅即最深,不过如此12 1.1.4 点评"修炼三层境界" 13 1.1.5 回答这个问题13 1.2 问题2:大学毕业生找不到职业入口13

    学习 Python 的三种境界.docx

    **第三种境界:项目专家** 在这个高级阶段,学习者需要具备全局视角,关注文档编写、项目分发、性能优化等。《the hacker guide to python》是很好的指南,涵盖了项目管理、文档编写、性能调优和发布流程等主题。...

    00800 培训师的十二种境界(pdf 7).pdf

    **第三境界:肚里无货,照本宣科(糊弄型)** 这类培训师知识储备不足,依赖教材,无法提供深入讲解或个性化教学。 **第四境界:含混晦涩,不知所云(枯燥型)** 他们有一定知识,但表达能力欠佳,导致课程内容难以...

    理解svm的三层境界

    第三层境界:掌握SVM的高级应用与技巧 1. 核技巧:核技巧是SVM中处理非线性可分问题的关键技术,它通过在高维空间中使用核函数来隐式地处理特征映射。核函数使得在高维空间中计算复杂度得以降低,因为它避免了直接在...

    做PPT的四重境界(PPT的艺术)

    一重境界:看山是山,看水是水;二重境界:看山不是山,看水不是水……

    工业互联网的三重境界.pptx

    第三重境界是“极致体验”。随着服务经济向体验经济的转变,工业互联网的目标不仅仅是提供产品,更是创造独特的用户体验。例如,未来的交通方式将不再局限于单纯的交通工具,而是包括出行规划、舒适度、个性化服务...

Global site tag (gtag.js) - Google Analytics