當(dāng)前國內(nèi)軟件企業(yè)測試流程不規(guī)范的原因分析:

  1) 從事物的發(fā)展規(guī)律看,軟件測試行業(yè)在我國還是新興行業(yè),目前還處于起步和探索期,雖然國外的同行業(yè)發(fā)展到了一定階段,但事實(shí)上他們也在不斷的否定自我并探索著更成熟的方法、尋求著更有效的方案;而國內(nèi)的測試行業(yè)發(fā)展期不過10來年,所謂的測試管理流程不規(guī)范,也情有可原了。

  2) 從企業(yè)個體角度講,測試部門的整頓和加強(qiáng),按照企業(yè)自身發(fā)展的優(yōu)先層次,還沒有被納入優(yōu)先解決的程度,開拓市場、簽訂定單才是首要問題,也是維系企業(yè)生存發(fā)展的命脈。當(dāng)然國內(nèi)很多的大中型軟件公司的測試部門相對完善,如神州數(shù)碼、用友、聯(lián)想等,他們和大型跨國軟件公司的合作,也從中汲取了寶貴的管理經(jīng)驗(yàn)。

  3) 還有一個普遍存在的問題。近幾年國內(nèi)軟件企業(yè)為了加強(qiáng)企業(yè)的競爭優(yōu)勢和名氣提升,通常大搞特搞ISO/CMM認(rèn)證;筆者也很支持這么做,但更關(guān)注的是通過這些認(rèn)證后的企業(yè)有多少真正按照那些規(guī)范、設(shè)計的標(biāo)準(zhǔn)在后續(xù)的測試或軟件開發(fā)管理工作中著手開展下去呢?社會上流傳著這樣的話:任何認(rèn)證到中國,后都免不了砸牌兒!筆者讀書時很多高校搞的MCSE認(rèn)證,有培訓(xùn)機(jī)構(gòu)明目張膽聲稱"百分百通過率"!當(dāng)年也有專門媒體報道此事。聽到這樣的話,我們都會寒心,這里真心希望我們的軟件企業(yè)通過ISO/CMM后真正為企業(yè)的內(nèi)部軟件開發(fā)流程帶來一點(diǎn)新生的曙光。

  4) 后一個原因,我想是企業(yè)內(nèi)部測試管理人員和技術(shù)人員技能的不足,還有自身工作態(tài)度的不夠端正。有了再好的規(guī)范標(biāo)準(zhǔn),沒人遵守不行!沒人實(shí)施不行!應(yīng)該說,很多中小軟件企業(yè)的高層都或多或少的逐漸意識到軟件測試的重要性和必要性,以及它的標(biāo)準(zhǔn)化、流程化改革的緊迫性,但也有很多的工程師、技術(shù)人員并不理會這套,常常在實(shí)際工作中投機(jī)取巧;也有很多測試管理人員后天的經(jīng)驗(yàn)不足、技能不夠,對公司測試管理工作考慮不到位,和開發(fā)工程師交流不充分,和上層領(lǐng)導(dǎo)反映不及時等等。

  總之,任何問題的出現(xiàn)都不是單方面的原因,從宏觀的社會形勢到微觀的企業(yè)個人,都有無可推卸的責(zé)任;正因?yàn)槿绱,解決問題也要對癥下藥,如何完善軟件測試流程,要從小處出發(fā);本文不可能將軟件測試流程優(yōu)化的話題闡述的面面俱到,因此只從管理角度談?wù)劀y試用例在測試活動中的重要性,以及測試用例管理流程的一些改進(jìn)思路。

  1.強(qiáng)化測試用例在測試活動中的作用

  測試用例在實(shí)際中沒有起多大作用,在實(shí)際測試時根本沒有按測試用例執(zhí)行,測試執(zhí)行后沒有把新的測試用例補(bǔ)充到用例庫中……為何如此?我們分析認(rèn)為,根本原因是對測試用例重要性的認(rèn)識不夠,測試流程不完善,針對測試用例的管理流程更不完善,從三個方面具體來說:

  1) 測試用例的重要性是毋庸置疑的,它是軟件測試全部過程的核心,是測試執(zhí)行環(huán)節(jié)的基本依據(jù),如果這個依據(jù)不能足夠發(fā)揮它應(yīng)起的作用,那是不是說這個依據(jù)不明確、依據(jù)設(shè)計的不合理呢?答案是肯定的!

  2) 制定了完備有效的測試用例,為什么不按測試用例執(zhí)行測試呢?首先是因?yàn)槠髽I(yè)沒有嚴(yán)格和良好的機(jī)制促使和保證測試執(zhí)行者這樣做;其次是個別測試人員投機(jī)取巧心理作祟的表現(xiàn)。

  3) 測試用例設(shè)計得不可能天衣無縫,不可能完全滿足軟件需求的覆蓋要求,測試執(zhí)行過程里肯定會發(fā)現(xiàn)有些測試路徑或數(shù)據(jù)在用例里沒有體現(xiàn),那么事后該將其補(bǔ)充到用例庫里,以方便他人和后續(xù)版本的測試;如果沒有這樣做,那么測試部門負(fù)責(zé)人和每個測試員都難辭其疚,是該重新坐下來思考一下公司的測試用例管理規(guī)范和測試流程了。

  2.改進(jìn)測試用例執(zhí)行過程

  那么究竟如何做,才能盡量避免上述問題呢?我們不妨從軟件開發(fā)周期的每個階段把這些問題考慮進(jìn)去,以便從初始力爭將問題縮到小,將其扼殺在萌芽階段,以防后期階段出現(xiàn)問題時互相推卸責(zé)任或干脆束手無策!

  1) 軟件需求分析階段,筆者從來認(rèn)為測試人員從軟件生命周期的需求階段開始介入。通常測試人員的測試工作開展在開發(fā)周期的末尾,如果前期不涉入,如何通曉整個系統(tǒng)的需求和架構(gòu)而對其充分測試呢?雖然該觀點(diǎn)被大多數(shù)同行所認(rèn)可,但我知道依然有很多公司為了節(jié)省費(fèi)用,不讓測試人員參與前期調(diào)研或制定需求,經(jīng)常的做法是等到系統(tǒng)開發(fā)完畢或?qū)⒔瓿,跟測試經(jīng)理說一聲"這邊有個項(xiàng)目,你找?guī)讉人來測試一下吧!"經(jīng)驗(yàn)表明,這樣的做法實(shí)不可取。