如何加強測試過程改進 軟件測試
為了更好的開展測試工作,需要我們在工作過程中不斷積累經驗、不斷對測試過程進行改進工作。那么又該從哪些方面入手進行測試改進呢?個人分析如下:
1、增加測試需求分析
前提:用戶需求搜集、軟件需求分析
軟件測試過程也是一個相對的開發過程,而不是機械的服從于開發過程及其過程資源,需要進行軟件測試的需求分析。
測試活動需要從軟件需求中理解系統行為,但不是機械的從字面上聽從軟件需求的內容。
測試需求分析,需要關注的不僅僅是軟件需求所表現出來的特性,還需要關注軟件需求之外的一些特性。
測試需求分析的目的,與軟件需求分析的目的是一致的,都是為了滿足用戶的需求,因此,在理解軟件需求之前,獲取最原始的用戶需求是必須的。而目前的測試,真正涉及到用戶需求的不多。
測試需求分析最直接的對象很多,目前至少有2個:用戶需求和軟件需求,其他的涉及到軟件開發過程中其他的一些對象,如,軟件系統結構、軟件開發技術/方法、開發語言、測試環境等,見后面的說明。
不同的測試對象和測試類型,其測試需求分析的對象和方法也是不一樣的。
目前,測試需求分析并未形成一種有效的模式,也只是借鑒于軟件需求分析的模式,以滿足用戶需求和軟件需求為最終目標。
測試需求分析,基本上基于一種過程的概念,對測試對象和測試過程中所有可能涉及到的事務進行有效分析,提煉出測試的對象和范圍,從而確保測試對象和過程的正確性和有效性。
測試需求分析的要素,至少包括對象、行為、過程、結果4個部分,其中后3者可以定義為對象的測試場景分析。
說明一點的是,在現在的流程中,測試計劃和需求的同行評審具有了一些測試需求分析的特征
2、強化參與開發深度
前提:集成軟件開發(含測試)
目前的測試,基本上只停留在對軟件需求的理解之上。
而需求并不是業務。對需求的生搬硬套,就如囫圇吞棗,結果可想而知。如果對業務表現形式熟練,在測試的時候,測試的有效性就高些。而如果對業務根本不理解,那就不可能真正的測試到業務所需要滿足的要求。
如何提高對業務的理解呢?只有從用戶需求開始就深入的參與項目開發過程,才有可能真正的理解業務及其表現形式,從而進行有效的測試設計和執行。當然不同的測試對象和類型,所參與的深度是可以不同的。
目前要做好這一步,可能還需要很多的時間,同時也需要項目組給予更多的支持和參與。例如,項目經理、開發經理需要很明確在整個的開發過程中需要進行哪些測試(要說明預期中的結果是什么、期待發現什么問題等),需要提供哪些資源(包括相關文檔、測試時間、人員配合和技能支持等)給測試人員
3、優化測試用例設計
前提:測試需求分析
1)目前的測試用例設計,基本上是基于對軟件需求的一種理解,從而在表現形式上是進行測試執行具體步驟的設計,這是正確的,而且在很大程度上已經滿足了目前測試流程的需要,但是,如果相對進行分步式設計,可能會更有利于測試的持續發展。
軟件測試設計雷同于軟件開發設計過程,也不是一蹴而就的,是需要一個循序漸進的過程的。首先需要根據軟件測試分析所提供的可行性,對軟件項目進行概要性的設計,在概要性的設計取得用戶(該用戶包括該系統的BA(作為最終用戶代表)、設計開發人員(作為開發人員代表)、測試人員(作為測試人員代表))的認可(即評審)。
然后,根據概要性的設計對測試用例進行詳細設計,該設計即可對應現在的測試設計階段,主要實現對測試的試運行條件、測試對象操作人員、測試執行步驟、測試結果與通過標準等的分析和設計。該階段的測試設計需要取得BA、測試人員的認可(即評審)。
2)測試用例設計可以進行測試執行步驟的設計,但不僅僅是步驟的設計,需要言簡意賅,重復性的設計盡量復用,這樣在設計測試用例的時候才能一幕了然。在此也建議采用對象化的設計方法來設計測試用例,而不是從功能角度進行。參見測試需求分析。
說明:目前的測試項起到了部分的作用
4、增加測試場景設計
前提:測試需求分析
測試場景有3個概念,也分三步走:
第1步,是在進行測試需求分析的時候,對測試場景進行了分析,在此需要對測試場景進行設計,這些測試場景的設計基本可以按照測試需求分析的要求進行,部分在測試設計的過程中成為了測試用例。
第2步,就是在進行測試用例設計的時候,常常需要對一些特殊的測試用例(執行)進行測試場景設計,以滿足某些測試(用例)執行的需要。
第3步,就是使用輔助性的測試工具,對一系列的測試執行步驟進行集合,錄制、編寫測試腳本,從而在進行bug/功能驗證、回歸測試的時候,直接執行腳本即可。
說明:可以與目前流程中的測試規程相結合使用
5、強化測試用例執行
前提:優化測試用例設計、增加測試場景設計
目前測試執行的狀態是測試用例寫了無數,但是執行的時候卻基本不按照此執行,即使按照測試用例執行,也很難在測試用例執行的時候填寫測試執行結果。
原因有2個,一個是測試用例設計過于細致,無法按照測試用例執行(一次操作就可能執行了幾十條記錄);另一個就是測試用例執行沒有自動化,重復執行困難。
因此 需要在優化測試用例設計的基礎上,強化測試用例的執行率,使得測試過程中的記錄更為完整(個人并不贊成執行單步執行,這樣的效率極其低下)。
可以在測試用例設計階段引進測試用例設計工具,使得測試用例執行時能夠方便提交bug,且重復執行起來快捷。而且對于重復執行且界面等發生變化不大的測試用例執行內容腳本化,則可以大大減輕在測試執行過程中的勞動強度。參見測試場景設計
6、強化系統回歸測試
前提:回歸測試的測試需求分析、優化測試用例設計、增加測試場景設計
目前的系統測試在很多的時候需要進行回歸測試,但是由于系統回歸測試的目的很模糊,且測試用例的設計過于繁瑣,測試執行沒有形成一定的積累,因此在進行系統回歸測試的時候也基本上只基于所關注的功能點進行,效果也比較小。對于比較龐大的系統回歸測試工作,更是難以真正的展開,并有所成效。
而要扭轉這種局面,需要在優化測試用例設計、增加測試場景設計的基礎上,在測試過程中不斷的積累測試用例和腳本,并在對回歸測試進行了測試需求分析之后,采用適當的方法,才能有效的進行系統回歸測試
7、強化測試結果分析
測試結果分析有2個目標,一個是對測試的階段性總結,提出測試過程中發現的問題,總結目前階段被測試系統的滿足程度,另一個總結測試經驗,改進測試過程和系統缺陷。
目前的測試結果分析報告基本滿足要求,關鍵是如何提交有價值的測試報告,同時相關人員予以關注,促進問題和缺陷得到有效的解決
8、明確測試管理目標
一個積極、鼓勵性質的測試管理目標和一個為管理而管理的測試管理目標對激發員工積極性和提高測試有效的效果是截然不同的。
測試管理的目標,主要是3個,一個是改進測試過程,一個提高測試人員素質,一個是提高測試技術。三個方面,相輔相成,缺一不可。
文章來源于領測軟件測試網 http://www.kjueaiud.com/