軟體測試是一門非常嶄新的學科,目前研究的內容還不很深入,所涉及的只是測試數字、測試函式等一些非常簡單的問題,可以說還處於嬰兒階段。當前,軟體測試作為乙個成長中的專業,在美國已經有大學開設。由於軟體測試學科還不成熟,到底它需要乙個什麼樣的專業基礎,尚無定論,而且目前還沒有一種很好的標準來衡量乙個測試人員的優劣。陳巨集剛博士以微軟公司為例為我們講述了軟體測試的方法。
軟體測試工程師:其職能是理解產品的功能要求,然後對其進行測試,檢查軟體有沒有錯誤(bug),決定軟體是否具有穩定性(robust),並寫出相應的測試規範和測試案例。
國內的一位博士到微軟總部參觀之後,覺得非常奇怪:「測試人員是做什麼的?為什麼微軟在做產品時,測試人員佔了一半以上?」其實,軟體測試在產品開發中佔據相當重要的一部分,這是一種需要,是微軟從二十幾年的實踐中明白的道理,也是微軟從不斷的失敗中總結的經驗。
大家可以感覺到,微軟以前的產品有時會發生崩潰、宕機等現象,而今天的產品則比五年前的產品更大、更完善,並且要穩定得多。為什麼呢?這是因為測試工作越來越好,測試人員越來越多,而且越來越有經驗。關於這一點,微軟公司曾經算過一筆賬:最初,微軟公司與大家一樣,認為測試不重要,重要的是開發人員。通常,乙個團隊中有幾百個開發人員,但只有幾個測試人員,並且開發人員的工資比測試人員高很多很多。經過多年的實踐公司發現,為那些出現問題的產品再去修乙個補丁程式所花的錢,比多雇用幾個測試人員的費用要多得多。
但是,軟體測試到底是一門什麼樣的科學?沒有人知道,大家只是在摸索。它需要什麼樣的背景,也沒有人知道。所以,微軟的測試人員中,只有很少一部分是從計算機出身的,其餘的有學俄語的、英語的、數學的、工程的、生物的……種類特別多,但有一點:測試人員一定要有一種感覺。
由於現在的軟體測試仍然處於發展階段,往往測試人員還是依據本能、靠感覺、靠天賦來做軟體測試。如果像使用者那樣只是通過使用來發現bug不是真正的測試,這只是一種最基本的測試,你只能發現一般使用者的問題。
最後,我以一段有趣而又真實的故事來結束這篇文章。
我在微軟總部做測試組長和經理時,經常需要招聘測試人員。我招聘人時通常會遵循兩個原則:一是要看他的邏輯性,這是非常重要的一點;二是要看他的思維是否怪異,是否能經常產生一些怪點子。第一點是可以依靠後天培養的,但是第二點恐怕是後天培養不出來的,多少有些天生的因素在裡面。
這兩個原則是我在多年的實踐中得出來的。由於軟體測試學科還不成熟,目前還沒有一種很好的標準來衡量乙個測試人員的優劣。而且它到底需要乙個什麼樣的專業基礎,尚無定論。從目前來看,並不是說學計算機專業的就最適合做軟體測試人員。
說起來也許大家不會相信,我曾經親自招聘過一位家庭主婦來做微軟的測試人員!
這名家庭主婦已經四十多歲了,是一位海軍軍官的妻子,三位孩子的母親。她唯讀到高中畢業,連大專也沒有上(在美國沒有上過大專的人是很少的)。她使用計算機的水平也非常初級,而且還是跟著自己的女兒學的。後來她在家閒得無聊,就決定出來找乙個工作,而且居然跑到微軟來應聘了。
當時,我在面試她的時候就已經發現她的計算機水平很有限,只能達到乙個一般使用者的標準。但是,我發現她的思維很怪異,怪點子很多,能夠很快地發現一些問題。於是,我就隨便讓她試用一下ie,結果她當場就給我找出了好幾個bug。她完全是憑著一種感覺來找bug的。
後來,我對老闆說,我想雇用她。老闆一聽,睜大了雙眼:「are you crazy?you want to hire a housewife!(你瘋了嗎?你居然想雇用乙個家庭主婦!)」
於是我跟他說了一下我的想法。他還是覺得讓乙個大學都沒有上過的家庭婦女做測試人員是不可思議的。但是,最後他還是說:「you are the hire manager.you make the decision!(你是招聘經理,還是你自己來決定吧!)」
我最終決定還是雇用她。在開始階段,她的確存在許多問題。我只是認識到她的感知力很強,卻忘了她的其他素質如何。由於她一直做家庭婦女,沒有在職業環境中待過,因此顯得很粗魯,經常大聲喧嘩,利用辦公**到處大聲打**,在辦公室裡抽菸,而且還經常逞能,走到別人後面得意地告訴別人:「i just found a bug!(我剛剛找到乙個bug!)」,好像別人都發現不了bug。但是,後來我警告過她以後,她就努力改正了這些毛病,並非常認真敬業。她學得非常快,三個月以後,就已經非常專業了。最後,我的老闆終於承認她真是非常厲害,並將她轉為了正式職員,現在她恐怕已經成為測試組長了。
從這個例子可以看出,做一名好的普通測試人員並不需要某方面(如計算機)的專業基礎,我們不能像評價開發人員一樣依照常理來評價測試人員。開發人員肯定需要專業基礎,但是測試人員有多種,如做ie的一些手工測試(manual test)就不需要任何專業基礎,他們是在以使用者的身份使用(甚至亂用)產品並從中發現問題。那位家庭婦女就具有這方面的天分。我當時也招聘了一些學生物、物理專業的博士,但他們做得並不怎麼樣,遠不如這位家庭婦女幹得好。
我為什麼僱傭家庭主婦做軟體測試
軟體測試是一門非常嶄新的學科,目前研究的內容還不很深入,所涉及的只是測試數字 測試函式等一些非常簡單的問題,可以說還處於嬰兒階段。當前,軟體測試作為乙個成長中的專業,在美國已經有大學開設。由於軟體測試學科還不成熟,到底它需要乙個什麼樣的專業基礎,尚無定論,而且目前還沒有一種很好的標準來衡量乙個測試人...
微軟為什麼僱傭家庭主婦做軟體測試
軟體測試是一門非常嶄新的學科,目前研究的內容還不很深入,所涉及的只是測試數字 測試函式等一些非常簡單的問題,可以說還處於嬰兒階段。當前,軟體測試作為乙個成長中的專業,在美國已經有大學開設。由於軟體測試學科還不成熟,到底它需要乙個什麼樣的專業基礎,尚無定論,而且目前還沒有一種很好的標準來衡量乙個測試人...
轉行之後,我為什麼選擇做軟體測試
轉行it,有軟體開發 技術支援 運營,那麼為什麼我偏偏選擇做軟體測試相關工作,這到底不是偶然還是必然?不斷變化的行業現狀 在早年,軟體測試還屬於乙個嶄新的內容,出現在大家的眼中。而軟體測試究竟需要什麼樣的軟體基礎,還不得而知。但是看近年,軟體測試越來越受到公司的重視,軟體測試工程師崗也在凸顯重要的作...