摘要:下面的幾個軟件測試項目失敗的案例,會給廣大項目經(jīng)理以警示。這些項目為什么會失敗?分析原因也是為了避免自己失敗。

  案例1:A公司是一家從事網(wǎng)游點卡交易的互聯(lián)網(wǎng)公司,去年年底我司做調(diào)研時發(fā)現(xiàn)一個問題:測試部門有近40人,獨立于研發(fā)團隊,團隊成員分為自動化測試和手工測試兩個小組,測試經(jīng)理則是從IBM過來的,但據(jù)研發(fā)和測試人員反應(yīng),測試人員的地位非常低,自動化測試崗位形同虛設(shè),沒有起到任何作用,在互聯(lián)網(wǎng)軟件開發(fā)的過程中,測試人員的價值非常有限,測試員工的成感非常低,近一個月也有30%-40%的離職率,這個問題讓負責(zé)測試部門的陳總非常頭痛,一方面人員不太穩(wěn)定,一方面軟件質(zhì)量的問題越來越多....

  案例2:B公司是深圳一家醫(yī)療電子企業(yè),公司有專業(yè)的軟件測試部,獨立向研發(fā)管理部匯報。經(jīng)過我司的調(diào)研,B公司的軟件測試流程已具備,專業(yè)的測試人員也有一批,但測試人員相對于開發(fā)人員普遍薪酬低,缺乏激勵,加上公司領(lǐng)導(dǎo)層對研發(fā)過程質(zhì)量不太關(guān)注,研發(fā)過程中測試不充分,導(dǎo)致許多致命的問題到客服現(xiàn)場才發(fā)現(xiàn),后又把責(zé)任推到測試頭上,測試人員不愿意承擔(dān)責(zé)任,導(dǎo)致團隊的測試效率非常低下,開發(fā)與測試之間相互推諉....

  以上兩個案例,是中國目前很多企業(yè)遇到的問題。軟件究竟需不需要測試,軟件的測試究竟怎么做?如何通過軟件測試來保證產(chǎn)品質(zhì)量?....在軟件開發(fā)越來越占重要地位的,越來越多的領(lǐng)導(dǎo)層已認識到軟件測試的重要性,但除了華為、中興、騰訊等為數(shù)不多的幾個公司做得好一點之外,很多企業(yè)都還在摸索,測試部門的價值在一個公司里往往成了爭論的焦點,測試人員的地位也無法與開發(fā)人員抗衡。

  筆者曾經(jīng)分別任職于華為和阿里巴巴公司,也曾經(jīng)服務(wù)過一些中小型軟件公司,成功和失敗的案例都有,總體來說,中國目前的軟件測試體系還不成熟,很多公司試圖做好軟件測試,但由于在測試管理、測試技術(shù)、測試流程等方面缺乏高度的認識,往往導(dǎo)致測試失敗,如測試人員的待遇問題、測試技術(shù)如何提升、自動化需要做到什么程度等等,測試為什么失?根據(jù)筆者多年的測試管理經(jīng)驗,可以歸結(jié)為以下三個方面:

  1)缺乏測試組織的支撐。許多公司的測試組織仍然附屬于開發(fā)部門,沒有獨立的測試環(huán)境,不能從公平、公正的角度指出軟件存在的缺陷,并要求在限定的時間對軟件的缺陷進行修復(fù)。國外較成熟的測試組織(如微軟,Yahoo等),測試組織屬于QA部門,而不是研發(fā)部門,這樣更有利于保證產(chǎn)品質(zhì)量。另一方面,許多公司對測試部門的定位是QC(質(zhì)量控制)部門,而測試部門并沒有控制質(zhì)量的權(quán)利,而成了QC(質(zhì)量檢測)的角色,即在后一個環(huán)節(jié)對軟件產(chǎn)品進行驗證,這個時候為時已晚,產(chǎn)品質(zhì)量的很多問題可能已無法測試出來。在華為公司,測試和開發(fā)是平等的,兩個部門都是PDT(產(chǎn)品開發(fā)團隊)的組成部分。如下圖所示:

  PDT是臨時小組,在項目開始時成立,在產(chǎn)品成功發(fā)布后解散,PDT成員在概念階段一起作整個項目的計劃,PDT成員在執(zhí)行階段一起管理整個項目,測試人員和開發(fā)人員同時參與項目的整個過程。只有測試人員一開始進入產(chǎn)品開發(fā)團隊,才能有效的保證產(chǎn)品質(zhì)量,因此,建立獨立于開發(fā)的測試體系是非常必要的。

  2)缺乏測試流程的保障。很多公司建立了規(guī)范了開發(fā)流程,如CMMI或IPD等等,但軟件測試往往成了短板,如開發(fā)的版本發(fā)布頻繁,測試人員疲于奔命,測試人員缺乏質(zhì)量檢測標(biāo)準(zhǔn),測試過程中的軟件需求變更過快,沒有測試結(jié)束標(biāo)準(zhǔn)等...這些都是缺乏規(guī)范的測試流程的表現(xiàn)。沒有規(guī)范的測試流程,研發(fā)人員會經(jīng)常會以此為借口,發(fā)布沒有完善的軟件版本,開發(fā)過程中不做版本規(guī)劃,修改缺陷時經(jīng)常返工...這些,都會增加測試人員的工作量,而作為開發(fā)的下游部門,測試人員很難去改變開發(fā)人員的這些不規(guī)范的行為,只能用大家公認的流程去約定大家的開發(fā)行為,如單元測試、集成測試、系統(tǒng)測試、驗收測試的入口條件、中斷條件、出口條件等。同時,在開發(fā)過程中,對開發(fā)人員和測試人員的行為進行約束,如開發(fā)修復(fù)缺陷后需要返工,要與績效掛鉤;測試人員漏測試致命或嚴重缺陷需要處罰等等。目前,業(yè)界較流行的開發(fā)流程采用V模型:

  V模型的特點是:開發(fā)與測試緊密相連。在V模型中,從項目的需求分析、概要設(shè)計、詳細設(shè)計到具體的編碼編寫。開發(fā)的每一個環(huán)節(jié)都和軟件的測試緊密相扣,可以有效的保證產(chǎn)品質(zhì)量。各個階段測試的工作如下:

  ① 需求階段主要活動是:測試工作從需求文檔中,設(shè)計系統(tǒng)測試的用例,按照需求文檔的功能劃分,突出測試重點。完成系統(tǒng)測試的計劃工作。

  摘要:下面的幾個軟件測試項目失敗的案例,會給廣大項目經(jīng)理以警示。這些項目為什么會失?分析原因也是為了避免自己失敗。

  案例1:A公司是一家從事網(wǎng)游點卡交易的互聯(lián)網(wǎng)公司,去年年底我司做調(diào)研時發(fā)現(xiàn)一個問題:測試部門有近40人,獨立于研發(fā)團隊,團隊成員分為自動化測試和手工測試兩個小組,測試經(jīng)理則是從IBM過來的,但據(jù)研發(fā)和測試人員反應(yīng),測試人員的地位非常低,自動化測試崗位形同虛設(shè),沒有起到任何作用,在互聯(lián)網(wǎng)軟件開發(fā)的過程中,測試人員的價值非常有限,測試員工的成感非常低,近一個月也有30%-40%的離職率,這個問題讓負責(zé)測試部門的陳總非常頭痛,一方面人員不太穩(wěn)定,一方面軟件質(zhì)量的問題越來越多....

  案例2:B公司是深圳一家醫(yī)療電子企業(yè),公司有專業(yè)的軟件測試部,獨立向研發(fā)管理部匯報。經(jīng)過我司的調(diào)研,B公司的軟件測試流程已具備,專業(yè)的測試人員也有一批,但測試人員相對于開發(fā)人員普遍薪酬低,缺乏激勵,加上公司領(lǐng)導(dǎo)層對研發(fā)過程質(zhì)量不太關(guān)注,研發(fā)過程中測試不充分,導(dǎo)致許多致命的問題到客服現(xiàn)場才發(fā)現(xiàn),后又把責(zé)任推到測試頭上,測試人員不愿意承擔(dān)責(zé)任,導(dǎo)致團隊的測試效率非常低下,開發(fā)與測試之間相互推諉....

  以上兩個案例,是中國目前很多企業(yè)遇到的問題。軟件究竟需不需要測試,軟件的測試究竟怎么做?如何通過軟件測試來保證產(chǎn)品質(zhì)量?....在軟件開發(fā)越來越占重要地位的,越來越多的領(lǐng)導(dǎo)層已認識到軟件測試的重要性,但除了華為、中興、騰訊等為數(shù)不多的幾個公司做得好一點之外,很多企業(yè)都還在摸索,測試部門的價值在一個公司里往往成了爭論的焦點,測試人員的地位也無法與開發(fā)人員抗衡。

  筆者曾經(jīng)分別任職于華為和阿里巴巴公司,也曾經(jīng)服務(wù)過一些中小型軟件公司,成功和失敗的案例都有,總體來說,中國目前的軟件測試體系還不成熟,很多公司試圖做好軟件測試,但由于在測試管理、測試技術(shù)、測試流程等方面缺乏高度的認識,往往導(dǎo)致測試失敗,如測試人員的待遇問題、測試技術(shù)如何提升、自動化需要做到什么程度等等,測試為什么失?根據(jù)筆者多年的測試管理經(jīng)驗,可以歸結(jié)為以下三個方面:

  1)缺乏測試組織的支撐。許多公司的測試組織仍然附屬于開發(fā)部門,沒有獨立的測試環(huán)境,不能從公平、公正的角度指出軟件存在的缺陷,并要求在限定的時間對軟件的缺陷進行修復(fù)。國外較成熟的測試組織(如微軟,Yahoo等),測試組織屬于QA部門,而不是研發(fā)部門,這樣更有利于保證產(chǎn)品質(zhì)量。另一方面,許多公司對測試部門的定位是QC(質(zhì)量控制)部門,而測試部門并沒有控制質(zhì)量的權(quán)利,而成了QC(質(zhì)量檢測)的角色,即在后一個環(huán)節(jié)對軟件產(chǎn)品進行驗證,這個時候為時已晚,產(chǎn)品質(zhì)量的很多問題可能已無法測試出來。在華為公司,測試和開發(fā)是平等的,兩個部門都是PDT(產(chǎn)品開發(fā)團隊)的組成部分。如下圖所示:

 

  PDT是臨時小組,在項目開始時成立,在產(chǎn)品成功發(fā)布后解散,PDT成員在概念階段一起作整個項目的計劃,PDT成員在執(zhí)行階段一起管理整個項目,測試人員和開發(fā)人員同時參與項目的整個過程。只有測試人員一開始進入產(chǎn)品開發(fā)團隊,才能有效的保證產(chǎn)品質(zhì)量,因此,建立獨立于開發(fā)的測試體系是非常必要的。

  2)缺乏測試流程的保障。很多公司建立了規(guī)范了開發(fā)流程,如CMMI或IPD等等,但軟件測試往往成了短板,如開發(fā)的版本發(fā)布頻繁,測試人員疲于奔命,測試人員缺乏質(zhì)量檢測標(biāo)準(zhǔn),測試過程中的軟件需求變更過快,沒有測試結(jié)束標(biāo)準(zhǔn)等...這些都是缺乏規(guī)范的測試流程的表現(xiàn)。沒有規(guī)范的測試流程,研發(fā)人員會經(jīng)常會以此為借口,發(fā)布沒有完善的軟件版本,開發(fā)過程中不做版本規(guī)劃,修改缺陷時經(jīng)常返工...這些,都會增加測試人員的工作量,而作為開發(fā)的下游部門,測試人員很難去改變開發(fā)人員的這些不規(guī)范的行為,只能用大家公認的流程去約定大家的開發(fā)行為,如單元測試、集成測試、系統(tǒng)測試、驗收測試的入口條件、中斷條件、出口條件等。同時,在開發(fā)過程中,對開發(fā)人員和測試人員的行為進行約束,如開發(fā)修復(fù)缺陷后需要返工,要與績效掛鉤;測試人員漏測試致命或嚴重缺陷需要處罰等等。目前,業(yè)界較流行的開發(fā)流程采用V模型:

  V模型的特點是:開發(fā)與測試緊密相連。在V模型中,從項目的需求分析、概要設(shè)計、詳細設(shè)計到具體的編碼編寫。開發(fā)的每一個環(huán)節(jié)都和軟件的測試緊密相扣,可以有效的保證產(chǎn)品質(zhì)量。各個階段測試的工作如下:

 、 需求階段主要活動是:測試工作從需求文檔中,設(shè)計系統(tǒng)測試的用例,按照需求文檔的功能劃分,突出測試重點。完成系統(tǒng)測試的計劃工作。