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

推荐订阅源

Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
H
Hacker News: Front Page
Stack Overflow Blog
Stack Overflow Blog
B
Blog
I
InfoQ
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
月光博客
月光博客
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
F
Full Disclosure
Hacker News - Newest:
Hacker News - Newest: "LLM"
Recent Announcements
Recent Announcements
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
T
Tailwind CSS Blog
S
Secure Thoughts
P
Privacy International News Feed
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 最新话题
H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
Cybersecurity and Infrastructure Security Agency CISA
Last Week in AI
Last Week in AI
W
WeLiveSecurity
Google Online Security Blog
Google Online Security Blog
P
Privacy & Cybersecurity Law Blog
D
DataBreaches.Net
Engineering at Meta
Engineering at Meta
Know Your Adversary
Know Your Adversary
P
Palo Alto Networks Blog
I
Intezer
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Project Zero
Project Zero
V2EX - 技术
V2EX - 技术
H
Heimdal Security Blog
博客园 - Franky
阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Troy Hunt's Blog
V
Vulnerabilities – Threatpost
H
Help Net Security
Martin Fowler
Martin Fowler
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
G
GRAHAM CLULEY
博客园 - 【当耐特】

博客园 - 芈老头

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”公司的老总对他限制太多,导致了他没法测试,其二,他自己也过于自信,或者有点受粗犷型性格的影响,忽视了测试这一步。

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

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

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