《 测试反模式:有效规避常见的92种测试陷阱》——1.4 为何测试很关键

1.4 为何测试很关键

国家标准和技术研究院(NIST)的报告[NIST 2002]指出,不足的测试方法和工具每年花费美国经济在222亿美元~595亿美元之间,有大约一半的费用由软件开发商以额外的测试的形式承担了,而另一半则由软件的用户以故障避免和缓解的工作量的形式承担了。同一项研究指出,25%~90%的软件开发预算通常花费在测试上。
测试是目前最重要的在系统开发和维护过程中使用的标准的验证和确认方法。这并不是因为测试一定是用最有效的方式来验证系统是否如它应该的表现。(参阅表1.1。)相反,这是因为与其他类型的验证总和比起来,更多的精力、资金和时间都花费在测试上。
根据Capers Jones所述,大多数形式的测试只能发现约35%的代码缺陷[Jones 2013b]。类似地,平均来说,单个程序员在自己的软件中发现了不到一半的缺陷。
例如,Capers Jones分析了在2013年年初完成的项目的缺陷识别有效性的数据,并将结果总结在表1.1中[Jones 2013a]。由此,使用需求审查发现了需求缺陷的87%和所有软件及其文档的缺陷的25.6%。类似地,代码的静态分析发现了代码缺陷的87%和所有缺陷的33.2%。最后,使用所有这些静态验证方法的项目发现了所有缺陷的95%。


" >

如表1.2所示,静态验证方法能更有效地累计发现缺陷,令人奇怪的是除了文档缺陷之外。

时间: 2024-07-29 03:30:16

《 测试反模式:有效规避常见的92种测试陷阱》——1.4 为何测试很关键的相关文章

seo中常见的几种蜘蛛陷阱

在我们优化的过程当中,有一些网站设计技术对搜索引擎来说是很不讨喜欢的.因为这些都不利于搜索引擎蜘蛛的爬行与抓取.下面给大家简单的介绍几种常见的蜘蛛陷阱,希望能帮助些新手SEOer,写的不好,还要请大家多多支持! 首先搜索引擎最常见的一种陷阱是Flash.在网页的某一小部分使用Flash增强视觉效果是和很正常的,比如用Flash做成广告,图标等.这样的Flash对搜索引擎的爬行与抓取是没有什么影响的.但是,万万不可在首页使用一个大大的Flash文件,因为这样就形成一个蜘蛛陷阱.当搜索引擎抓取的HT

浅谈现代企业中性能分析的反模式

什么是性能分析 "性能分析"一词有许多种定义,但在我看来最有用的一个是: 一种由测量驱动的方法,用以了解一个应用程序在负载下的行为. 这个定义的好处是,它提醒您注意测量是整个过程的关键点.并通过简单的延伸,也提醒您统计和数据分析可能是性能工程师的重要工具. 进一步讲,它使我们更相信应把性能分析看作是一项基础的实证研究活动,是它把输入和输出粘合在一起组成实验科学. 这样,这些输出就可以被框定为一系列具有量化答案的问题,比如: 如果有10倍的客户数,系统还有足够的内存来应付吗? 在客户看来

解析SOA反模式

了解不同的面向服务的体系结构 (SOA) 反模式,这些反模式对通常出现的会产生确定性负面结果的情形或解决方案进行了描述.随着越来越多的企业开始大举从 Web 服务转向 SOA,引入.采用和成功实现 SOA 方面的各种障碍变得越来越明显.其中一些障碍与导致过去的关键活动失败的因素类似;而其他障碍则是 SOA 特有的.对这些障碍和最差实践进行记录,将帮助顾问.架构师和专业人员不再犯同样的错误,并学习如何避免这些问题的发生.此处汇集和说明的反模式是由作者通过作为 IBM 架构师的个人经验.研究过去和当

JUnit反模式

JUnit 的出现为开发人员带来了福音.遗憾的是,许多人仍然认为学会 JUnit API,编写几个测试,最后得到一个测试良好的应用程序就足够了.这种想法比不进行任何测试还要糟,因为这会导致对代码健康状态的误解.学习 JUnit 是测试中最容易的一部分.编写优秀的测试则是较困难的一个环节.本文将介绍一些常见的 JUnit 反模式,并说明如何解决它们. 两个月前,我和妻子决定在厨房里装上木镶板.这是我第一次装修房子,我带着一股盲目乐观主义精神,使用铁锤和钉子干起了装修.但这样做几乎是一场灾难,因为我

Python编程中的反模式实例分析_python

本文实例讲述了Python编程中的反模式.分享给大家供大家参考.具体分析如下: Python是时下最热门的编程语言之一了.简洁而富有表达力的语法,两三行代码往往就能解决十来行C代码才能解决的问题:丰富的标准库和第三方库,大大节约了开发时间,使它成为那些对性能没有严苛要求的开发任务的首选:强大而活跃的社区,齐全的文档,也使很多编程的初学者选择了它作为自己的第一门编程语言.甚至有国外的报道称,Python已经成为了美国顶尖大学里最受欢迎的编程入门教学语言. 要学好一门编程语言实属不易,在初学阶段,就

Python编程中的反模式

问题描述 转自博客园:http://www.cnblogs.com/rrxc/p/4350201.htmlPython是时下最热门的编程语言之一了.简洁而富有表达力的语法,两三行代码往往就能解决十来行C代码才能解决的问题:丰富的标准库和第三方库,大大节约了开发时间,使它成为那些对性能没有严苛要求的开发任务的首选:强大而活跃的社区,齐全的文档,也使很多编程的初学者选择了它作为自己的第一门编程语言.甚至有国外的http://cacm.acm.org/blogs/blog ... ltext称,Pyt

行为驱动开发的反模式

正如Kevin Smith最近所称,行为驱动开发(BDD)可以用来增进业务相关人员和软件开发者之间的沟通,然而在使用Cucumber运行自动化测试时,有一些常见的反模式需要避免.Aslak Helles y(Cucumber联合创建者).Matt Wynne和Steve Tooke在最近的一次讨论中对其进行了描述. 许多Cucumber的反模式涉及场景(scenario),也就是一段在特征细节层面对业务行为的描述.一个场景通常应该使用领域语言来描述具体业务行为.具体结构是由一个初始条件开始,紧随

《社交网站界面设计(原书第2版)》——2.16 反模式的“货物崇拜”

2.16 反模式的"货物崇拜" 旧时的"货物崇拜"是指人们被更先进的技术(该典故中的先进技术就是二战时期的飞机)震住了,于是开始模仿他们看到的东西(木无线电塔,用火炬点亮"铺好"的飞机跑道,仿造制服),希望这么做能带来好处("货物"),即他们亲眼目睹的仪式和物体.在这种情况下,设计模式可能就会陷入一种"货物崇拜":他们在没有真正了解结构.布局和流程在原有情境中如何运行的情况下,就模仿它们.一个常见的肤浅例子

Java中的常量:如何避免反模式

在应用中,我们往往需要一个常量文件,用于存储被多个地方引用的共享常量.在设计应用时,我也遇到了类似的情况,很多地方都需要各种各样的常量. 我确定需要一个单独的文件来存储这些静态公共常量.但是我不是特别确定是应该用接口还是类(枚举不满足我的需求).我有两种选择: 使用接口,如: package one; public interface Constants { String NAME="name1"; int MAX_VAL=25; } 或 package two; public cla