精準測試的軟體產品質量效率變化分析
伴隨著軟體規模的擴大和軟體快速迭代的雙重業務加速要求,軟體質量控制的壓力也越來越明顯。但黑盒測試的無力感和白盒測試的高複雜度,讓軟體測試工程師和管理者都非常鬱悶,多樣化的自動化測試工具也解決不了根本性的問題。 目前正在業內流行的精準測試技術,從企業級應用的反饋來看,它最為主要的三個技術特性,使企業在軟體質量改進方面,突破了原有的天花板。 1、測試用例與程式碼的雙向追溯技術:使開發和測試過程視覺化,達到軟體與團隊管理的資料化交流,不再流於形式和口頭交流;灰盒的透明執行模式,不改變傳統企業流程,卻能夠將功能測試的資料對映到程式碼層面進行精準分析。 2、延展測試資料的應用價值:精準測試在執行中會產生大量的資料,基於這些資料可以讓測試過程的價值拓展到整個研發體系,例如通過深度測試資料直接進行智慧缺陷定位,通過逆向追溯幫助開發分析進行程式碼一致性修改等。 3、通過智慧演算法全面支援敏捷:全自動的智慧迴歸用例選取、用例聚類分析、測試漏洞分析,累計覆蓋率等技術全面支援敏捷場景下的質量保證。
本文將重點分析精準測試在研發體系中應用後的整體執行效率和質量改進分析。另本文分析資料對應的標的產品是星雲測試的ThreadingTest產品,目前也是精準功能最全面、商用化程度最高的精準測試產品(讀者可提前閱讀精準測試框架白皮書以及到體驗精準測試產品,熟悉精準測試的整體功能)。 精準測試執行效率很高。它採用的技術路線為系統級灰盒技術範疇,因此精準測試的執行過程依然是黑盒,不直接改變用例的執行方法及團隊成員構成,上手比較快。它的資料採集是基於軟體測試示波器全自動採集,用於標記採集資料和用例的對映關係,對原有測試的執行效率干擾極小,實際執行分析額外附加工作量在2%以下。精準測試必要的插裝過程無需人工干預,實施成本也是一次性的。
下圖是精準測試的執行效率圖:
1.傳統意義上的黑盒測試方法一般在覆蓋率進入到40-50區間以後,會逐步開始產生較大執行瓶頸,測試專業上形象的稱之為殺蟲劑效應。而黑盒的瓶頸點又恰恰是精準測試的發力點。精準測試可以關聯到程式碼看到語句塊,分支,條件等的覆蓋率,也可以根據精準測試提供的各種彩色分析檢視確定漏測點。因此不管被測系統有多複雜,精準測試的執行效率均呈線性45度角穩步上升。 從上圖可以看出,越過瓶頸點後的中等覆蓋率水平,精準測試所使用的時間僅僅是傳統黑盒測試的一半,因此成本投入也將是普通黑盒測試的一半。這一點對於企業來講不僅僅是大幅度提升了測試的工作效率、加快了產品釋出時間,同時節約了大量的人力成本投入。
2.精準測試的核心技術要點是測試用例與程式碼的追溯技術。這項技術簡單來說就是當功能執行完成以後對應的整體程式碼執行情況就會立即產生,可以理解為一種強大的全景偵錯程式,即當點選一個測試用例,就立即追蹤到對應的程式碼和模組。如果你有一個足夠大的螢幕,可以想象場景是多麼的震撼…
3.精準測試測試漏洞分析功能,適用於敏捷測試。它可以基於程式靜態資料和動態執行資料,自動分析軟體缺陷最高風險的位置,引導首先對於高風險的模組完成覆蓋,在有限時間內完成最具有風險的模組的覆蓋測試。基於智慧缺陷定位技術,精準測試結果可以直接定位到缺陷的位置,因此精準測試讓開發人員定位缺陷的效率可以至少提升2-3倍。
4.企業最為頭痛的迴歸測試維護,精準測試也給予了很好的方案。根據國際權威統計,平均每6行程式碼的修改,就會引入一個未知的難以直接預測的缺陷。從另一個角度來看,迴歸測試會隨著專案人員記憶模糊以及團隊調整,使不可預知的缺陷比例逐步上升。而精準測試由於其內建演算法的原因,各種資訊都極其完整的儲存在了計算機裡。我們實際對比了5個用例集在1000個左右的系統的測試,其計算用例集可控制在20%左右。另外在從迴歸測試的風險角度上看,傳統通過經驗判斷型方法,由於週期拉長後人員變動以及記憶模糊。導致發現迭代引起的未知關聯的概率越來越低,上線後引入風險。而採用精準測試,由於每輪測試記錄的資料越來越多,基礎程式碼覆蓋輻射面越來越廣,其計算準確性亦在持續上升。經過一定量的版本迭代後,其發現關聯缺陷的概率可以達到80%以上。
5.精準測試的測試用例聚類分析功能,可以有效地發現“測試的錯誤”。比如一個用例執行步驟錯誤,它的聚類結果必然會發生變化,管理者通過系統分析的結果就可以發現並糾正這一類的錯誤,而之前可能需要在現場反覆的確認。 6.從管理角度看,傳統架構下平均4-5個測試執行人員就需要一個管理者,管理成本極高。精準測試體系下,由於過程管理均由計算機自動記錄,管理者只需看報表就能清楚獲知專案進度情況及每位專案參與者的工作效率。通過日報、週報、月報等,輕鬆瞭解各專案狀況。後續團隊無論如何變更,都可以在被授權的情況下,通過平臺清楚地瞭解到整體框架結構與細緻追溯關係,達到快速接手、大量節省開發與維護成本的目的。 根據上述分析,精準測試適合應用於研發、測試的成熟體系中,特點是引入成本低,提高企業研發、測試效率顯著,軟體風控成果卓越。正如網路上所說,精準測試正在快速成為主流技術。