一般認(rèn)為“軟件測試員”是為了保證軟件的正確運(yùn)行而設(shè)置的職位。這樣的觀點(diǎn)對不對呢?我認(rèn)為這是軟件開發(fā)團(tuán)隊(duì)的管理者的看法,但正因?yàn)檫@樣,這個(gè)看法幾乎被所有團(tuán)隊(duì)成員所接受了,包括測試員自己。

  我認(rèn)為測試員不應(yīng)該這樣看待自己的工作。如果測試員認(rèn)為自己的工作是要保證軟件的正確運(yùn)行,那么在潛意識里,他(她)會傾向于忽略那些可以發(fā)現(xiàn)Bug的測試用例。這也是弗洛伊德所說的“失誤動(dòng)作”中的“選擇性遺忘”。這樣還怎樣保證軟件的正確性呢?

  我的觀點(diǎn)是:測試員的工作目的應(yīng)該是想盡一切非物理攻擊的辦法毀滅這個(gè)軟件。測試員應(yīng)該有這樣的心態(tài),這樣才可能更多的發(fā)現(xiàn)軟件中的Bug,從而提升軟件的價(jià)值。還是從心理學(xué)的角度來說,如果一個(gè)測試員有了這樣的心態(tài),那么在工作時(shí)的不經(jīng)意間會有Bug被逮到,尤其是那些莫名其妙的“失誤動(dòng)作”。這也是為什么一些的測試員經(jīng)常能夠不應(yīng)用一般的測試?yán)碚摱鴥H僅憑借“直覺”發(fā)現(xiàn)比其它測試員更多的Bug的原因了。

  測試員應(yīng)該給自己定好位。我們不是質(zhì)量保證人員,我們是“毀滅者”。

  偉大的卡爾?波普爾提出過一個(gè)叫做“證偽”的論斷。大意是“科學(xué)的增長是通過猜想和反駁發(fā)展的,理論不能被證實(shí),只能被證偽”。這個(gè)觀點(diǎn)有點(diǎn)奇怪,但我對它深信不疑。公司里制定的每一個(gè)項(xiàng)目計(jì)劃,我們都無法證明那個(gè)計(jì)劃是正確的,我們只能想方設(shè)法證明這個(gè)計(jì)劃是錯(cuò)誤的,然后修正,再證明,再修正,直到我們不能證明它有Bug為止,這時(shí)我們認(rèn)為它是可行的。軟件開發(fā)也是一樣,我們永遠(yuǎn)無法證明一個(gè)軟件是完全正確的,我們只能不斷地找Bug,然后修正,再找Bug,然后打補(bǔ)丁……直到我們找不到Bug為止,這時(shí)我們認(rèn)為這個(gè)軟件是接近于完美的(完美幾乎是不可能的)。

  所以,做為測試員,永遠(yuǎn)要堅(jiān)定一個(gè)信念:這個(gè)軟件一定有問題,算它以前沒問題,經(jīng)過我的手,我也要找出問題來。