亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Wings與parasoft c++ test在單元測試用例自動生成能力的比對

發布時間:2020-09-13 21:51:10 來源:網絡 閱讀:2712 作者:Q0101 欄目:編程語言

 作為一個軟件測試培訓講師,主要側重在白盒測試培訓方面,尤其對C++test比較擅長。最近發現市面上跳出一款Wings工具,據說1分鐘可以自動生成100萬行測試代碼,性能方面大大超越C++ test,就想著抽空來實際的對比看看是不是在吹牛。這兩天索性閉關好好研究一下。試用下來,發現Wings的創造團隊真的是非常有才,邏輯非常清楚。我又掐指大致框算一下,整體研發工作量肯定不小,突破了很多技術天花板。所以,在開寫之前,首先向Wings創造團隊表達我真摯的敬意,畢竟在這樣浮躁的社會環境下,能靜下心來研究創新算法的人太少了。
 
 長話短說,現在把Wings和我熟悉的C++ test做一個對比分析,如果有不對的地方歡迎大家拍磚,也借此機會轉達想要認識Wings開發團隊的誠懇。
 
 首先Wings與c++ test都是用于生成單元測試驅動框架的工具。兩者差異在于以下幾點:
 
 (1) 基本普通類型,wings與c++ test生成用例大致相同,wings采用隨機生成一組或者多組數值,而c++ test依據臨界值生成固定的隨機數。
 
 例如:c++ test:生成五組測試函數,每個測試函數分別取最大值,最小值,-1,0,1
Wings:從json中取值,json中的值先隨機生成,也可以用戶自己修改。
 
 例如:
 C++ test針對基本類型:
 Wings與parasoft c++ test在單元測試用例自動生成能力的比對
 
 Wings針對基本類型:
 Wings與parasoft c++ test在單元測試用例自動生成能力的比對
 (2) 數組類型
 數組作為函數參數使用時,分為固定長度和非固定長度。 
 

  1. 固定長度的數組
    Wings能夠分析出數組的長度,通過獲取固定數組的長度,進行拷貝賦值。
    C++ test通過不關心數組的具體長度為多少,統一初始化為1、16、256的大小,進行賦值。
  2. 非固定長度的數組
    Wings首先給不定長度的數組,分配一定的長度,用戶可修改數組長度的大小wings將依據具體修改的數組長度進行賦值。
    C++ test通過不關心數組的具體長度為多少,統一初始化為1、16、256的大小,進行賦值。
    例如:c++ test針對數組類型:

 Wings與parasoft c++ test在單元測試用例自動生成能力的比對
 
Wings指針數組類型:
(1)一維數組類型
Wings與parasoft c++ test在單元測試用例自動生成能力的比對
(2)二維數組類型
Wings與parasoft c++ test在單元測試用例自動生成能力的比對
(3)三維數組類型
Wings與parasoft c++ test在單元測試用例自動生成能力的比對
(3) 指針類型
 Wings:json文件生成不定長度的數組,驅動運行的時候可以根據文件中用戶設定的數組進行靈活的取值,二級指針也可以根據json中數組的長度進行靈活的賦值,三級指針暫時是取的二級指針的地址。
 C++ test:一級指針是生成4種測試函數,前三種賦值長度分別為1,16,256的數組,最后一種指針賦值0;二級指針三級指針類似,取一級指針,二級指針的地址。
例如:c++ test針對指針類型:
Wings與parasoft c++ test在單元測試用例自動生成能力的比對  
Wings與parasoft c++ test在單元測試用例自動生成能力的比對
Wings與parasoft c++ test在單元測試用例自動生成能力的比對
Wings與parasoft c++ test在單元測試用例自動生成能力的比對
 
Wings針對指針類型:
(1)一級指針
Wings與parasoft c++ test在單元測試用例自動生成能力的比對
(2)二級指針
Wings與parasoft c++ test在單元測試用例自動生成能力的比對
(4) 復雜類型(結構體類型)
 Wings:對結構體的處理相對比較合理,首先針對復雜類型,wings首先進行展開分析,將復雜類型分解為最簡單的基本類型,然后依次進行賦值操。
 C++ test:對結構體的處理很簡單,就是直接將結構體定義一下,然后就傳進去了,結構體指針或者數組是取上一級的地址或者初始化0。
