我從畢業(yè)開始,就在一家軟件公司上班,做的是軟件開發(fā),因為公司小,基本上一個項目我一個人從頭到尾安排,包括測試,不過那種測試只是自己調(diào)試,好了就給客戶用,根本就沒有什么文檔,也別說測試了,經(jīng)過一年時間,我掌握了從與客戶溝通到測試到部署的整個項目過程,雖然還不規(guī)范,但已經(jīng)是有了個大概了解,實際的了解,在這過程中,我發(fā)現(xiàn)軟件工程與項目規(guī)范管理很重要,自己總結(jié)的一些與軟件工程的差不多,于是我特別注意軟件工程并學(xué)習(xí)它。但我覺得重要的還是從設(shè)計,需求、開發(fā)上來理解軟件工程與其運用,還側(cè)重程序開發(fā),文檔我雖重視了些,多半是后來補上的。
第二年我進(jìn)入了一家臺灣的軟件公司,他們是做軟件產(chǎn)品的,產(chǎn)品與項目不同,基本上看不到需求的過程,只有設(shè)計、開發(fā)、測試,公司分為開發(fā)部與QA部,我在開發(fā)部的一個產(chǎn)品小組里,在這個小組里,我主要學(xué)會了如何寫文檔,因為公司對文檔是有要求的,而且是英文文檔,并且理解了產(chǎn)品的整個過程與實際公司的運作,在公司里還接受了各種培訓(xùn),如請美國項目管理協(xié)會的講師等等,讓我獲益非淺,那段時間我開始掌握ROSE建模型,COMCORBA等,那時候這些東西還是新事物。我們這個產(chǎn)品開發(fā)結(jié)束后基本上是維護(hù)了,代碼沒多少,就是改客戶提交的問題?;旧弦呀?jīng)讓我們改的沒有任何問題了,QA測試也沒問題了,一次,我們菲律賓的一線實施人員來公司學(xué)習(xí)產(chǎn)品,我向他介紹產(chǎn)品,他跑了一下,不一會,他就發(fā)現(xiàn)問題,我發(fā)現(xiàn)他測試的思路是從客戶角度,及我們想不到的角度去操作,這讓我大吃一驚,因為。我們的QA已經(jīng)有測試計劃,測試用例。但還是有問題,這讓我對測試有了新的認(rèn)識,得重新認(rèn)識軟件測試了,正好我們項目組的QA移民了,缺少Q(mào)A,QA部暫時也沒人進(jìn)來,因此我考慮了一下,主動去做QA,當(dāng)時領(lǐng)導(dǎo)還問我,確定好了嗎,因為象我這樣的程序設(shè)計開發(fā)“高手”怎么想到去QA。而我當(dāng)時的想法是,我要把軟件的整個過程掌握,包括測試,因為這是我的弱項。
于是我就開始了我的QA經(jīng)歷,在這一年中我掌握了產(chǎn)品的發(fā)布過程,維護(hù),實施等規(guī)范的過程,特別是掌握了QA測試的從文檔到實際測試的經(jīng)驗,由于我從開發(fā)設(shè)計過來,因此我測試出的東西比別人多,同樣一個問題,我不但告訴程序員有問題了,而且告訴他,估計是那個地方,或那類代碼有問題。因為我看到界面,就知道代碼是如何實現(xiàn)的。
我在那個公司呆了三年,兩年的開發(fā)設(shè)計,開發(fā)組組長,最后一年的測試QA,做QA的階段,我掌握了整個產(chǎn)品的過程與測試所有的要求過程,由于公司采用自動化測試的,我那時候就用了Winrunner 6,由于我是開發(fā)出身,Winrunner 的腳本類C語言,因此,我很快掌握了 ,并且在Winrunner 語言不足的情況下,自己編寫代碼,及調(diào)用代碼,比如出錯了,自動調(diào)用我的截屏程序截下保存錯誤的界面等等,寫了許多供Winrunner 調(diào)用的dll,這讓我對軟件自動化測試有了較好的認(rèn)識。有時候自己也寫點自動輔助測試的工具。
第四年,我到了一家國外軟件公司(公司的總公司是搞電子的)的中國研發(fā)中心,開始我是以項目經(jīng)理的角色進(jìn)入的,這家公司很規(guī)范,主要接國外的單子,因為是剛開始籌建,所以規(guī)范上還沒有一個成行的套路,只是參照國外公司的模式,文檔要求與我前一個公司差不多都要求較高,那時候是2001年,我開始帶的項目是基于.net環(huán)境的,后來基本上是作基于j2ee平臺的,這年我的設(shè)計,開發(fā)技術(shù)水平又有了更好的提高。在做項目經(jīng)理期間,我不但要按規(guī)范搞好項目,還得參與設(shè)計分析,這對我的項目管理水平與開發(fā)水平提高很多,又因為我以前做過測試,因此我對項目的測試很重視,從項目需求開始,就開始考慮測試問題,計劃安排,及需求與設(shè)計與測試的銜接,可測性等等。項目的測試人員的水平不高,我就教他們,從技術(shù)到測試管理安排。這段時間我對單元測試的工具測試有了了解,如用Nunit,Junit,Cunit來測試,及靜態(tài)測試等等。
因為寫代碼對我來說很簡單。由于公司是開始建設(shè),組織機構(gòu)還不全,那時候測試沒有部門,屬于總經(jīng)理管,后來決定成立QA部門,總經(jīng)理把我叫去,讓我作QA部門經(jīng)理,我那時候并不想搞QA,因為我認(rèn)為QA已經(jīng)沒什么好掌握的了,另外QA部門與QA角色總的來說總有點比開發(fā)人員“低檔”的感覺。但是我還是接了下來,先做著吧。于是我就成了QA部門的部門經(jīng)理,管理著每個項目的QA,由于我們以項目為主,我把QA的職責(zé),部門與項目之間的關(guān)系定好,QA屬于項目負(fù)責(zé),管理上與技術(shù)指導(dǎo)上由QA部門負(fù)責(zé),這樣項目經(jīng)理能夠根據(jù)項目來安排,而不會與部門產(chǎn)生矛盾,我把部門定義為支持與服務(wù)項目的部門。同時我定了每個星期五開部門會議,討論項目與技術(shù),同時還定了每個QA人員必須用平時的時間學(xué)習(xí)一門技術(shù),有的學(xué)Winrunner有的學(xué)Loadrunner ,有的學(xué)單元測試,不限制時間,然后,會了就與大家講解,這樣促進(jìn)部門的測試人員共同提高,我呢就常指導(dǎo)他們技術(shù),也教他們編寫程序的知識,也常講QA測試,軟件質(zhì)量,TQC,TQA等等。
后來公司因為逐漸完善了,一次總經(jīng)理讓我們商量是認(rèn)證ISO9000還是CMM,由于CMM2價格高,我后來建議先根據(jù)自己的實際認(rèn)證ISO9000,雖然許多公司認(rèn)證是靠花錢就可以了,實際并沒做,但我們要以這個為開始,然后再向CMM發(fā)展,不能為了認(rèn)證而認(rèn)證。后來公司就成立了ISO9000認(rèn)證小組,總經(jīng)理牽頭,我負(fù)責(zé),負(fù)責(zé)全過程,如寫質(zhì)量手冊,過程文件,安排項目文檔要求等等。
由于我們本來項目管理很規(guī)范,文檔實用與齊全,所以,很容易就通過認(rèn)證,完全是按照要求做的。在這個認(rèn)證后,計劃在一兩年后在做CMM。我在做QA部門經(jīng)理的期間除了學(xué)習(xí)了更多的測試技術(shù)與知識外,還把許多理論性的知識應(yīng)用到實際中,如BUG密度計算,MTTF,代碼行估算與BUG估算等等,全用到實際中,測試上,多采用工具檢查,且自己寫程序測試。這樣從一個項目需求開始,根據(jù)技術(shù)程度,人員技術(shù)水平等等,就大概能估計到產(chǎn)品規(guī)模大概多大,大概的BUG有多少,基本上我為我們定的是正式測定每千行1-3個BUG,這也是我們的質(zhì)量標(biāo)準(zhǔn)之一。由于是測試部門,我接觸的項目很多,每個項目我都要參與指導(dǎo)測試,這樣對不同類型的項目不同的策略,就有了不斷的積累,不同規(guī)模,不同大小,不同技術(shù)采用不同的測試策略。同樣接觸的技術(shù)層面也很廣了。每個項目從需求與設(shè)計,我都要去看,了解,雖然累些,當(dāng)真的掌握了很多東西,如從SUN,IBM解決方案,各種UNix 平臺等大型應(yīng)用開發(fā)與測試。同時也能認(rèn)識到自己在設(shè)計中的局限,能更好的設(shè)計好產(chǎn)品。
這段時間是我對軟件工程及測試?yán)斫庹J(rèn)識掌握的好時機,對以后的工作大有幫助。文檔的水平越來越高了,寫得實在且有用。在這家公司也呆了三年,之后我去了家新的公司,因為我主要對項目設(shè)計開發(fā)感興趣,所以我還是找項目開發(fā)的職位,并不想在測試上花太多時間,那時我去了一家軟件公司作項目部經(jīng)理,管理各個項目及組織。我就脫離了測試的工作,又回到了開發(fā)工作中,但因為我以前的測試經(jīng)歷,所以在項目無論開始,設(shè)計與測試,我都很注意質(zhì)量與客戶的要求。
后來就在做項目開發(fā),技術(shù)上。會時常用到測試的知識,公司的測試人員,也都是我培訓(xùn)出來的。雖然離開了測試,但還有點測試情節(jié),也時常關(guān)心測試的情況,動態(tài),在開發(fā)過程中研究些測試技術(shù),安全測試等。主要是基于代碼級別的測試。做些小工具,如屏幕錯誤捕捉工具等等。嘗試用用新的測試工具,國內(nèi)外測試的情況,朋友還讓我管個測試的QQ群,這樣我與大家的測試交流都沒斷,共享自己的資料,與大家討論,給大家解答與介紹等等。雖然不在測試崗位了,我發(fā)現(xiàn)我還是有喜歡測試的,離不開測試。
無論項目如何,技術(shù)如何,所有的測試的基本道理是一樣的,所以大家還是先掌握好基本的,不僅僅是學(xué),而是會用好它。學(xué)以至用才能發(fā)展下去。而且測試不能因為環(huán)境限制而浮躁,老老實實的學(xué)習(xí)和應(yīng)用。深入下去你就是專家。細(xì)節(jié)決定成敗。