測試流程簡述
by:授客 QQ:1033553122
測試過程(以下左圖)與測試階段(或類型)(以下右圖)
圖-1
說明:
1.
以上左圖描述的通用軟體測試過程。右圖描述的是具體的測試活動階段,按不同的測試階段分可分單元測試、內建測試、确認測試、系統測試、驗收測試,回歸測試,冒煙測試等測試類型。
2.
回歸測試是指修改了舊代碼後,重新進行測試以确認缺陷的修複,及修改沒有引入新的錯誤或導緻其他代碼産生錯誤。軟體開發的各個階段都會進行多次回歸測試。
3.
冒煙測試(也叫送出測試),正式測試前對軟體主業務流程和主功能進行驗證與确認,確定後續測試能正常進行的測試。現狀:一般是在新版本送出前,進行正式測試前的進行冒煙測試
4.
右邊的每個測試活動階段,可以按左側的測試過程進行,文檔評審,測試計劃、測試設計、測試執行、測試總結等(可根據實際情況對測試過程進行适度裁剪)
5.
左邊的和右邊兩幅圖進融入軟體開發過程中,就産生了以下将說到的各種測試模型
6.
階段(類型)細分:如下圖
測試過程和開發過程協作(典型模型舉例說明)
W模型為例
圖-2
1.
其中系統設計也叫概要設計。
2.
軟體需求評審,主要是評審軟體需求規格說明書、主要依據是産品需求文檔
3.
系統設計評審,主要是評審系統架構設計等,主要依據系統概要設計說明書
4.
詳細設計評審,主要是評審詳細的設計,比如接口設計是否合理,主要依據詳細設計說明書
ps:現實狀況是,一般的公司,一般的項目都做不到這麼規範的,有些公司甚至沒有文檔,目前筆者見過的比較規範的也就興業銀行的品質管理(瀑布模型對銀行類項目似乎還是比較實用的)
H模型
圖-3
1.
V、W模型均存在一些不妥之處。首先,如前所述,它們都把軟體的開發視為需求、設計、編碼等一系列串行的活動,而事實上,雖然這些活動之間存在互相牽制的關系,但在大部分時間内,它們是可以交叉進行的。雖然軟體開發期望有清晰的需求、設計和編碼階段,但實踐告訴我們,嚴格的階段劃分隻是一種理想狀況。試問,有幾個軟體項目是在有了明确的需求之後才開始設計的呢?是以,相應的測試之間也不存在嚴格的次序關系。同時,各層次之間的測試也存在反複觸發、疊代和增量關系。其次,V、W模型都沒有很好地展現測試流程的完整性。
為了解決以上問題,提出了H模型。它将測試活動完全獨立出來,形成一個完全獨立的流程,将測試準備活動和測試執行活動清晰地展現出來。
2.
H模型圖僅僅示範了在整個生存周期中某個層次上的一次測試“微循環”。圖中的其他流程可以是任意開發流程。例如,設計流程和編碼流程。也可以是其他非開發流程,甚至是測試流程自身。也就是說,隻要測試條件成熟了,測試準備活動完成了,測試執行活動就可以(或者說需要)進行了。
3.
概括地說,H模型揭示了:
1)軟體測試不僅僅指測試的執行,還包括很多其他的活動。
2)軟體測試是一個獨立的流程,貫穿産品整個生命周期,與其他流程并發地進行。當某個測試時間點就緒時,軟體測試即從測試準備階段進入測試執行階段。
3)軟體測試要盡早準備,盡早執行。
4)軟體測試是根據被測物的不同而分層次進行的。不同層次的測試活動可以是按照某個次序先後進行的,但也可能是反複的。
4.
結合軟體項目開發流程,不同開發階段,可以根據實際情況,把圖-1的測試過程融合到不同開發階段中。(可根據實際情況對測試過程進行适度裁剪)。如需求分析階段,可以用納入“文檔評審”過程,進行業務需求文檔評審和軟體需求規格說明書評審,同時也納入“測試計劃“,”測試設計“對系統測試進行計劃和設計。系統設計階段,可納入“文檔評審”過程,對系統架構設計說明書,概要設計說明書進行評審
測試過程詳述
測試計劃
測試計劃階段主要工作包括确定測試目的,測試限制,測試需求,測試風險,測試政策,測試資源,測試量化計劃,測試進度,測試計劃工作量,傳遞物;
測試計劃階段活動包括:
1、
确定測試目的,測試限制,測試需求,測試政策等。
2、
依據曆史資料、類似項目資料和估計的系統測試用例數,估計測試工作量與測試進度。
3、
根據估計出的測試工作量和項目計劃,估計測試資源(人力資源及環境資源,工具)
4、
根據測試工作量、測試資源、進行風險分析與規避。
5、
編制測試計劃;
6、
評審測試計劃
測試設計
分析測試需求,設計測試用例,進行測試用例的評審并跟蹤測試計劃的執行情況。
測試設計階段活動包括:
測試相關人員參與軟體需求開發過程,分析軟體測試需求,參與軟體需求評審,確定軟體需求的可測性。
編寫測試需求,并設計測試用例。
組織搭建測試環境,準備測試資料。
評審測試用例設計。
測試執行
通過測試執行過程中的版本控制、測試環境監控、測試執行進度控制以及變更控制等手段,確定測試對象的品質。
測試執行階段活動包括:
測試相關人員進行測試腳本的編寫和修改。
測試相關人員建立測試執行流并進行聯調。
測試相關人員配置設定測試任務給測試執行人員。
測試相關人員根據測試用例執行測試,保證測試用例的覆寫率達到測試計劃要求。
測試相關人員記錄測試結果,跟蹤缺陷的修改狀況并對修改完成的缺陷進行驗證。
測試相關人員對測試環境進行監控,并組織進行測試過程量化資料的搜集工作。
7、
測試相關人員進行對測試執行進度進行跟蹤控制
測試總結階段
對完成的測試任務進行分析、總結,并給出測試結論或建議。
測試總結階段活動包括:
測試相關人員評估測試活動。
測試相關人員分析測試結果。
測試相關人員組織編寫測試報告。
測試相關人員進行測試報告評審。
測試階段詳述
單元測試活動
主要由開發人員對編寫的代碼進行自測和交叉測試,檢查代碼是否實作子產品功能,是否符合編碼規範,是否存在明顯的邏輯錯誤。
單元測試活動包括:
編寫單元測試用例;
執行單元測試,進行自測和交叉測試;
記錄單元測試結果;
評估單元測試活動的有效性;
內建測試活動
将通過單元測試的子產品逐漸組裝成具有良好一緻性的完整的程式,制訂內建測試實施政策,确定內建測試的實施步驟,設計內建測試用例,逐一地添加子產品進行測試。
內建測試活動包括:
編寫內建測試計劃;
開發內建測試用例;
執行內建測試;
對缺陷修複版本進行回歸測試;
記錄內建測試結果;
進行增量內建子產品測試,重複步驟(二)~(五),直到增量內建結束;
編寫內建測試報告;
8、
評審內建測試報告。
确認測試活動
确認測試本身就是屬于系統測試,隻是有時候強調它的重要性,而單獨出來。确認測試确認測試又稱有效性測試,的目的是向未來的使用者表明系統能夠像預定要求那樣工作。
軟體測試的工作歸結起來就是兩個V,Verification和Validation
。
Verification翻譯為驗證,在在
ISO9000
中,“驗證”的嚴格定義是:驗證是通過檢查和提供客觀證據,表明規定要求已經滿足的認可。
Validation翻譯為确認,在
中,“确認”的嚴格定義是:确認是通過檢查和提供客觀證據,表明一些針對某一特定預期用途的要求已經滿足的認可。
從定義上可以看出“驗證”關注是否滿足規定,即需求規格說明書,“确認”關注的是是否滿足預期用途,即使用者的真正需求。我們知道,軟體的設計,編碼實作都是依據軟體的需求規格說明書。對于軟體測試來說單元測試,內建測試,系統測試的目的是驗證軟體是否符合軟體的需求規格說明,是以都可歸于驗證過程。然而需求規格說明書并不能代表使用者的真正需求,而且依據需求的設計也往往同需求會有些偏差,是以得出的軟體産品在經過了系統測試以後還需要進行,确認測試。測試軟體産
品是否就是使用者想要的産品。
最簡單的解釋是:
Verification:Are
we building the product right?
(功能驗證)是否按需求做出了正确的産品
Validation:
Are we building
the right product?
(有效性确認)是否作出了使用者想要的産品。
總之,驗證針對的是軟體規則需求說明書,檢驗軟體是不是根據需求來設計實作的,确認針對的是使用者,檢驗軟體能否滿足使用者的需求。
備注:是否要采用确認測試具體要看被測系統的大小。如果被測系統是比較大型的系統,包括軟體、硬體等,就需要在內建測試後進行專門針
對軟體子系統的确認測試,然後再針對整個系統進行系統測試;如果整個系統就是由軟體構成的,就不需要進行專門的确認測試了,在內建測試後直接進行系統測試
就可以了。
系統測試活動
驗證需求規格說明書中的各個功能點是否齊全、是否正确實作,同時對系統的安裝、部署、适應性、資訊安全、界面等非功能性需求進行測試。
系統測試活動包括:
編寫系統測試計劃;
開發系統測試案例;
執行系統測試;
記錄測試結果;
編寫系統測試報告;
評審系統測試報告
使用者驗收測試(UAT)活動
驗證需求規格說明書中的業務功能是否滿足,并關注系統界面、響應時間等非功能性需求。
使用者驗收測試(UAT)活動包括:
制定UAT測試計劃;
編寫UAT測試用例;
執行UAT測試;
記錄UAT測試結果;
編寫UAT測試報告。
評審UAT測試報告。
---------------------以上無絕對描述,具體情況具體分析--------------------------
每家公司不一樣,項目不一樣,人力資源不一樣,開發模式不一樣(比如靈活開發),流程自然就不一樣,,但是總體大緻思想是一緻的,可以根據實際情況進行适度裁剪,該有的還是要有的,即便是靈活測試……以上總結,主要是幫助新手入門,讓新手有個大概的印象
作者:授客
QQ:1033553122
全國軟體測試QQ交流群:7156436
Git位址:https://gitee.com/ishouke
友情提示:限于時間倉促,文中可能存在錯誤,歡迎指正、評論!
作者五行缺錢,如果覺得文章對您有幫助,請掃描下邊的二維碼打賞作者,金額随意,您的支援将是我繼續創作的源動力,打賞後如有任何疑問,請聯系我!!!
微信打賞
支付寶打賞 全國軟體測試交流QQ群