别以为软件测试只是一个功能

  在今天的工作中我对一个同事说,PyDev 2.5.0 现在对TDD(测试驱动开发)可以说是提供了很酷的支持了。当然,我并不是一个对TDD很痴迷的倡导者,对其它事物也一样,但是仍不能避免激起一场讨论。而这个同时,让我们暂是叫他约翰,说:“在开发一个功能的时候,TDD可以节省开发的时间,但是,有的时候一个功能需求,要求的是这样的紧急,所以我们要尽可能快的交付这个功能,那么软件测试只能放在以后再说。”

  但是,诸如这样的话实在是让我欲哭无泪。

  因此我极力解释说,如果没有测试,那么发布的代码将会存在不可想象的风险。而就像这个功能非常的重要一样,你的产品也可能会因此受到严重的破坏。尤其当你在使用Python语言时,很少会有问题在编译期显示出来(一个简单的书写错误就有可能导致运行期的一个AttributeError,甚至是更糟糕)。而我认为这种风险过高所以不可接受。但是约翰回复说,也许你说的是对的,但是是否值得去冒这样的风险,这种权利还把握在项目经理手里。而如果你使用TDD,那么实际上你就是剥夺了他认为可以“放弃软件测试以后在说”的权利。“

  说实话,对于这样的逻辑观念,我不知道如何回答。不错,老板有权利决定是否需要测试我的程序,但是…他应该这样吗?一个建筑工人被告知先把砖块码起来,灰泥以后再补,这样合理吗?

  在我读过的书本中显示,这种想法是错误的。软件测试并不是一个功能。它不是一个由客户提出来的需求。它不是”最好测一下“。

  它是一个软件的任何一段代码的固有组成。

  不错,你可以开发出不经测试的软件。它甚至可以运行,就像是摞起来的砖块看起来也是一堵墙。但如果遇到大一点的风,它有可能就会砸到某人的头上。

  你会对持这样观点的人做怎样的回复?

  [本文英文原文链接:Testing is not a Feature ]

时间: 2024-10-02 23:38:56

别以为软件测试只是一个功能的相关文章

一个功能完善的专栏管理的程序->这是asp.net的第二个应用(一)

一个功能完善的专栏管理的程序->这是asp.net的第二个应用(一)/*豆腐制作,都是精品http://www.asp888.net 豆腐技术站如转载,请保留完整版权信息*/ 前言:前面豆腐将过一个asp.net 版本的留言版的程序,今天在这里 再 参照实例我们来学习一个asp.net 版本的专栏管理程序,专栏现在几乎已经成为技术站点的一个保留栏目,豆腐在开始建站的时候本来想 突破传统,但是 但是最后发现 的确还是 专栏这种形式的 程序 对于 技术类站点来说是合适的 通过前面的留言版的 文章,很

在FreeBSD上建立一个功能完整的邮件服务器

#1 在FreeBSD上建立一个功能完整的邮件服务器 第一部分:安装邮件服务器:postfix+vm-pop3d+openwebmail 欢迎大家转贴这个文章,但要保留下面的版权信息: 作者:llzqq 联系:llzqq@126.com 以下的安装在FreeBSD 5.2.1系统上完成 1.更新 ports # cvsup -gL 2 -h cvsup.freebsdchina.org /usr/share/examples/cvsup/ports-supfile 2.安装 openssl+ap

C#实现一个功能简单的web浏览器

为相应的控件添加相应的事件响应代码,完整代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; namespace Web浏览器 { public partial class Fo

VC下做一个功能,双击列表控件,使得列表全屏显示,按Esc键恢复原来状态,怎么做?

问题描述 VC下做一个功能,双击列表控件,使得列表全屏显示,按Esc键恢复原来状态,怎么做? 使用List Control,双击它的时候能够变成全屏,按Esc键恢复原来状态 解决方案 是什么环境?如果是VB或者C#,你可以做一个窗口,不要边框和标题栏(controlbox FormBorderStyle),list control dock设置为fill响应keypress,如果是窗口,就切换到全屏的那个窗口,否则切换回来. 解决方案二: 处理db_click双击消息,然后MoveWindow调

Inxi:一个功能强大的获取Linux系统信息的命令行工具

Inxi 最初是为控制台和 IRC(网络中继聊天)开发的一个强大且优秀的命令行系统信息脚本.可以使用它获取用户的硬件和系统信息,它也用于调试或者社区技术支持工具. 使用 Inxi 可以很容易的获取所有的硬件信息:硬盘.声卡.显卡.网卡.CPU 和 RAM 等.同时也能够获取大量的操作系统信息,比如硬件驱动.Xorg .桌面环境.内核.GCC 版本,进程,开机时间和内存等信息. 运行在命令行和 IRC 上的 Inxi 输出略有不同,IRC 上会有一些可供用户使用的默认过滤器和颜色选项.支持的 IR

AgentWeb是基于Android WebView一个功能完善小型浏览器库

本文讲的是AgentWeb是基于Android WebView一个功能完善小型浏览器库,AgentWeb是一个高度封装的 Android WebView ,简单易用 , 带有进度条 . 支持文件上传 . 下载 . 简化 Javascript 通信 . 链式调用 . 加强 Web 安全的库 .让你几行代码集成一个小型浏览器在你的应用 . App 下载体验 前言 WebView 可谓是每个应用必备的一个控件了 ,但是谈起它的使用 ,让很多人都不是那么喜欢它 ,比如说每个 Web 页面都需要各种一大推

安卓开发-我想实现一个功能,求大神指点一下

问题描述 我想实现一个功能,求大神指点一下 在安卓开发 应用程序交互中, 一般情况下我们处理一个 链接,我们用 Intent+ action_view 然后会弹出很多可以处理这个链接的应用程序. 如果我想用指定的应用程序来处理这个链接,该怎么做呢?

现在,有这样一个功能。每当查询之前,先选择所要显示的哪几列及字段.(如显示:姓名,年龄)。然后,查询时,只显示所选择的哪几列及字段的信息。数据库,表应该怎样来设

问题描述 现在,有这样一个功能.每当查询之前,先选择所要显示的哪几列及字段.(如显示:姓名,年龄).然后,查询时,只显示所选择的哪几列及字段的信息.数据库,表应该怎样来设计?谢谢! 解决方案 解决方案二:跟数据库设计有什么关系??解决方案三:嗯,你认为,应该怎样去实现这样一个功能呢?解决方案四:没太懂你的需求查询前显示的跟查询后显示的数据有关联????解决方案五:person里有姓名,年龄,性别.如果把这3个字段存到一个表中,那么任何对person的查询都会将她们全查询来.这是面向对象思想.如果

我用ssh三大框架编写完一个功能后,测试时出现了这个错误,求解。

问题描述 我用ssh三大框架编写完一个功能后,测试时出现了这个错误,求解. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [bean.xml]: Invocation of init method failed; nested exception is org.hiberna