1、測試流程

  首先說說測試流程,微軟的測試流程也沒什么新的東西,和大多數(shù)的測試流程一樣。

  大致是先進行測試準備,然后是Testcase的編寫,然后是白盒測試(不一定每個項目都有),然后是功能測試階段,然后是驗收測試,終release。

  如果看流程的話,和一般公司大同小異,沒什么新花樣。但是我覺得值得借鑒的是兩點。

  第一,微軟的流程執(zhí)行的非常認真。

  這點非常值得提倡,我們都知道,測試的終質量決定于測試流程和測試人員素質,要想測試質量有保證,要么是流程很完善,要么你流程不行,但是個人能力超強。如果有一個很好的流程,算執(zhí)行的人稍微差點,終的質量也不會差到哪里去。所以流程是很重要的。

  但是,看國內(nèi)的公司欠缺的是這個,要么是沒有流程,要么流程是個花架子,沒認真執(zhí)行過。我想微軟的測試人都是超級牛人,但是人家還是老老實實的忠實按照流程來走,我覺得這點非常好。(在IBM 也是這樣,筆者以前在IBM作項目的時候,發(fā)現(xiàn)他們的文檔寫的特認真,流程特認真),所以說忠實的執(zhí)行一個好的流程是成功的一大半。

  第二,在整個流程中,微軟非常強調(diào)測試盡早介入。

  微軟在這方面是一致提倡的,按照我們國內(nèi)IT業(yè)的惡習,一般都是軟件主體差不多成型了,拉幾個測試人員過來點點,其實這是非常不好的。微軟的測試人員在項目一開始和開發(fā)人員同步介入,在需求階段開始介入,進行需求評審。在開發(fā)人員開始編碼的時候,測試人員開始編寫Test case,并開發(fā)一些測試工具,或者寫一些配套的測試代碼(不要奇怪,微軟的測試人員都能寫很好的代碼)。微軟的理念是:預防bug比解決bug好,所以非常提倡測試盡早介入,把一部分bug消滅在需求階段。

  2、自動化流程

  說到自動化,大家可能以為我是說微軟的自動化測試工具多牛,其實微軟內(nèi)部用到的自動化測試工具倒是不多,算有也都是內(nèi)部開發(fā)的,非常實用的,他們不會去用MI的工具。

  說微軟的自動化程度高,主要是體現(xiàn)在流程方面,譬如說整個自動構建流程,在開發(fā)人員代碼check in之后,系統(tǒng)自動發(fā)郵件,郵件內(nèi)容是一個change list,包括代碼更新list以及一個編譯者添加的comment,其內(nèi)容是該版本功能的變化或者修改掉的bug ID。整個測試過程中能用自動化的地方都盡可能采用自動化,盡可能減少人為失誤,并且可以使人和機器并行工作。個人覺得,這點很值得我們國內(nèi)的測試公司借鑒,能自動化的流程都自動化,減少一些不必要的溝通。

  3、質量控制機制

  說到質量控制是個大問題,需要整個團隊和流程提高素質。那么微軟的質量控制可以借鑒的是什么呢?是他們的機制。在微軟的測試流程當中,在開發(fā)的早期,項目中所有的問題都是Dev leader和PM商量說了算(當然也要參考需求方的意見),但是到后期,具體是功能測試之后,項目的主動權都在測試這邊,某個bug的要不要解決,或者項目進度控制都是測試leader說了算。這和國內(nèi)的大多數(shù)軟件公司是不一樣的,在微軟,測試人員要對終的軟件質量負責任,但是也有相應的權利來約束開發(fā)人員。當然,他們也肯定有一些bug是產(chǎn)生爭議的,這個時候的仲裁機制是PM,這個不是我們傳統(tǒng)的PM(Project manager),而是一種具有微軟特色的PM(全稱是Program manager)。這樣,測試人員在對一些爭議bug的處理上有相當?shù)脑捳Z權。

  4、測試用例及管理

  微軟的測試用例倒沒什么特別的,不過看過他們用例之后,還是覺得寫的詳細,認真,但是又不冗長拖沓,這個需要很高深的水平。另外,微軟的測試用例管理用的是微軟自己開發(fā)的用例管理工具。

  另外值得說明的是,微軟的每個用例都進行了分級,并且功能所在的模塊都標的很清楚。

  5、效率

  在效率方面,微軟的測試效率非常高!高的讓人驚嘆,我問一個在微軟工作的哥們,“你們那邊測試的大特點是什么”,他說“大特點是快!”,是效率很高,具體是在測試后期過程中測試和開發(fā)之間的反饋非常快,開發(fā)修改一定量的bug,提交一個新的版本。測試人員往往能在很快的時間內(nèi)把測試結果反饋出來,一般是在1天之內(nèi)能把用例快速run一遍,這樣能減少某些后期才發(fā)現(xiàn)bug導致的項目delay。在國內(nèi)很多項目的通病是,開發(fā)解決問題帶進一個新問題,測試人員整個遍歷一遍用例之后才能發(fā)現(xiàn),這樣來回反復消耗了大量的時間。

  但微軟是如何才能實現(xiàn)快速反饋呢?

  第一,測試人員對程序的了解,微軟的測試人員對程序內(nèi)部結構都非常熟悉,修改某一個地方,可能引起什么問題,哪些用例需要重新測試,測試人員非常清楚,能快速的執(zhí)行可能出錯的地方。如果某些模塊不熟悉,那么他們會和開發(fā)人員在一起溝通這次修改可能引起的問題。

  第二,工具!還是工具,在微軟的測試中,測試人員用各種工具幫助測試,提高測試效率是占到很大的比重。

  第三,時間意識。微軟的測試人員有強烈的時間意識。