日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UT覆盖率

發布時間:2023/12/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UT覆盖率 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

UT覆蓋率

目錄

??[隱藏]?
  • 1?單元測試覆蓋率與CI
  • 2?什么是代碼覆蓋率?
    • 2.1?單測技術框架簡介
    • 2.2?JUnit:
    • 2.3?TestNG:
    • 2.4?maven
    • 2.5?sonar
    • 2.6?eclipse
    • 2.7?Jenkins
    • 2.8?Cobertura:
    • 2.9?構建UT測試持續化集成環境及覆蓋率監控

[編輯]單元測試覆蓋率與CI

[編輯]什么是代碼覆蓋率?

代碼覆蓋率指的是一種衡量代碼覆蓋程度的方式,通常會對以下幾種方式進行統計分析:

行覆蓋。它又被稱作語句覆蓋或基本塊覆蓋。這是一種較為常用且具有代表性的指標,度量的是被測代碼中每個可執行語句是否被執行到。

條件覆蓋。它度量的是當代碼中存在分支時,是否能覆蓋進入分支和不進入分支這兩種情況。這要求開發人員編寫多個測試用例以分別滿足進入分支與不進入分支這兩種情況。

路徑覆蓋。它度量的是當代碼中存在多個分支時,是否覆蓋到分支之間不同組合方式所產生的全部路徑。這是一種力度最強的覆蓋檢測,相對而言,條件覆蓋只是路徑覆蓋中的一部分。

在這三種覆蓋指標中,行覆蓋簡單,適用性廣,但可能會被認為是“最弱的覆蓋”,其實不然。行覆蓋相對于條件或路徑覆蓋,可以使開發人員通過盡可能少的測試數據和用例,覆蓋盡可能多的代碼。通常情況下,是先通過工具檢測一遍整個工程單元測試的行覆蓋情況,然后針對沒有被覆蓋到的代碼,分析其沒有被覆蓋到的原因。如果是由于該代碼所在分支由于不滿足進入該分支的條件而沒有被覆蓋,那么開發人員才會進一步修改或增加測試代碼,完成該部分的條件或路徑覆蓋。

可見,高效高質量的行覆蓋是有效進行條件覆蓋與路徑覆蓋的前提。行覆蓋率越高,說明沒有被覆蓋到的代碼越少,這樣開發人員便會集中精力修改測試用例,覆蓋這些數量不多的代碼。相反,如果行覆蓋率低,開發人員需要逐個檢查沒有被覆蓋到的代碼,精力被分散,因此很難提高剩余代碼單元測試的質量。

代碼覆蓋率 = 被測代碼行數 / 參測代碼總行數 * 100%。

[編輯]單測技術框架簡介

[編輯]JUnit:

JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個回歸測試框架(regression testing framework)。Junit測試是程序員測試,即白盒測試。 使用JUnit時,主要都是通過繼承TestCase類別來撰寫測試用例,使用testXXX()名稱來撰寫單元測試。

官方wiki

建議:了解JUnit框架的原理

[編輯]TestNG:

TestNG是根據JUnit 和 NUnit思想而構建的一個測試框架,但是TestNG增加了許多新的功能使得它變得更加強大與容易使用比如:

  • 支持JSR 175注釋(JDK 1.4利用JavaDoc注釋同樣也支持)
  • 靈活的Test配置
  • 支持默認的runtime和logging JDK功能
  • 強大的執行模型(不再TestSuite)
  • 支持獨立的測試方法。

官方網站

其他持續化集成工具/平臺:

[編輯]maven

Maven是基于項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。強大的東東!!!!

maven官方網站

Maven安裝教程:Maven的安裝、配置及使用入門

[編輯]sonar

(SonarQube)是一個開源平臺,用于管理源代碼的質量,一言蔽之:sonar是個異常強大的東西。

主要特點:

  • ? 代碼覆蓋:通過單元測試,將會顯示哪行代碼被選中
  • ? 改善編碼規則
  • ? 搜尋編碼規則:按照名字,插件,激活級別和類別進行查詢
  • ? 項目搜尋:按照項目的名字進行查詢
  • ? 對比數據:比較同一張表中的任何測量的趨勢

