软件测试不是一个功能
今天在工作中我对一个同事说,PyDev 2.5.0现在对TDD(测试驱动开发)提供了很酷的支持了。我并不是一个对TDD很痴迷的倡导者,对其它事物也一样,但仍不免激起了一场讨论。这个家伙,让我们暂叫他约翰,说:“在开发一个功能时TDD可以节省开发的时间,但有时候一个功能需求,要求的是如此的紧急,我们要尽可能快的交付这个功能,软件测试放在以后再说。”
诸如这样的话让我欲哭无泪。
我极力解释说,没有测试,发布的代码会存在不可想象的风险。就像这个功能非常的重要一样,你的产品也会因此受到严重的破坏。尤其在使用Python语言时,很少有问题会在编译期显示出来(一个简单的书写错误就会导致运行期的一个AttributeError,甚至更遭)。我认为这种风险过高而不可接受。约翰回复说也许你说的是对的,但是否值得冒这样的风险,这种权利把握在项目经理手里。如果你使用TDD,实际上你是剥夺了他认为可以“放弃软件测试以后在说”的权利。“
说实话,对于这样的逻辑观念,我不知道如何回答。不错,老板有权利决定是否需要测试我的程序,但是…他应该这样吗?一个建筑工人被告知先把砖块码起来,灰泥以后再补,这样合理吗?
在我读过的书本中显示,这种想法是错误的。软件测试并不是一个功能。它不是一个由客户提出来的需求。它不是”最好测一下“。
它是一个软件的任何一段代码的固有组成。
不错,你可以开发出不经测试的软件。它甚至可以运行,就像是摞起来的砖块看起来也是一堵墙。但如果遇到大一点的风,它有可能就会砸到某人的头上。
你会对持这样观点的人做怎样的回复?
软件测试不是一个功能相关推荐
- android post请求添加公共参数_XHttp2 一个功能强悍的网络请求库
XHttp2 一个功能强悍的网络请求库,使用RxJava2 + Retrofit2 + OKHttp组合进行封装.还不赶紧点击使用说明文档,体验一下吧! 项目地址 关于我 https://github ...
- Android-如何开发一个功能强大的图片选择器
图片选择器是Android开发中会经常用到的一个功能,特别对于社交类的应用,比如头像设置,比如发图片.自然ImagePicker的轮子很多,今天介绍一个功能强大的轮子SImagePicker 介绍 首 ...
- SLP是最近在BCH中引入的一个功能,它允许创建定制令牌。
据cryptobriefing报道,Bitcoin.com宣布,计划推出一个新的中心化加密货币交易所.承诺的功能包括用户友好的界面,易于导航,高流动性和强大的匹配引擎.该平台定于9月2日开始交易,以B ...
- wps中的相交_PPT中最好用的一个功能,非它莫属了~
来自:利兄日志(ID:lixiongppt)作者:利兄 千呼万唤始出来~ 大家催了好久了,今天就详细和大家聊聊PPT中最好用的一个功能-布尔运算. 之前我在文章中反复提过这个词,但是很多人依然不会用, ...
- 二维码QR Code不是一个产品,是一个功能
2019独角兽企业重金招聘Python工程师标准>>> 台湾有许多公司,开始跨入 QR Code 的相关应用,热度开始逐渐上升.最近有幸跟许多在这方面有兴趣的朋友们聊天,得到了很多的 ...
- scanf_s()函数 (是Microsoft公司VS开发工具提供的一个功能相同的安全标准输入函数)
scanf()函数是标准C中提供的标准输入函数,scanf_s()函数是Microsoft公司VS开发工具提供的一个功能相同的安全标准输入函数.因为scanf()在读取数据时不检查边界,所以可能会造成 ...
- VB.NET完成一个功能增强的记事本
VB.NET完成一个功能增强的记事本 分类: DotNet 2011-07-02 16:05 153人阅读 评论(0)收藏 举报 想必大家都听说过Notepad2,Notepad++一类的记事本增强软 ...
- 目测这个APP要火啦,只有一个功能就要干倒小咖秀?
PMCAFF产品经理社区 更多精彩尽www.pmcaff.com 90.00后已逐渐成长为消费市场的中坚力量,他们的喜好也变成创业者争相迎合的对象,原本只受90后和二次元喜欢的弹幕,早已变成视频播放的 ...
- 运营一个网站,新增加一个功能,容易忽视哪些问题就匆匆上线?
1 数据架构中的索引.新增功能少不了新增表,但是在设计规划阶段,往往思想是做表结构,很少有开发人员能够考虑到后期的性能问题,业务查询量集中度问题.一个资深的开发人员会考虑新增功能的性能瓶颈可能会存在于 ...
最新文章
- JDBC连接mysql数据的7个步骤(讲解+源码)
- cp -r dir1/. dir2 表示将dir1下的文件复制到dir2,不包括dir1目录
- GetOverlappedResult函数详细解答
- nn.Conv2d中padding详解【pytorch学习】
- 手写简版spring --3--对象实例化策略
- 判定两个tensor维度相同_Tensorflow源码解析5 -- 图的边 - Tensor
- 【教训】rm -fr ./* 教训
- ASP.Net中无刷新执行Session身份验证
- 壊小子的学习【日常阅读篇】(三)常规学习类图书
- luogu P1220 关路灯
- 最快的存储过程分页 50W
- Microsoft Windows XP SP3安装测试手记
- 树莓派4B Ubuntu20.04 ROS2 DSO realsense d455
- 全球主要城市时区时差转换计算表
- 【论文翻译】Deep Learning
- This experimental syntax requires enabling the parser plugin: ‘optionalChaining‘
- Delphi访问网络共享文件夹
- Elasticsearch:运用 Go 语言实现 Elasticsearch 搜索
- Qt编写自定义控件:彩色渐变圆角按钮之二
- C++上机实验三第2题
热门文章
- java环境_配置java环境变量
- 阿里云服务器被[kthreaddi]挖矿病毒攻击
- ajax jsp模糊查询源码,Ajax动态执行模糊查询功能
- 【Tyvj - 1305】最大子序和(单调队列优化dp)
- 【PAT - 甲级1012】The Best Rank (25分)
- 【HDU - 2376】Average distance (树,平均距离,算贡献)
- 【POJ - 1696】Space Ant (凸包,最小极角,排序)
- php中pregmatch,php中preg_match的isU代表什么意思
- java细粒度锁_Java细粒度锁实现的3种方式
- 我的世界java版游戏崩溃_我的世界全攻略之-游戏崩溃的解决方法