基本介紹
- 中文名:精準測試
- 推出時間:2012
- 領域:網際網路、IT行業、軟體測試
- 目的:測試精準化、高效化
設計思想,核心特性,整體架構,軟體測試示波器,用例和代碼的雙向追溯,智慧型回歸測試用例選取算法,灰盒模式下的代碼覆蓋率分析,測試用例的聚類分析,精準測試的效率,
設計思想
所有測試數據均是在測試執行過程中由軟體自動分析並錄入的底層代碼運行數據,記錄測試現場的情況,並基於這些可信的數據給出測試結果。
核心特性
所有數據由系統自動、原生錄入,數據不可篡改,產生測試數據可直接用於測試的過程管理和實效分析。
精準測試主要是通過技術的改進去對協作、流程進行改進。例如通過精準測試系統可以通過測試自動描述功能的代碼實現邏輯並且可視化展示和存儲,研發可以基於這些信息對系統進行疊代和一致性修改,甚至幫助開發去理解代碼實現邏輯。通過精準測試系統的缺陷定位技術,可以基於功能角度標記ll的測試用例的執行狀態(通過/失敗)以及基於測試用例與代碼的頻譜映射關係,可以自動計算缺陷代碼的懷疑率,給出最可能出錯的代碼塊。
整體架構
精準測試是一種通用的測試分析系統,其內部算法實現與具體業務無關,對於各種類型的套用軟體都可以採用同一套方法進行確認。其最底層的方法是建立測試用例與代碼的關係,任何類型表現形式的軟體都會存在測試用例(功能)與代碼的雙向關聯關係,因此精準測試的套用範圍是廣泛的。由於精準測試本身和使用者本身的業務並沒有直接關係,因此初步的設計測試用例和執行測試用例還是用戶原有的測試體系來進行的,而一旦通過精準測試建立了測試用例和代碼的關係,那么後面將提供計算機輔助測試分析的結果。
精準測試的核心組件包含的軟體測試示波器、智慧型回歸測試用例選取、用例和代碼的雙向追溯、覆蓋率分析、缺陷定位、測試用例自動生成系統、測試用例聚類分析,這些功能完整的構成了精準測試技術體系。精準測試系統的本質是一套的計算機測試輔助分析系統,它的關鍵技術是測試用例和代碼的雙向追溯技術,通過該項技術,很多高級測試算法得以套用同時將測試和開發進行緊密的連線。
軟體測試示波器
精準測試示波器在使用上對常規的測試沒有特別的干擾,示波器內部也維護一套測試用例,但是更多的是一種符號的象徵。示波器的作用是在測試用例執行的過程中採集測試用例對應的代碼邏輯的運行信息。測試工程師只要真正開始某個用例執行之前,首先選擇測試用例,其次點擊開始錄製按鈕,最後回到套用上根據預先設計的用例流程操作被測試程式即可,當執行結束後單擊結束按鈕。在執行測試用例的過程中所有代碼執行邏輯都會自動映射到這個測試用例上。人工的點擊開始和結束主要用來界定測試用例的執行邊界,示波器會把這個階段產生的程式執行信息映射到所選擇的測試用例上。
用例和代碼的雙向追溯
精準測試提出了測試用例和代碼的雙向追溯,它也是精準測試核心技術之一。即運行一個測試用例以後,精準測試可以通過程式自動的記錄和顯示這個測試用例執行的代碼。如果測試人員關注某一些代碼行,它可以追溯出哪些測試用例在運行過程中運行過這段代碼。通過這個技術特性,測試工程師的每個測試用例都可以進行量化分析和統計,這些量化數據既可以用來對測試工程師進行工作的考量,也可以提供開發人員和測試人員之間進行信息化的交流。
雙向追溯技術記錄了每個測試用例對應的程式內部的執行細節,細緻到每個條件、分支、語句塊的執行情況。開發人員可以通過雙向追溯的結果去理解程式邏輯,進行軟體維護以及進行可一致性的修改。開發和測試可以順利交流,增加測試和開發的交流效率。
雙向追溯技術分為正向追溯與反向追溯。正向追溯是指:將測試用例和代碼執行信息自動關聯,可到函式級別及代碼塊級別;通過正向追溯可直接在代碼級定位測試現場故障和缺陷邏輯,並提供最後運行的時序數據;通過正向追溯自動記錄產生功能對應的詳細設計實現,輔助軟體解耦和架構分析。
反向追溯是指:分析代碼關聯的功能,為研發分析系統和進行一致性修改以及回歸測試分析提供數據。
智慧型回歸測試用例選取算法
精準測試提的智慧型回歸測試用例選取算法:
(1)檢查測試出的軟體問題是否得到了正確的修改;
(2)被測軟體在被修改之後,各項功能依然正確(未引入新的缺陷)。
右圖展示了回歸測試邏輯
智慧型回歸算法選取的結果如下:
(1)適應版本疊代周期,適應大的工程項目。
(2)在回歸測試時,自動篩選測試用例,減少回歸測試的時間以及風險。
(4)精確計算回歸用例的權重,測試人員在時間有限的情況下可以重點回歸受改動影響最大的用例。
灰盒模式下的代碼覆蓋率分析
測試覆蓋率是測試界公認的可用量化指標。精準測試的設計是通過軟體示波器以透明的測試再系統測試階段取採集代碼覆蓋率,然後再後台完成運算,這個過程是以灰盒的模式運行。
精準測試覆蓋率形式多樣,最高支持標準MC/DC的100%覆蓋率要求,有覆蓋率每日增長趨勢圖。通過該報表觀察整個測試進度情況,精準測試平台的覆蓋率趨勢圖通過對於團隊的質量控制,能夠對測試進度進行預判,也能夠對測試效率進行有效的識別。
測試用例的聚類分析
精準測試的效率
精準測試系統在長期的軟體維護過程中精準測試系統對於維護的效率提升。精準測試下的維護完全由計算機的分析系統所主導,大型軟體之所以難以維護,是因為傳統的軟體開發過程對於軟體維護更多的基於人對於軟體系統的理解,而隨著維護的進行人的記憶以及人員的變動都影響維護的效率,還有就是老的系統維護成本會不斷增加。精準測試則通過測試過程中所記錄的數據,在持續的疊代過程中記錄分析數據,隨著疊代的進行,數據記錄的累積,從而得到分析結果。