Linux下安裝

  • $ wget?http://dist.sonar.codehaus.org/sonar-3.4.1.zip
  • $ unzip sonar-3.4.1.zip
  • 2)和3)同上
  • $ ./sonar-3.4.1/bin/linux-x86-64/sonar.sh start,啟動sonar,登陸http://ip:9000;查看是否成功。
  • [編輯]eclipse

    是一個開放源代碼的、基于Java的可擴展開發平臺。是一個框架和一組服務,用于通過插件組件構建開發環境。Eclipse 附帶了一個標準和豐富的插件集。

    eclipse與sonar的集成?官方指南

    [編輯]Jenkins

    Jenkins,Hudson發展而來,是基于Java開發的一種持續集成工具,用于監控秩序重復的工作,包括:

  • 持續的軟件版本發布/測試項目。
  • 監控外部調用執行的工作。
  • Jenkins與sonar的集成:?官方文檔

    Jenkins與Cobertura集成?官方指南

    [編輯]Cobertura:

    Cobertura 是一種開源工具,它通過檢測基本的代碼,并觀察在測試包運行時執行了哪些代碼和沒有執行哪些代碼,來測量測試覆蓋率。除了找出未測試到的代碼并發現 bug 外,Cobertura 還可以通過標記無用的、執行不到的代碼來優化代碼,還可以提供 API 實際操作的內部信息,支持maven。 建議:了解Cobertura與maven結合的pom.xml配置及常用命令;既能夠獨立運行 也能夠CI

    sonar分析代碼覆蓋率架構

    [編輯]構建UT測試持續化集成環境及覆蓋率監控

    驅動方式兩種:

    • JUnit驅動
    • TestNG驅動
    補充:上述兩種驅動方式在maven種都需要這個plugin——maven surefire plugin; 作用:根據不同的驅動進行不同的依賴配置,用來在maven構建生命周期的test phase執行一個應用的單元測試, maven充當構建管理和依賴包管理,通過maven引入第三方依賴和插件以及構建和自動化運行UT工程

    所以需要maven的 pom.xml文件

    • 1)通過pom.xml指定cobertura的 plugin和相關屬性

    <properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <sonar.core.codeCoveragePlugin>cobertura</sonar.core.codeCoveragePlugin>

    <sonar.cobertura.maxmen>512M</sonar.cobertura.maxmen>

    </properties>

    <plugin>

    <groupId>org.codehaus.mojo</groupId>

    <artifactId>cobertura-maven-plugin</artifactId><executions><execution><goals>

    <goal>clean</goal>

    </goals>

    </execution>

    </executions>

    </plugin>

    • 2)通過pom.xml指定單測范圍

    <plugin>

    <groupId>org.apache.maven.plugins</groupId>

    <artifactId>maven-surefire-plugin</artifactId>

    <version>2.3</version>

    <configuration><includes>

    <include>**/*Test*.java</include>

    </includes>

    </configuration>

    </plugin>

    • 3)指定cobertura插件:

    <plugin>

    <groupId>org.codehaus.mojo</groupId>

    <artifactId>cobertura-maven-plugin</artifactId>

    <executions><execution><goals>

    <goal>clean</goal>

    /goals>

    </execution>

    </executions>

    </plugin>

    • 4)配置maven setting.xml與sonar平臺集成;

    <profile>

    <id>sonar</id>

    <activation>

    <activeByDefault>true</activeByDefault>

    </activation>

    <properties>

    <sonar.jdbc.url>jdbc:mysql://10.58.11.209:3306/sonar?characterEncoding=utf8</sonar.jdbc.url>

    <sonar.jdbc.driverClassName>com.mysql.jdbc.Driver</sonar.jdbc.driverClassName>

    <sonar.jdbc.username>sonar</sonar.jdbc.username>

    <sonar.jdbc.password>sonar</sonar.jdbc.password>

    <sonar.host.url>http://10.58.11.209:9000/</sonar.host.url>

    </properties>

    </profile>

    ?

    # 觸發方式:maven命令:mvn sonar:sonar

    eclipse soanr插件的安裝,上面已作介紹

    Install new software選項安裝-> 插件下載地址:http://dist.sonar-ide.codehaus.org/eclipse/?勾選java版本,如圖:

    安裝完畢后需初始化運行mvn命令,這時工程會出現類似maven工程的圖標,然后關聯sonar server。如圖:

    配置sonar server,需要sonar管理員添加用戶及權限

    出現以下界面,恭喜你集成完成!

    ?

    http://blog.csdn.net/ning109314/article/details/16337115

    轉載于:https://my.oschina.net/xiaominmin/blog/1590593

    總結

    以上是生活随笔為你收集整理的UT覆盖率的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲看| 韩国三级中文字幕hd浴缸戏 | 天天射寡妇射 | 不卡一二区| 17c一起操 | 欧美多人猛交狂配 | 天堂在线91 | 国产在线18 | 天天操天天操天天射 | 一级不卡 | 欧美一级日韩一级 | 久久这里只有 | 在线五月天 | 一区二区三区高清 | 靠逼网站 | www.国产精品 | 亚洲精品一区二区潘金莲 | 亚洲国产精品免费视频 | 肌肉猛男裸体gay网站免费 | 国产精彩视频一区二区 | 欧美在线日韩在线 | 国产成人aa | 一区二区三区精品视频 | av色欲无码人妻中文字幕 | 国语毛片 | 精品国产黄 | 偷拍精品一区二区三区 | 国产视频日本 | 国产一区两区 | 国产69精品久久久久久久久久 | 日韩综合另类 | 亚洲a中文字幕 | 一区二区国产在线观看 | 欧美成人天堂 | 久久久精品人妻无码专区 | 99久久久无码国产精品免费蜜柚 | 国产精品成人一区二区网站软件 | 精品人妻少妇嫩草av无码专区 | 91蝌蚪91九色白浆 | 欧美日本一区 | av福利在线播放 | 美女涩涩视频 | 欧美亚洲一区二区在线观看 | 99久久婷婷国产综合精品青牛牛 | 99爱视频 | 琪琪午夜伦理影院7777 | 制服丝袜国产精品 | 先锋影音中文字幕 | 九九热视频在线免费观看 | 日韩精品一区二区三区不卡 | 国产成人欧美一区二区三区91 | 我的公把我弄高潮了视频 | 最近中文字幕 | 欧美激情综合色综合啪啪五月 | 亚洲欧洲一二三区 | 欧美一区永久视频免费观看 | 日韩一级黄色片 | 一本大道熟女人妻中文字幕在线 | 国产精品白嫩极品美女视频 | 成人黄色一区二区 | 久久久精品人妻av一区二区三区 | 色婷婷婷| 97人妻天天摸天天爽天天 | 激情久久综合 | 人人操在线播放 | 午夜激情成人 | 前任攻略在线观看免费完整版 | 激情影音 | 国产日本在线播放 | 成人夜间视频 | 成年人在线网站 | 日本黄大片在线观看 | 妖精视频在线观看免费 | 欧美老女人性生活视频 | 美女扒开粉嫩的尿囗给男生桶 | 国产精品夜色一区二区三区 | 嫩草视频国产 | 久久精品综合 | 可以在线观看的av | 欧美人与禽zozzo禽性配 | 日本精品人妻无码免费大全 | 电影桑叶2在线播放完整版 222aaa | 久久99精品波多结衣一区 | 91欧美日韩麻豆精品 | 亚洲香蕉久久 | 国产精品美女久久久久av爽 | 亚洲爱爱图 | 国产蜜臀在线 | 在线观看国产一区 | 第一福利在线 | av电影在线播放 | 天天摸天天操天天爽 | www.99视频 | 九九热在线免费视频 | 欧州一级片| 久久久久久久久蜜桃 | 在线视频亚洲 | 亚洲精品国产精品乱码不卡√香蕉 | 亚洲欧美国产精品久久久久久久 |