• <menu id="w2i4a"></menu>
  • logo Parasoft C/C++test 使用教程

    文檔首頁>>Parasoft C/C++test 使用教程>>Parasoft C++test使用教程:關(guān)于測試用例(一)

    Parasoft C++test使用教程:關(guān)于測試用例(一)


    對(duì)于函數(shù)測試來說,一個(gè)用例,就是設(shè)定輸入,執(zhí)行程序,判斷輸出是否符合預(yù)期??赡茌斎氚ǎ簠?shù)、需讀的成員變量、需讀的全局變量、內(nèi)部輸入(調(diào)用子函數(shù)獲得的輸入);可能輸出包括:返回值、輸出參數(shù)、被寫的成員變量、被寫的全局變量,內(nèi)部輸出(在程序執(zhí)行過程中判斷的中間輸出)、動(dòng)作(例如需判斷程序在某種輸入下是否調(diào)用了某個(gè)函數(shù))。簡單來說,輸入就是程序執(zhí)行前或執(zhí)行過程中讀取的外部數(shù)據(jù),輸出就是程序所改寫的數(shù)據(jù)。了解了這些,就不會(huì)對(duì)沒有參數(shù)、沒有返回值如何測試產(chǎn)生疑問了。測試沒有參數(shù)的函數(shù),它可能還有別的輸入,例如全局變量,成員變量,或調(diào)用子函數(shù)獲得的輸入(這個(gè)要使用工具才能做到),只要函數(shù)需讀取的,都應(yīng)該設(shè)定初始值,如果完全沒有,沒有輸入也是一種輸入,照樣測試就是了。 同樣道理,輸出也不僅僅是返回值,沒有返回值還可能修改了全局變量什么的,這些也是要判斷的輸出。但是,單元測試應(yīng)該測試哪些比較復(fù)雜的程序,而不是只測試接口。

    本部分分三次給大家講解,今天給大家分享預(yù)置條件為形參的測試用例。

    預(yù)置條件為形參的測試用例

    源代碼如圖:

    parasoft教程

    自動(dòng)生成的測試用例為

    parasoft教程

    從例子中我們可以看出unsigned _a  = 1; unsigned _b  = 2為設(shè)定輸入,之后執(zhí)行程序unsigned char _return  = data_deal(_a, _b);最后判定輸出,對(duì)于本例我們只需根據(jù)需要修改a,b的值即可,也可建立數(shù)據(jù)數(shù)據(jù)源測試用例。根據(jù)測試需要也可手動(dòng)添加其設(shè)定輸入,如全局變量、成員變量等。

    如何建立測試用例:

    選擇所需用例的測試套件,右鍵>新建>測試用例使用向?qū)А?/p>

    parasoft教程

    選擇函數(shù)(如果只有一個(gè)函數(shù)就沒得選擇了,呵呵),給測試用例命名,點(diǎn)擊nex。

    parasoft教程

    到這里點(diǎn)擊Finish就完成了新建測試用例,這里我們選擇新數(shù)據(jù)源測試用例。

    parasoft教程

    點(diǎn)擊自動(dòng)生成,這里我們選擇“表”(也可新建csv或者excel數(shù)據(jù)源測試用例,選擇表),點(diǎn)擊OK>Finsh完成:

    parasoft教程

    雙擊測試套件下的數(shù)據(jù)源,這個(gè)時(shí)候就很方便的建立大量測試用例了:

    parasoft教程

    parasoft開年大促85折起<詳詢客服>

    查看更多測試分析資訊和產(chǎn)品推薦>>>


    慧都2017開年促銷

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();