常聞軟件測試者的如此抱怨:
測試用例在實際中根本沒有起多大作用?
測試人員在實際測試時都沒有按測試用例來執行?
測試執行后沒有把需要更新的測試用例補充到用例庫中?
……
當前國內軟件企業測試流程不規范的原因分析:
1) 從事物的發展規律看,軟件測試行業在我國還是新興行業,目前還處于起步和探索期,雖然國外的同行業發展到了一定階段,但事實上他們也在不斷的否定自我并探索著更成熟的方法、尋求著更有效的方案;而國內的測試行業發展期不過10來年,所謂的測試管理流程不規范,也就情有可原了。
2) 從企業個體角度講,測試部門的整頓和加強,按照企業自身發展的優先層次,還沒有被納入優先解決的程度,開拓市場、簽訂定單才是首要問題,也是維系企業生存發展的命脈。當然國內很多優秀的大中型軟件公司的測試部門相對完善,如神州數碼、用友、聯想等,他們和大型跨國軟件公司的合作,也從中汲取了寶貴的管理經驗。
3) 還有一個普遍存在的問題。近幾年國內軟件企業為了加強企業的競爭優勢和名氣提升,通常大搞特搞ISO/CMM認證;筆者也很支持這么做,但更關注的是通過這些認證后的企業有多少真正按照那些規范、設計的標準在后續的測試或軟件開發管理工作中著手開展下去呢?社會上流傳著這樣的話:任何認證到中國,最后都免不了砸牌兒!筆者讀書時很多高校搞的MCSE認證,有培訓機構明目張膽聲稱\"百分百通過率\"!當年也有專門媒體報道此事。聽到這樣的話,我們都會寒心,這里真心希望我們的軟件企業通過ISO/CMM后真正為企業的內部軟件開發流程帶來一點新生的曙光。
4) 最后一個原因,我想是企業內部測試管理人員和技術人員技能的不足,還有自身工作態度的不夠端正。有了再好的規范標準,沒人遵守不行!沒人實施不行!應該說,很多中小軟件企業的高層都或多或少的逐漸意識到軟件測試的重要性和必要性,以及它的標準化、流程化改革的緊迫性,但也有很多的工程師、技術人員并不理會這套,常常在實際工作中投機取巧;也有很多測試管理人員后天的經驗不足、技能不夠,對公司測試管理工作考慮不到位,和開發工程師交流不充分,和上層領導反映不及時等等。
總之,任何問題的出現都不是單方面的原因,從宏觀的社會形勢到微觀的企業個人,都有無可推卸的責任;正因為如此,解決問題也要對癥下藥,如何完善軟件測試流程,就要從小處出發;本文不可能將軟件測試流程優化的話題闡述的面面俱到,因此只從管理角度談談測試用例在測試活動中的重要性,以及測試用例管理流程的一些改進思路。
強化測試用例在測試活動中的作用
測試用例在實際中沒有起多大作用,在實際測試時根本沒有按測試用例執行,測試執行后沒有把新的測試用例補充到用例庫中……為何如此?我們分析認為,根本原因是對測試用例重要性的認識不夠,測試流程不完善,針對測試用例的管理流程更不完善,從三個方面具體來說: [Page]
1) 測試用例的重要性是毋庸置疑的,它是軟件測試全部過程的核心,是測試執行環節的基本依據,如果這個依據不能足夠發揮它應起的作用,那是不是說這個依據不明確、依據設計的不合理呢?答案是肯定的!
2) 制定了完備有效的測試用例,為什么不按測試用例執行測試呢?首先是因為企業沒有嚴格和良好的機制促使和保證測試執行者這樣做;其次是個別測試人員投機取巧心理作祟的表現。
3) 測試用例設計得不可能天衣無縫,不可能完全滿足軟件需求的覆蓋要求,測試執行過程里肯定會發現有些測試路徑或數據在用例里沒有體現,那么事后該將其補充到用例庫里,以方便他人和后續版本的測試;如果沒有這樣做,那么測試部門負責人和每個測試員都難辭其疚,是該重新坐下來思考一下公司的測試用例管理規范和測試流程了。
改進測試用例執行過程
那么究竟如何做,才能盡量避免上述問題呢?我們不妨從軟件開發周期的每個階段就把這些問題考慮進去,以便從初始就力爭將問題縮到最小,將其扼殺在萌芽階段,以防后期階段出現問題時互相推卸責任或干脆束手無策!
1) 軟件需求分析階段,筆者從來認為測試人員從軟件生命周期的需求階段就開始介入。通常測試人員的測試工作開展在開發周期的末尾,如果前期不涉入,如何通曉整個系統的需求和架構而對其充分測試呢?雖然該觀點被大多數同行所認可,但我知道依然有很多公司為了節省費用,不讓測試人員參與前期調研或制定需求,經常的做法是等到系統開發完畢或將近完成,跟測試經理說一聲\"這邊有個項目,你找幾個人來測試一下吧!\"經驗表明,這樣的做法實不可取。
測試人員(指項目的測試負責人和測試工程師)在需求階段的任務有:
參與軟件需求調研,以測試角度分析需求的可測性,可構思將來對其測試的方法、原則等;更重要的是,對不可測或難以測試性問題要及時與客戶或項目經理協調解決。
全面了解系統需求,從客戶角度考慮軟件測試需要達到的驗證狀態,即何些功能點需重點測試、何些無需,以便將來制定測試計劃。
推薦企業采用類似于IBM Rational Requisitepro的需求管理工具來制定和管理軟件需求,同時需要測試人員的配合,保證對軟件測試環節的充分考慮。
2) 軟件分析設計階段,測試人員除制定測試計劃書等基本工作外,筆者認為還有一個相當必要的任務,那就是將系統的可測性落實到書面文檔,以備將來編寫測試用例。 之所以要這么做,是因為考慮到很多企業編寫測試用例直接參考需求規格說明書或者分析流程圖,這樣跨度大,難度也大,是造成測試用例不完備、覆蓋范圍小的重要原因。
如果公司采用類似于IBM Rational Rose的建模分析工具和IBM Rational Rose XDE Developer的可視化設計開發環境,這個工作更好執行;如果沒有,那么測試人員更有必要編寫一份《軟件功能點測試描述書》,它是軟件的詳細測試分析文檔,其主旨是將系統分析人員的開發分析文檔加工成以測試為角度的功能點分析文檔,重要的是描述對系統分解后每個功能點逐一的校驗描述,包括何種方法測試、何種數據測試、期望測試結果等,這些信息都是描述性的,無須具體數據;它的作用是據此編寫測試用例,以及測試執行時的參考依據,基于它直接來源于需求,覆蓋當然最全,也最能貼近客戶要求。 [Page]
文章來源于領測軟件測試網 http://www.kjueaiud.com/