例如:c++ test針對復雜類型:
Wings與parasoft c++ test在單元測試用例自動生成能力的比對
 Wings針對復雜類型:
 將復雜類型展開分解,依次進行賦值操作。
Wings與parasoft c++ test在單元測試用例自動生成能力的比對
(5) 枚舉類型
 Wings:json中隨機生成枚舉類型里面對應的數值,然后驅動里面將該數值轉化為枚舉的值賦給函數參數。
 C++ test:直接隨機賦上枚舉類型里面所有可能的情況。
 例如:c++ test針對枚舉類型
 
Wings與parasoft c++ test在單元測試用例自動生成能力的比對
 
 Wings針對枚舉類型:
Wings與parasoft c++ test在單元測試用例自動生成能力的比對
 
(6) 聯合體類型
 Wings:對聯合體的每一項都進行默認順序賦值,用戶可以根據需要實際選擇賦值哪一個,聯合體的值存在json中
 C++ test:聯合體賦值跟普通類型賦值一樣,聯合體里面的某一個變量賦值為最大,最小,-1,0,1這五種值,每種都測試一次
 例如:c++ test針對聯合體類型:
 
Wings與parasoft c++ test在單元測試用例自動生成能力的比對
 
 總結對比下來的結果就是這樣:

 

             wings C++test
基本類型 隨機賦值 最大值,最小值,-1,0,1
數組類型   固定長度 依據具體長度賦值 全部按照1、16、256的長度進行賦值
       非固定長度 依據需求動態賦值 全部按照1、16、256的長度進行賦值
指針類型   基本類型 動態獲取長度,進行賦值 全部按照1、16、256的長度進行賦值
       復雜類型 采用常規賦值方式 全部按照1、16、256的長度進行賦值
復雜類型 Wings首先將復雜類型分解為簡單的基本類型,然后依次進行賦值 不做處理,直接賦值為空
枚舉類型 隨機賦值 隨機賦值
聯合體類型 隨機賦值 聯合體里面的某一個變量賦值為最大,最小,-1,0,1這五種值
特殊類型 利用模板方式,特殊進行賦值處理 不做處理

 
Wings與c++ test優缺點對比:
(1) 從靈活性方面:wings可以依據需求,修改賦值的次數,c++ test只能夠一次性固定生成幾組值。
 
(2) 從賦值方式:wings的賦值更加合理,c++ test只能夠生成一個簡單的單元框架,具體的賦值方式,大部分需要測試人員手動去修改驅動賦值,wings基本上不需要測試人員修改驅動代碼,只需要依據需求,修改測試數據即可。
 
(3) 從企業適用性方面:企業應用一般軟件復雜性高,因此c++ test由于無法面對復雜參數和復合類型以及嵌套類型產生用例,因為其企業適用性大打折扣,更多時候是產生了測試驅動的框架而已,而wings則可以面向任意復雜的應用,可完成全部單元測試用例驅動代碼的生成。
 
  不比不知道,一比嚇一跳。Parasoft C++是美國廠商的產品,占據市場好多年,很多都是軍工在用。Wings據說是全自研的,居然性能表現這么好。創新太難了,我也深有體會。衷心希望這樣優秀的產品能有更好突破。畢竟這樣用心和認真專研的團隊,國內太少了。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桦川县| 济宁市| 焦作市| 海南省| 冀州市| 梅州市| 濮阳县| 肇东市| 施秉县| 洛宁县| 垣曲县| 达日县| 霍城县| 麻江县| 长海县| 巴南区| 牙克石市| 阆中市| 东乡族自治县| 门头沟区| 泸溪县| 油尖旺区| 肇州县| 偃师市| 无为县| 凭祥市| 龙口市| 监利县| 栾川县| 普兰店市| 祁门县| 福安市| 微山县| 洪洞县| 永和县| 玉门市| 都安| 云霄县| 教育| 元阳县| 金门县|