伴隨着軟件規模的擴大和軟件快速迭代的雙重業務加速要求,軟件質量控制的壓力也愈來愈明顯。但黑盒測試的無力感和白盒測試的高複雜度,讓軟件測試工程師和管理者都很是鬱悶,多樣化的自動化測試工具也解決不了根本性的問題。
目前正在業內流行的精準測試技術,從企業級應用的反饋來看,它最爲主要的三個技術特性,使企業在軟件質量改進方面,突破了原有的天花板。
一、 測試用例與代碼的雙向追溯技術:使開發和測試過程可視化,達到軟件與團隊管理的數據化交流,再也不流於形式和口頭交流;灰盒的透明運行模式,不改變傳統企業流程,卻可以將功能測試的數據映射到代碼層面進行精準分析。
二、 延展測試數據的應用價值:精準測試在運行中會產生大量的數據,基於這些數據可讓測試過程的價值拓展到整個研發體系,例如經過深度測試數據直接進行智能缺陷定位,經過逆向追溯幫助開發分析進行代碼一致性修改等。
三、 經過智能算法全面支持敏捷:全自動的智能迴歸用例選取、用例聚類分析、測試漏洞分析,累計覆蓋率等技術全面支持敏捷場景下的質量保證。算法
本文將重點分析精準測試在研發體系中應用後的總體運行效率和質量改進分析。另本文分析數據對應的標的產品是星雲測試的ThreadingTest產品,目前也是精準功能最全面、商用化程度最高的精準測試產品(讀者可提早閱讀精準測試框架白皮書以及到體驗精準測試產品,熟悉精準測試的總體功能)。
精準測試運行效率很高。它採用的技術路線爲系統級灰盒技術範疇,所以精準測試的運行過程依然是黑盒,不直接改變用例的運行方法及團隊成員構成,上手比較快。它的數據採集是基於軟件測試示波器全自動採集,用於標記採集數據和用例的映射關係,對原有測試的運行效率干擾極小,實際運行分析額外附加工做量在2%如下。精準測試必要的插裝過程無需人工干預,實施成本也是一次性的。網絡
下圖是精準測試的運行效率圖:架構
傳統意義上的黑盒測試方法通常在覆蓋率進入到40-50區間之後,會逐步開始產生較大運行瓶頸,測試專業上形象的稱之爲殺蟲劑效應。而黑盒的瓶頸點又偏偏是精準測試的發力點。精準測試能夠關聯到代碼看到語句塊,分支,條件等的覆蓋率,也能夠根據精準測試提供的各類彩色分析視圖肯定漏測點。所以無論被測系統有多複雜,精準測試的運行效率均呈線性45度角穩步上升。
從上圖能夠看出,越過瓶頸點後的中等覆蓋率水平,精準測試所使用的時間僅僅是傳統黑盒測試的一半,所以成本投入也將是普通黑盒測試的一半。這一點對於企業來說不只僅是大幅度提高了測試的工做效率、加快了產品發佈時間,同時節約了大量的人力成本投入。框架
精準測試的核心技術要點是測試用例與代碼的追溯技術。這項技術簡單來講就是當功能執行完成之後對應的總體代碼執行狀況就會當即產生,能夠理解爲一種強大的全景調試器,即當點擊一個測試用例,就當即追蹤到對應的代碼和模塊。若是你有一個足夠大的屏幕,能夠想象場景是多麼的震撼…ide
精準測試測試漏洞分析功能,適用於敏捷測試。它能夠基於程序靜態數據和動態運行數據,自動分析軟件缺陷最高風險的位置,引導首先對於高風險的模塊完成覆蓋,在有限時間內完成最具備風險的模塊的覆蓋測試。基於智能缺陷定位技術,精準測試結果能夠直接定位到缺陷的位置,所以精準測試讓開發人員定位缺陷的效率能夠至少提高2-3倍。工具