Wings-面向企業級的單元測試用例自動編碼引擎

2020-12-23 北青網

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產品申請了數項原創國家發明專利,未來將對整個測試和開發行業具有巨大的推動作用。

相關焦點

  • 基於django的單元測試
    【知道】認識單元測試單元測試:測類、方法、函數,測試最小單位由於django的特殊性,通過接口測單元,代碼邏輯都放在類視圖中單元測試好處消滅低級錯誤快速定位bug(有些分支走不到,通過單元測試提前測出問題)提高代碼質量(測試後順便優化代碼)2.
  • 軟體測試學習教程:單元測試之UnitTest測試框架
    單元測試的概念單元測試(unit testing),是指對軟體中的最小可測試單元進行檢查和驗證。對於單元測試中單元的含義,要根據實際情況去判定其具體含義。一個單元可能是功能模塊、類、方法(函數)等。單元測試工具不同的程式語言都有比較成熟的單元測試框架,語法規則有些差別,其核心思想都是相通的。
  • 如何編寫測試用例?
    3)從軟體質量保證的角度看:軟體測試是一種重要的軟體質量保證活動。測試過程中的活動包括「分析」軟體和「運行」軟體。也有人認為軟體測試就是在軟體投入運行前,對軟體需求規格、設計規格說明和編碼的最終覆審,是軟體質量保證的關鍵步驟。
  • 關於單元測試體系結構的一些心得
    展望未來,我們可以根據實現和運行自動測試的策略將自動測試分為至少三種不同類型,如以下著名的測試金字塔所示:就使用的時間和資源而言,單元測試的開發成本低且運行成本低,並且單元測試專注於測試與外部依賴項隔離的單個系統組件(例如,業務邏輯)。
  • 單元測試常用的方法
    一般認為,在結構化程序時代,單元測試所說的單元是指函數,在當今的面向對象時代,單元測試所說的單元是指類。以我們的實踐來看,以類作為測試單位,複雜度高,可操作性較差,因此仍然主張以函數作為單元測試的測試單位,但可以用一個測試類來組織某個類的所有測試函數。單元測試不應過分強調面向對象,因為局部代碼依然是結構化的。單元測試的工作量較大,簡單實用高效才是硬道理。
  • 未名企鵝極客|軟體單元測試的基本原則
    單元測試的粒度要根據實際情況判定,可能是類、方法等,在面向對象編程中,通常認為最小的單元就是方法。 單元測試的好處 (包括但不限於以下幾點): 1、提升軟體質量 優秀的單元測試可以保障開發質量。在研發過程中執行測試用例,運行失敗的的單元測試能幫助我們快速排查和定位問題,使問題被帶到線上之前完成修復。越早發現的缺陷,其修復成本越低。
  • 你還在問:安全測試要寫測試用例麼?黑客都在用測試用例找漏洞了
    從網絡及信息安全的攻擊角度來說,惡意攻擊分子已經逐漸形成了目標精準、分工明確、技術先進的網絡黑色產業鏈條,相應的從安全保護和防禦角度來說,國家加大了對網絡攻擊等犯罪行為的打擊力度,企業也逐漸加大了網絡安全投入。那麼,當安全測試成為企業安全建設中的一個重要環節,安全測試需要寫測試用例麼?
  • 3個C 單元測試工具,到底誰才是王者?
    測評指標對C#單元測試工具進行測評主要從功能性及非功能性兩部分來進行。其中,功能性測評中包括是否支持測試用例分類、排序等;非功能測評點包括社區活躍度及文檔完備性等。下圖是VsTest的總體架構圖,從圖中可以看到,整個VsTest體系架構主要有四個組件:測試運行器、測試執行器、數據收集器和IDE。其中,測試執行器部分主要包含一個執行測試的引擎,它把發現和執行測試的責任委託給了一些可擴展的測試適配器,允許測試平臺基於第三方測試框架發現/運行測試。
  • 軟體測試如何入門:軟體測試用例編寫
    相信不少人都想從事軟體測試行業,軟體測試特別適合有計算機基礎的女生,許多人會自學,也有人會選擇軟體測試培訓。那麼軟體測試應該如何入門呢?這篇文章就關於軟體測試用例的編寫與設計做一個簡單的分析。軟體測試人員常用的測試用例設計方法一般是黑盒用例設計方法,用最多的方法應該是等價類劃分法和邊界值分析法,這兩個方法是用例設計方法中比較簡單的。如何設計編寫測試用例1測試用例有哪些基本的組成元素?
  • 測試用例的基本介紹
    2.測試用例的要素測試用例的標題、測試思路、預設條件、步驟、預期輸出一個好的測試用例是一個不熟悉業務的人也能依據用例來很快地進行測試。正交表中的有關概念:因素(Factor):在一項試驗中,凡欲考察的變量稱為因素(變量)水平(位級)(Level):在實驗範圍內,因素被考察的值稱為水平(變量的取值)
  • 領導要求單元測試覆蓋率,都996了,沒時間寫怎麼辦?
    保證代碼質量,及早發現bug單元測試由開發工程師來寫,相比測試工程師,更清楚深入的了解代碼邏輯,而且在設計測試用例時,重新審視檢查被測試代碼,發現問題或者重寫,這樣的經歷對於寫過單元測試的工程師並不陌生。2.
  • 精準測試
    (5)最後再分析下被認為「高端」的白盒測試技術,白盒測試技術由來已久也並不缺乏優秀的商業工具,但其在企業內的應用範圍非常狹窄。主要由於以下的原因:1.白盒測試難以脫離開發環境,很難適應系統級的測試,並且難以實施。通常測試工程師在對代碼內部不是很了解的情況下,很難有效的進行測試。
  • 軟測大神手把手教你:如何寫出一份邏輯清晰的測試用例?
    理解企業文化和過程 測試期望 吸取教訓 工作量大小 解決方案的類型 技術選擇 預算 時間表 分階段的解決方案3.測試項目簡介理論上測試要覆蓋所有的功能項 設計的測試 對一些用戶界面,菜單的結構還有窗體的設計是否合理等的測試 整體考慮:要考慮到數據從軟體中的一個模塊流到另一個模塊的過程的正確性 確定功能項優先級、風險、複雜度、客戶需求 10.資源
  • 阿里新型單元測試 Mock 工具開源
    與以往Mock工具總是要替換整個對象的思路不同,TestableMock直接替換目標方法,腦迴路無比簡單,這種簡化設計主要基於兩條基本假設: 假設一:同一個測試類裡,一個測試用例裡需要Mock掉的方法,在其他測試用例裡通常也都需要Mock。因為這些被Mock的方法往往訪問了不便於測試的外部依賴。 假設二:需要Mock的調用都來自被測類的代碼。
  • 軟體測試中黑盒測試和白盒測試的詳細講解
    本篇將介紹關於軟體測試的黑盒測試和白盒測試知識的分享,有興趣的朋友可以了解一下!眾所周知,軟體測試是為了便於程式設計師對必要的有要求的軟體進行相關的運行和闡明,判辯設計的規範以及最後運行成功後的審查編碼的合格性。這一步的成功也就是設計的成功的第一步。我們將軟體的測試分為兩個模塊來完成,一方面是程序的編碼部分設計與軟體單元測試的部分,另一個方面就是對整個設計的全面檢測了。
  • 博睿同創|寫好測試,提升應用質量!
    合理應用軟體測試技術,就可以規避掉第一部分的3個場景下的問題。 軟體測試強調開發、測試同步進行,甚至是測試先行,從需求評審階段就先考慮好軟體測試方案,隨後才進行技術方案評審、開發編碼、單元測試、集成測試、系統測試、回歸測試、驗收測試等。
  • 只寫測試用例不管代碼?懶人如何高效的做回歸測試
    自動回歸測試將大幅降低系統測試、維護升級等階段的成本。回歸測試作為軟體生命周期的一個組成部分,在整個軟體測試過程中佔有很大的工作量比重,軟體開發的各個階段都會進行多次回歸測試。在漸進和快速迭代開發中,新版本的連續發布使回歸測試進行的更加頻繁,而在極端編程方法中,更是要求每天都進行若干次回歸測試。因此,通過選擇正確的回歸測試策略來改進回歸測試的效率和有效性是很有意義的。
  • CBTC系統ATP/ATO軟體的開發與測試概述
    所有安全相關系統軟體(如ATP軟體)均採用相應安全編碼技術,滿足安全完整性等級SIL 4級的要求。3.2 地面ATP軟體地面ATP設備主要由區域控制器ZC、數據存儲單元DSU、軌旁電子單元LEU等構成。
  • 測試用例設計——案例詳解
    測試工程師利用禪道設計用例,如圖4- 5所示。圖4- 8商品搜索需求通過需求分析,商品搜索功能較為簡單,測試用例設計時只需考慮一個搜索條件的測試,測試工程師從搜索功能開發角度考慮。對於系統而言,如果資料庫中存在某個關鍵字的商品,則應該顯示,否則應當提示沒有匹配的商品,故搜索用例設計不需要使用複雜的用例設計方法,測試工程師只需根據經驗設計用例即可。
  • 軟體測試技術試題及答案A卷
    A.測試用例 B.輸入數據 C.測試環境 D.輸入條件3、導致軟體缺陷的最大原因是:( )A.軟體需求說明書 B.設計方案 C.編碼 D.維護4、在下列描述中,關於一個軟體缺陷狀態完整變化的錯誤描述是(