其實這話已經是老生常談了,我記得2002年51CMM的測試論壇里面就有過這樣的爭論,無非分成兩派或者需要或者不需要。其實這樣的帖子跟“用JAVA好還是用C++好”一樣沒有多少討論價值,首先講個故事:
昨天的傳奇說了這樣的一件事情,有一對美國兄妹(沒有受過多少教育的那種,妹妹讀書讀到社區高中,通過補考得到了最后的高中畢業證書),某天哥哥被別人陷害入獄,罪名“謀殺”。當時的證據都對她哥哥不利,并且有幾件可以證明清白的證物都莫名其妙的消失了,最后陪審團判定當事人謀殺成立,終身監禁。妹妹相信哥哥是無辜的,她頂住壓力通過各種途徑幫助哥哥,但是她實在出不起高昂的律師費用,所以她決定自己做律師出庭為哥哥辯護。
當時妹妹的處境也不好,丈夫因為嫌棄和她離婚,并且留下了兩個兒子交給她獨立撫養,妹妹一邊上社區大學一邊打全職工(現在我也弄不明白這個妹妹怎么上學的,估計是類似于中國大學自考性質的),斷斷續續中間過了6-7年,妹妹畢業后繼續報考法學院,再經過4年(看電視上的時間一晃而過其中多少艱辛。┧K于獲得了為哥哥取證、辯護的資格,一名標準美國律師。實際上后面的故事就很簡單了,經過現代DNA技術判斷,他哥哥原罪名被推翻無罪獲釋,他們整個家族的聲譽恢復等等。
我始終對這種節目的潛臺詞感興趣:只要你去做而不是僅僅留在口頭上你就能做成功!我們現在回過頭看看我們的標題“測試需要有編碼基礎嗎?”
對我來說,只要是做IT的就不可能避免的接觸代碼,測試作為開發的緊密切合過程,深入編碼內部是毫無疑問的,如果你連代碼都看不懂怎么做一些特殊的測試?這里我說了是“特殊”測試,如果你碰到了以下場景,請開始努力學習代碼技術:
1.假設公司采用了面向對象的語言,采用了面向對象設計的設計,并且技術總監是個測試狂人,他需要每個測試人員展開100%的技術導向測試的。
2.假設你在UNIX環境上工作,并且你要配合開發做聯測的。
3.假設你在測試工作了很多年,但是你厭煩了靜態測試想嘗試一下動態測試的時候。
4.假設你從后臺LOG中看到了ERROR,但是BUG定位范圍過大需要在代碼中內嵌跟蹤語句,且開發人員非常粗魯的。
5.假設你無法靠想象排除相互動作的三套系統究竟誰才是BUG歸屬地的。
6.假設性能測試需要生成一堆天文測試數據的。
7.假設客戶單位要求這么做的,不做不付合同尾金的。
8.假設你很有時間,測試工作也不累并且從來不加班的。
9.假設你的測試需要達到某些軟件前置條件的。
10.假設有上萬份測試結果報告需要你1個小時內總結的。
11.假設你需要點編碼知識增加點“信心”用以欺騙自己繼續在測試生存下去的。
12.假設你想加薪水,且BOSS也這么認可你的。
等等等等......,除此之外看來。編碼直接對測試真的沒有什么太大的或者其他的幫助,就像你你出門旅游一樣帶了一大堆東西,有些東西原樣帶出原樣帶回,標準累贅。
實際上對測試最大的幫助的還是測試理論是否扎實,而測試理論是需要其他軟件工程各個方面知識堆積的,如果今天我把標題修改成“測試需要有軟件設計基礎嗎?沒有軟件設計基礎對以后的測試發展是不是會很難?”、“測試需要有需求分析基礎嗎?沒有需求分析基礎對以后的測試發展是不是會很難?”等等,你認為這樣正確嗎?
對于非計算機類從事測試的人員,我始終保持最高的敬意,上面故事的最后一段話就是送給你們的,因為你們的大學教育和現在的工作處境不一樣,所以你們需要看點代碼增加點“語感”,這樣可以很快速的加強你們對測試的掌控能力,至于計算機本學科從事測試人員,我什么也不說,去看達爾文的“演化論”吧!
延伸閱讀
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/