軟件測試工程師:其職能是理解產品的功能要求,然后對其進行測試,檢查軟件有沒有錯誤(Bug),決定軟件是否具有穩定性(Robust),并寫出相應的測試規范和測試案例。
國內的一位博士到微軟總部參觀之后,覺得非常奇怪:“測試人員是做什么的?為什么微軟在做產品時,測試人員占了一半以上?”其實,軟件測試在產品開發中占據相當重要的一部分,這是一種需要,是微軟從二十幾年的實踐中明白的道理,也是微軟從不斷的失敗中總結的經驗。
大家可以感覺到,微軟以前的產品有時會發生崩潰、死機等現象,而今天的產品則比五年前的產品更大、更完善,并且要穩定得多。為什么呢?這是因為測試工作越來越好,測試人員越來越多,而且越來越有經驗。關于這一點,微軟公司曾經算過一筆賬:最初,微軟公司與大家一樣,認為測試不重要,重要的是開發人員。通常,一個團隊中有幾百個開發人員,但只有幾個測試人員,并且開發人員的工資比測試人員高很多很多。經過多年的實踐公司發現,為那些出現問題的產品再去修一個補丁程序所花的錢,比多雇用幾個測試人員的費用要多得多。
但是,軟件測試到底是一門什么樣的科學?沒有人知道,大家只是在摸索。它需要什么樣的背景,也沒有人知道。所以,微軟的測試人員中,只有很少一部分是從計算機出身的,其余的有學俄語的、英語的、數學的、工程的、生物的……種類特別多,但有一點:測試人員一定要有一種感覺。
由于現在的軟件測試仍然處于發展階段,往往測試人員還是依據本能、靠感覺、靠天賦來做軟件測試。如果像用戶那樣只是通過使用來發現Bug不是真正的測試,這只是一種最基本的測試,你只能發現一般用戶的問題。
最后,我以一段有趣而又真實的故事來結束這篇文章。
我在微軟總部做測試組長和經理時,經常需要招聘測試人員。我招聘人時通常會遵循兩個原則:一是要看他的邏輯性,這是非常重要的一點;二是要看他的思維是否怪異,是否能經常產生一些怪點子。第一點是可以依靠后天培養的,但是第二點恐怕是后天培養不出來的,多少有些天生的因素在里面。
這兩個原則是我在多年的實踐中得出來的。由于軟件測試學科還不成熟,目前還沒有一種很好的標準來衡量一個測試人員的優劣。而且它到底需要一個什么樣的專業基礎,尚無定論。從目前來看,并不是說學計算機專業的就最適合做軟件測試人員。
說起來也許大家不會相信,我曾經親自招聘過一位家庭主婦來做微軟的測試人員!
這名家庭主婦已經四十多歲了,是一位海軍軍官的妻子,三位孩子的母親。她只讀到高中畢業,連大專也沒有上(在美國沒有上過大專的人是很少的)。她使用計算機的水平也非常初級,而且還是跟著自己的女兒學的。后來她在家閑得無聊,就決定出來找一個工作,而且居然跑到微軟來應聘了。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/