惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
Microsoft Security Blog
Microsoft Security Blog
大猫的无限游戏
大猫的无限游戏
B
Blog RSS Feed
MyScale Blog
MyScale Blog
博客园_首页
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
小众软件
小众软件
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Vercel News
Vercel News
Hugging Face - Blog
Hugging Face - Blog
The GitHub Blog
The GitHub Blog
D
Docker
宝玉的分享
宝玉的分享
博客园 - 【当耐特】
F
Fortinet All Blogs
V
V2EX
Last Week in AI
Last Week in AI
Blog — PlanetScale
Blog — PlanetScale
Microsoft Azure Blog
Microsoft Azure Blog
IT之家
IT之家
雷峰网
雷峰网
博客园 - 叶小钗
月光博客
月光博客
J
Java Code Geeks
量子位
爱范儿
爱范儿
阮一峰的网络日志
阮一峰的网络日志
Martin Fowler
Martin Fowler
H
Help Net Security
酷 壳 – CoolShell
酷 壳 – CoolShell
腾讯CDC
Latest news
Latest news
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
The Blog of Author Tim Ferriss
T
Troy Hunt's Blog
B
Blog
T
Tenable Blog
S
Schneier on Security
L
LangChain Blog
L
LINUX DO - 热门话题
博客园 - 司徒正美
I
InfoQ
P
Privacy International News Feed
P
Privacy & Cybersecurity Law Blog

博客园 - 芈老头

MongoDB的快速手动安装 MongoDB.WebIDE:升级版的Mongodb管理工具 MVC过滤器使用案例:统一处理异常顺道精简代码 寻虫记:BOM头制造的冤案,无故多出空白行 jquery中attr和prop的区别 director.js:客户端的路由---简明中文教程 MVC利用Routing实现多域名绑定一个站点、二级域名以及二级域名注册Area 关于MVC权限控制的一点小想法 推荐百度地图的新功能--“三维” jQuery UI 应用不同Theme的办法 Asp.Net实现FORM认证的一些使用技巧 关于《asp.net下web控件点评》中的一些看法 【转】程序员的爱情 【转】SQL Server数据库开发的二十一条军规 VS.net2008正式版发布了 VS2005的关于母版页嵌套的一个小技巧 VSS又一次出错了,神出鬼没的 记住window.open的用法 - 芈老头 - 博客园 象WORD一样,双击.doc的文件就自动打开WORD并编辑该文件(转) - 芈老头 - 博客园
从《钢铁侠2》看软件测试的重要性
芈老头 · 2010-06-02 · via 博客园 - 芈老头

作为程序员的我,昨晚看完钢铁侠2,一路回来是感叹颇多。印象最深的还是片尾处,反派被击倒后,开始了自爆程序,然而此自爆程序的倒计时部分却存在明显的BUG,导致主角不但成功逃走甚至还有时间营救几公里开外的女友。更可恨的是,主角不但成功避开自爆,而且还和女友在楼顶边啃嘴边看自爆产生的烟花。这对对手是多大的打击啊……

作为反派的软件工程师,

他在编程能力上不可谓不强,片中他能在很短的时间内破解“hammer”公司的系统密码,从而登录系统可作为例证;

他在动手能力方面也非常强,片中他能在条件极其有限的情况下,制作出将正在比赛的赛车劈成两半的“神鞭”;

他在个人体力方面那不是一般的强,软件工程师通常是手无缚鸡之力,片中的他却能徒手将两个看守他的彪形大汉打倒,并悬吊在屋顶上,充分证明了他的体力的出众,再加上他那满是沧桑的脸庞,一个极具男人味的粗犷型软件工程师呼之欲出;

更难能可贵的是,他在系统的扩展性和思想的前瞻性方面以及风险预估和规避方面,做得也很强,片中,他在“钢铁战斗系统神鞭1.0版”的基础上扩展出了“钢铁战斗系统无人版”,而且他预见性的知道无人版的战斗系统是无法伤害主角的,于是他又给自己升级开发了“钢铁战斗系统神鞭2.0版”,甚至他也预见了2.0版的战斗系统还是打不过主角,于是他准备了“钢铁战斗系统自爆插件”。可见,他做为一个软件工程师,对整个工程的掌控是多么的完善。

可是最终,他还是没能赢过主角。为什么?

因为,自始至终反派的软件工程师没有对他的产品进行测试,原因可能是“hammer”公司的老总对他限制太多,导致了他没法测试,其二,他自己也过于自信,或者有点受粗犷型性格的影响,忽视了测试这一步。

反过头来我们再看主角,从第一集开始,主角是完全按照软件工程来开始一个产品研发了,有立项,有需求,有分析,有研发,最重要的是他有测试。不但有单元测试(第一集中,主角单个测试脚步的飞行控制,单个测试手部的能量发射系统等),还有整合测试(第一集中,将钢铁衣整合在一起进行各种飞行测试等),甚至有极端临界条件的测试(第一集中,飞到极度高空,测试在极度低温环境下的效能)。而在第二集中,主角为了找到替代能源,更是进行了多次的测试,直至找到后,还在进行稳定性的测试,只是在最后为形式所逼,测试过程没有完整走完,但基本的测试还是有的。

于是,反派在最后关头启动“钢铁战斗系统自爆插件”,但因为没有测试倒计时的那个模块,导致主角成功脱逃,自己也输了这场斗争。

由此可见,测试对于一个软件项目来说,是多么重要。没有测试,没有详尽的测试,交付给用户的系统就是充满不确定性不稳定性的系统,到最后,回过头来伤害的还是软件工程师本人和本团队。