为什么这些程序员会对写测试这么抓狂?

发布于 更新于

技术文章

我想这是因为他们只专注于提升他们编程的能力,却忽略了学习测试方面的知识。其实道理就像在玩一个 RPG 游戏(比如说「上古卷轴」),当你把你角色的弓箭技能点满的时候,你却发现你需要点满单手武器技能才能打通当前的剧情。这时你一定会在心里大喊:「...

我想这是因为他们只专注于提升他们编程的能力,却忽略了学习测试方面的知识。其实道理就像在玩一个 RPG 游戏(比如说「上古卷轴」),当你把你角色的弓箭技能点满的时候,你却发现你需要点满单手武器技能才能打通当前的剧情。这时你一定会在心里大喊:「这简直太坑爹了」!是的,试想一下,当你苦思冥想的「远程打击」技能在一场近身肉搏混战中没能发挥什么作用时的心情,你就能明白我说的意思。


其实,在另一种相似的情境里,比如说当你需要学习一门新的编程语言的时候,我们通常也会有这种心态。当你专精于一门语言(像 Ruby),你运用这门语言时,自然会比运用其他语言(比如说 Java 或 PHP)时来得更高效。诚然,你可以在学习新语言时运用你已有的经验,触类旁通。但是,学习新语言的语法,编程范式,IDE 或者理解整个体系依旧是必不可少的。这同样需要花费大量的时间。


其他类似的情境中,像我们通常要面对不同的开发环境,不同的产品类型(原生的 Windows 桌面应用,浏览器应用和移动端iOS应用),开发人员要游走于前端和后端,甚至当学习两门不同的外语,比如西班牙语和汉语时,我们大都会有同样的心态。


那么回归到正题,当你舒舒服服地开发着新的功能,突然意识到你需要测试这些功能时(假设这不是一个 TDD 流程),那么这种令人抓狂的情绪必会「如约而至」。这种感觉就像你突然置身于一个不知名的沼泽中,只能靠双腿,慢慢地寻找着出路。


继续阅读