• <menu id="w2i4a"></menu>
  • logo Parasoft Jtest 使用教程

    文檔首頁>>Parasoft Jtest 使用教程>>parasoft Jtest 使用教程:計算度量

    parasoft Jtest 使用教程:計算度量


    parasoft Jtest介紹和試用>>>

    本次教程是進(jìn)行測試的度量以及對這些度量進(jìn)行分析。精確的測試計算度量可以一種更直觀的方式度量程序的復(fù)雜性以幫助如何對程序進(jìn)行修改。同時通過這種度量也可以幫助我們發(fā)現(xiàn)程序中一些不好的設(shè)計。

    度量分析步驟

    1.選擇工程Jtest Example> examples.nbank.

    2.右擊工程選擇Test Using> Built-in> Metrics,則所選功能中所有的程序?qū)⒈粶y試。

    3.打開Metrics窗口。可以看到測試中各種度量的結(jié)果。

    4.查看McCabe Cyclomatic Complexity metric這項的結(jié)果。

    5.我可以看到總共有50個方法,并且這些方法中環(huán)形復(fù)雜度最高的方法是examples.nbank.Customer中的validate(int[], String)方法。通常,如果環(huán)形復(fù)雜度超過10,則應(yīng)該考慮重寫這個方法,或是對類的結(jié)構(gòu)進(jìn)重新設(shè)計以使程序更好維護(hù),更容易理解。

    6.查看Robert Martin Afferent Coupling這項的結(jié)果。

    7.結(jié)果為零說明除了包中的類為沒有其他的類來引用這些類。也就是說,可以安全的修該這些類而不用考慮這些修改會影響到其他地方。如果這些結(jié)果不為零,則說明,在考慮對這些被測試程序進(jìn)行修改的時候要考慮到修改引用這些包的地方。

    8.選擇Jtest Example> example.nbank> Customer.java。注意當(dāng)選擇中這個類后,Metric中的值的變化。這個度量值各個有自身的意義。例如:Number of Parameters的值為10表示在這個類中共有10個參數(shù)。Customer(String, String) 構(gòu)造函數(shù)的參數(shù)數(shù)目最多。通常如果參數(shù)的數(shù)目超過5個則要考慮修改該方法的設(shè)計

    同時我們可以使用自己自定義的測試配置來對程序進(jìn)行度量測試

    1.參照上篇教程中步驟來自定義一個測試配置

    2.如上圖打開可選項Metric選擇Report tasks for metrics values out of acceptable ranges

    3.選擇Number of Static Methods,右擊選擇View/Change Metric Parameters

    4.按照圖示修改參數(shù),并選擇Apply確定。

    5.選擇工程中的Jtest Example> examples.eval.

    6.右擊選擇JTest,選擇Test Using> User-defined> Metrics.可以看到如下結(jié)果。

    以上就是本次教程的內(nèi)容了,你也可以申請jtest試用>>,親自動手試試哦。

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


    查看更多parasoft測試產(chǎn)品

    <詳詢客服>獲取更多活動信息

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    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); })();