2020年7月30日,星雲測試在TiD2020質量競爭力大會正式發布最新產品「Wings-企業級單元用例自動編碼引擎」。這是國際首個面向複雜軟體並且可以進行單元測試用例全自動編碼的高端專業軟體測試產品,目前處於國際上商業化程度最高、技術最領先的水平。
眾所周知,軟體缺陷發現得越晚,其處理費用就越呈幾何激增,因此測試左移概念已經成為趨勢。但單元測試面臨的最大問題是:單元測試用例編寫工作量巨大,極端情況下與開發工作量比達到1:1,甚至更高,造成大量成本損耗。
星雲測試研發的Wings(目前商用產品支持c/c++程序)產品,可以對被測試程序進行全局分析和深度理解,隨後由內置算法程序實現計算機全自動的單元測試編碼。Wings確保自動編寫的代碼無語法、語義錯誤。目前已經完成了多方商用落地驗證。這種用計算機智能算法全自動產生的測試編碼去驗證開發人員編寫的原始碼邏輯輸入輸出對錯的高端測試模式,不需要編寫測試用例、測試驅動程序或樁調用代碼,極大減少了編寫單元測試的巨大工作量。是未來軟體測試領域最為璀璨的「明珠」技術。
Wings大幅超越國外相關產品性能,可以對高複雜度的程序參數進行深度解析,比如c++類、模板類、數組、結構體、指針、鍊表以及任意複雜結構的層級嵌套,同時對於面向對象的程序特性以及常用的容器庫能夠完美識別和支持。對於一些void*、函數指針、模板類等無法直接靜態分析進行類型確定的特殊情況,均有基於人工智慧的程序分析輔助進行類型確定。
Wings在基於深度參數解析的基礎上,對於全局範圍的程序進行理解分析後,第一步 按照內置規則,自動化構建被測程序的輸入用例代碼;第二步 構建測試代碼用於調用被測程序的原始碼;第三步 構建被測程序輸出斷言,完成調用被測試程序單元的全部環境準備。這個構建速度非常快,可以達到每分鐘100萬行左右的生成速度,編寫的代碼比程序開發人員手工編寫的規範度高出一截,確保100% 的語法語義正確,免去大量的調試時間。
在驅動數據上,Wings實現了驅動代碼和數據的分離。它基於深度參數解析基礎上,可以根據參數的結構自動生成層級嵌套的測試數據結構,用圖形界面可視化的展示給用戶。用戶只需要根據Wings提供的界面嚮導對測試數據進行填充即可,驅動程序會自動識別並讀取這些數據,完成對被測試程序的調用。
圖 Wings數據表格
Wings還可以全自動生成參數捕獲程序,並自動插裝在被測試程序中。當被測試程序運行後,可以通過專用軟體捕獲程序中每個函數模塊運行的具體參數值。Wings的測試代碼驅動自動生成和參數捕獲,相當於完成了一種全智能的閉環測試驗證體系。Wings使測試數據不需要人工準備,只需要在前序輪次中通過參數捕獲自動存儲。若前序測試用例運行正常,那麼這些數據都可以作為後續測試輸入和進行校驗的基礎數據。
Wings產品網址為www.codewings.net,取「為代碼插上翅膀飛向未來」之意。目前網站有中英文雙語版本,面向國內、國際的客戶進行發售。網站介紹資源豐富,產品教程、文檔、問答等均有詳細闡述。它適用於多種嵌入式作業系統和結構體系,所有測試中間產物的原始碼都可見,可移植性優越。Wings產品申請了數項原創國家發明專利,未來將對整個測試和開發行業具有巨大的推動作用。