日韩中文字幕av精品91中文|91人人妻香蕉视频在线看91|136国产福利精品成av人导航91精品天堂福利在线观看|91丝袜在线久久久人妻一区精品久久久|国产麻豆精品一区二区三区|欧美日韩精品一区二区三区四区|亚洲中文字幕久久久|国产极品91|人妻中文字幕系列|日韩中文字幕一二三区,午夜少妇久久精品,国产精品中文字幕久久久,亚洲精品一二三在线观看

基于持續(xù)集成技術(shù)的集成測(cè)試平臺(tái)研究與實(shí)現(xiàn)

作者:李瀟 吳松華 魏偉波 發(fā)布日期:2019/01/08

摘要集成測(cè)試平臺(tái)通過(guò)建設(shè)基于持續(xù)集成框架的基礎(chǔ)架構(gòu)平臺(tái),實(shí)現(xiàn)代碼托管、版本控制,、持續(xù)集成,、靜態(tài)分析,、動(dòng)態(tài)測(cè)試,、自動(dòng)化測(cè)試,、缺陷管理功能,,將當(dāng)前的傳統(tǒng)軟件測(cè)試工具遷移到集成測(cè)試平臺(tái),,達(dá)到提高測(cè)試資源利用率、降低測(cè)試成本,、加強(qiáng)測(cè)試質(zhì)量的目的,。

關(guān)鍵字:持續(xù)集成;集成測(cè)試,;版本控制,;本地工具遷移;自動(dòng)化測(cè)試

 

1  引言

隨著信息技術(shù)的快速發(fā)展,,用戶對(duì)便捷,、可靠、安全的應(yīng)用系統(tǒng)需求越來(lái)越高,。與此同時(shí),,對(duì)于軟件測(cè)試的要求也日漸提高,軟件的安全性,、可靠性更是至關(guān)重要,。但是當(dāng)前企業(yè)的研發(fā)測(cè)試工具相對(duì)落后,彼此間的閑置測(cè)試資源不能跨越融合,,導(dǎo)致大量的測(cè)試資源浪費(fèi),。對(duì)于當(dāng)前亟待提高的軟件測(cè)試能力與資源配置能力,基于持續(xù)集成框架的軟件集成測(cè)試平臺(tái)能夠較好解決這些問(wèn)題,。集成測(cè)試平臺(tái)具備節(jié)約成本,、按需提供、早期測(cè)試以及自動(dòng)化測(cè)試的優(yōu)點(diǎn),,能夠幫助軟件企業(yè)實(shí)現(xiàn)軟件質(zhì)量控制以及節(jié)約測(cè)試成本的目的,。

2  技術(shù)研究理論概述

根據(jù)基于持續(xù)集成框架的軟件集成測(cè)試平臺(tái)的研究目標(biāo),,以業(yè)務(wù)需求、安全可靠,、經(jīng)濟(jì)適用,、可擴(kuò)展性強(qiáng)、規(guī)范標(biāo)準(zhǔn)化為原則,,擬搭建一個(gè)具有代碼托管,、版本控制,、項(xiàng)目持續(xù)集成,、多測(cè)試工具輔助集成、自動(dòng)化測(cè)試,、缺陷管理,、軟件質(zhì)量度量以及用戶/任務(wù)管理功能的集成測(cè)試平臺(tái)。集成測(cè)試平臺(tái)的功能結(jié)構(gòu)圖如下圖所示:

 

圖片1.png

1 集成測(cè)試平臺(tái)功能結(jié)構(gòu)圖

  2.1基于持續(xù)集成框架的集成測(cè)試平臺(tái)架構(gòu)

集成測(cè)試平臺(tái)通過(guò)建設(shè)以持續(xù)集成框架為基礎(chǔ)的架構(gòu)平臺(tái),,構(gòu)建版本控制,、代碼托管、持續(xù)集成,、自動(dòng)化測(cè)試與測(cè)試管理功能,,同時(shí)實(shí)現(xiàn)將當(dāng)前的傳統(tǒng)桌面測(cè)試工具遷移到集成平臺(tái)進(jìn)行集中管理。

  2.2集成測(cè)試平臺(tái)代碼托管與版本控制功能

代碼托管與版本控制模塊為開(kāi)發(fā)人員提供在線的源代碼管理功能,,具體包括代碼推送,、代碼推送、分支合并,、沖突解決等功能,。

  2.3集成測(cè)試平臺(tái)持續(xù)集成功能

持續(xù)集成是頻繁、持續(xù)的在多個(gè)團(tuán)隊(duì)成員的工作中進(jìn)行集成,、測(cè)試,,并且給予反饋的能力,是集成測(cè)試平臺(tái)的核心功能部分,。該模塊主要包括檢出代碼,、編譯構(gòu)建、運(yùn)行測(cè)試,、結(jié)果記錄,、測(cè)試統(tǒng)計(jì)功能。

  2.4集成測(cè)試平臺(tái)測(cè)試工具遷移

解決本地測(cè)試工具(Testbed,、Klocwork,、C++Test等)遷移到集成測(cè)試平臺(tái)服務(wù)器端的兼容性與接口問(wèn)題,在集成測(cè)試平臺(tái)對(duì)多個(gè)項(xiàng)目任務(wù)實(shí)現(xiàn)自動(dòng)排隊(duì),,調(diào)用測(cè)試工具按照一定順序?qū)μ峤坏娜蝿?wù)進(jìn)行分析測(cè)試,,并將測(cè)試結(jié)果反饋給相關(guān)開(kāi)發(fā)測(cè)試人員,防止用戶集中調(diào)用測(cè)試工具引起的資源沖突。

  2.5集成測(cè)試平臺(tái)自動(dòng)化測(cè)試功能

定期或者由事件觸發(fā)進(jìn)行軟件測(cè)試,,在非工作時(shí)間進(jìn)行重復(fù)性較大的靜態(tài)分析與回歸測(cè)試工作,,實(shí)現(xiàn)對(duì)軟件的自動(dòng)化測(cè)試,減少大量重復(fù),、枯燥的人力測(cè)試工作,。包括自動(dòng)化靜態(tài)分析功能開(kāi)發(fā)與自動(dòng)化動(dòng)態(tài)測(cè)試功能開(kāi)發(fā)。

  2.6集成測(cè)試平臺(tái)缺陷管理以及軟件質(zhì)量度量功能

缺陷管理功能包括缺陷生命周期管理功能與缺陷統(tǒng)計(jì)功能,。軟件質(zhì)量度量能力包括SLOC(源代碼行數(shù))統(tǒng)計(jì),、單位缺陷數(shù)、代碼覆蓋率,、設(shè)計(jì)開(kāi)發(fā)約束,、圈復(fù)雜度功能開(kāi)發(fā)。

  2.7集成測(cè)試平臺(tái)用戶管理,、任務(wù)管理功能

提供用戶管理服務(wù)與任務(wù)管理服務(wù),。用戶管理包括用戶注冊(cè)、用戶登錄,、角色/權(quán)限管理,、用戶分組等功能;任務(wù)管理包括任務(wù)創(chuàng)建,、任務(wù)分配,、任務(wù)追蹤、任務(wù)刪除以及任務(wù)信息展示等功能,。

3  研究方案與技術(shù)路徑

根據(jù)平臺(tái)搭建的技術(shù)標(biāo)準(zhǔn),,研究集成測(cè)試平臺(tái)的整體架構(gòu)與具體實(shí)現(xiàn),通過(guò)集成各種工具實(shí)現(xiàn)平臺(tái)的各種集成測(cè)試功能,。

  3.1集成測(cè)試平臺(tái)架構(gòu)

集成測(cè)試平臺(tái)的基本架構(gòu)圖與組成原理圖如下圖所示,。

圖片2.png

2 集成測(cè)試平臺(tái)組成原理圖

集成測(cè)試平臺(tái)通過(guò)持續(xù)集成服務(wù)作為中心節(jié)點(diǎn),連接版本控制與代碼托管服務(wù),、靜態(tài)分析與動(dòng)態(tài)測(cè)試服務(wù),、缺陷管理服務(wù)、軟件質(zhì)量度量服務(wù)所在節(jié)點(diǎn),,對(duì)各服務(wù)節(jié)點(diǎn)進(jìn)行統(tǒng)一調(diào)度管理,。

代碼托管與版本控制服務(wù)獲取源碼信息,同時(shí)將源碼信息推送到持續(xù)集成服務(wù)端,。持續(xù)集成平臺(tái)服務(wù)端按照項(xiàng)目對(duì)源碼信息進(jìn)行編譯構(gòu)建,,并調(diào)用平臺(tái)測(cè)試工具對(duì)構(gòu)建后項(xiàng)目進(jìn)行靜態(tài)分析、動(dòng)態(tài)測(cè)試等測(cè)試工作,,測(cè)試工具在對(duì)項(xiàng)目進(jìn)行軟件測(cè)試與質(zhì)量度量后,,將產(chǎn)生的測(cè)試結(jié)果與度量結(jié)果推送到缺陷管理工具,,同時(shí)平臺(tái)對(duì)測(cè)試結(jié)果報(bào)告進(jìn)行顯示。

  3.2集成測(cè)試平臺(tái)代碼托管與版本控制功能

代碼托管與版本控制工具分為服務(wù)器端工具與客戶端工具,,本系統(tǒng)采用的代碼托管與版本控制工具的服務(wù)器端工具采用gitlab,,客戶端工具采用git以及turtoise

本方案將Gitlab工具部署在服務(wù)器端,。Gitlab安裝設(shè)置完成后,,啟動(dòng)相關(guān)服務(wù),通過(guò)瀏覽器登錄gitlab服務(wù)端,,為用戶項(xiàng)目新建一個(gè)項(xiàng)目,,為用戶提供在線代碼倉(cāng)庫(kù),使用戶可以通過(guò)客戶端工具將本地代碼提交到服務(wù)器端,。

為了實(shí)現(xiàn)客戶的本地計(jì)算機(jī)與服務(wù)器端代碼倉(cāng)庫(kù)的交互,,需要安裝本地git客戶端,,為客戶提供拉取,、推送、確認(rèn),、克隆等代碼管理服務(wù),。在安裝客戶端時(shí),需要為用戶指定服務(wù)器的代碼倉(cāng)庫(kù)地址以及對(duì)應(yīng)的用戶及項(xiàng)目,,同時(shí)用戶在客戶端需要建立本地代碼版本庫(kù),,與服務(wù)端倉(cāng)庫(kù)進(jìn)行同步。

為了向用戶提供更加友好的版本控制工具界面,,本方案使用TortoiseGit作為Git 圖形界面操作工具,,可以為不熟悉linux shell腳本或者命令行的新手用戶提供快速上手的可能,降低用戶的學(xué)習(xí)成本的使用阻力,。

  3.3集成測(cè)試平臺(tái)持續(xù)集成功能

本方案采用jenkins作為持續(xù)集成的實(shí)現(xiàn)工具,,典型的集成如下圖所示。

圖片3.png

3 持續(xù)集成的典型流程

首先,,將jenkins持續(xù)集成服務(wù)從gitlab版本控制中心/代碼倉(cāng)庫(kù)獲取最新的源程序代碼,,隨后從測(cè)試參數(shù)配置界面讀取用戶設(shè)置的測(cè)試參數(shù),并通過(guò)批處理命令調(diào)用測(cè)試工具對(duì)獲取到的源程序進(jìn)行測(cè)試,,最后通過(guò)發(fā)布插件將測(cè)試結(jié)果反饋給用戶,,用戶根據(jù)結(jié)果測(cè)試問(wèn)題更改代碼,再次提交代碼到gitlab版本控制中心/代碼倉(cāng)庫(kù),。整個(gè)流程形成閉環(huán),,持續(xù)集成促進(jìn)代碼質(zhì)量提升。

  3.4集成測(cè)試平臺(tái)測(cè)試工具遷移

在本地測(cè)試工具的遷移過(guò)程中,,需要研究集成測(cè)試平臺(tái)軟件對(duì)本地測(cè)試工具的支持情況與插件開(kāi)發(fā)情況,,將當(dāng)前擁有的商用測(cè)試工具遷移到集成測(cè)試平臺(tái)中,,為集成測(cè)試平臺(tái)提供測(cè)試服務(wù)與測(cè)試結(jié)果信息,需要遷移的工具包括Testbed,、Klocwork,、C++test,同時(shí)為增加軟件測(cè)試工具的豐富程度,,引入cppcheck工具作為程序靜態(tài)分析工具的補(bǔ)充,。

C++test工具的遷移思路是,將整個(gè)測(cè)試流程作為一個(gè)命令行/SHELL實(shí)現(xiàn),。在整個(gè)測(cè)試流程中,,包括待測(cè)試源程序拷貝到測(cè)試工作空間、選擇合適的測(cè)試策略或者分析準(zhǔn)則,、啟動(dòng)測(cè)試工具以及最終生成測(cè)試報(bào)告,。

C++TEST工具的腳本執(zhí)行流程如下圖所示。

圖片4.png

4 C++test工具的集成測(cè)試流程

Testbed,、klocwork,、Cppcheck等其他工具的遷移過(guò)程與c++Test工具類(lèi)似,通過(guò)命令行對(duì)工具進(jìn)行調(diào)用,,最終通過(guò)生成需要的測(cè)試報(bào)告,。

  3.5集成測(cè)試平臺(tái)自動(dòng)化測(cè)試功能

自動(dòng)化測(cè)試是把以人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的過(guò)程。集成測(cè)試平臺(tái)自動(dòng)化測(cè)試服務(wù)提供自動(dòng)化靜態(tài)分析,、自動(dòng)化動(dòng)態(tài)測(cè)試功能,。

自動(dòng)化靜態(tài)分析,提供定期或者由事件觸發(fā)進(jìn)行靜態(tài)分析功能,,在非工作時(shí)間進(jìn)的靜態(tài)分析工作,,其主要工作原理如下圖所示。

圖片5.png

5 自動(dòng)化靜態(tài)分析原理圖

在持續(xù)集成服務(wù)器中配置版本控制服務(wù)器與靜態(tài)分析工具運(yùn)行服務(wù)器,,在構(gòu)建設(shè)置中設(shè)置靜態(tài)分析任務(wù)的觸發(fā)條件或者觸發(fā)時(shí)間,,設(shè)置測(cè)試結(jié)果/報(bào)告的推送端口/人員。

自動(dòng)化動(dòng)態(tài)測(cè)試,,提供定期或者由事件觸發(fā)進(jìn)行動(dòng)態(tài)測(cè)試功能,,在非工作時(shí)間進(jìn)的動(dòng)態(tài)測(cè)試工作,其主要工作原理如下圖所示,。

圖片6.png

6 自動(dòng)化動(dòng)態(tài)測(cè)試原理圖

在持續(xù)集成服務(wù)器中配置版本控制,、測(cè)試用例/樁函數(shù)服務(wù)器與動(dòng)態(tài)測(cè)試工具運(yùn)行服務(wù)器,在構(gòu)建設(shè)置中設(shè)置動(dòng)態(tài)測(cè)試任務(wù)的觸發(fā)條件或者觸發(fā)時(shí)間,,設(shè)置測(cè)試結(jié)果/報(bào)告的推送端口/人員,。

  3.6集成測(cè)試平臺(tái)缺陷管理以及軟件質(zhì)量度量功能

集成測(cè)試平臺(tái)缺陷管理服務(wù)包括缺陷生命周期管理、缺陷統(tǒng)計(jì)服務(wù),。缺陷生命周期管理包括缺陷產(chǎn)生,、缺陷分派,、缺陷修復(fù)、缺陷檢查,、缺陷管理,、缺陷再開(kāi)等多個(gè)步驟,追蹤缺陷從產(chǎn)生到修復(fù)/關(guān)閉的整個(gè)流程,,提供缺陷等級(jí),、缺陷類(lèi)型等多維度的劃分服務(wù);缺陷統(tǒng)計(jì)提供缺陷匯總統(tǒng)計(jì)展示功能,,將項(xiàng)目各個(gè)階段甚至整個(gè)研發(fā)過(guò)程的缺陷動(dòng)態(tài)通過(guò)不同的可視化工具統(tǒng)計(jì)展示,,為相關(guān)人員提供度量參考。

集成測(cè)試平臺(tái)的缺陷管理工具主要通過(guò)集成jira工具來(lái)實(shí)現(xiàn)缺陷管理,。缺陷管理具備缺陷屬性設(shè)置與缺陷流轉(zhuǎn)的功能,。缺陷的主要屬性包括缺陷名稱(chēng)、缺陷描述,、缺陷等級(jí)等信息,,測(cè)試人員可以在開(kāi)啟缺陷時(shí)設(shè)置缺陷屬性與缺陷信息。缺陷流轉(zhuǎn)功能主要是通過(guò)缺陷在各個(gè)用戶之間流轉(zhuǎn)達(dá)到修復(fù)缺陷的目的,,一般情況下參與缺陷流轉(zhuǎn)的需要測(cè)試人員,、管理人員、開(kāi)發(fā)人員,,測(cè)試人員負(fù)責(zé)開(kāi)啟缺陷與回歸缺陷,管理人員負(fù)責(zé)確認(rèn)缺陷,,開(kāi)發(fā)人員負(fù)責(zé)修復(fù)缺陷,。

在軟件開(kāi)發(fā)中,軟件質(zhì)量是衡量軟件是否符合需求,、標(biāo)準(zhǔn)的重要體現(xiàn),。除了代碼質(zhì)量外,影響軟件整體質(zhì)量的因素還有很多,。因此,,要明確軟件的整體質(zhì)量,就需要在各個(gè)環(huán)節(jié)嚴(yán)格控制,。軟件質(zhì)量度量服務(wù)主要包括一下功能:SLOC(源代碼行數(shù))統(tǒng)計(jì),、代碼覆蓋率、設(shè)計(jì)開(kāi)發(fā)約束,、圈復(fù)雜度,。

平臺(tái)的源代碼行數(shù)統(tǒng)計(jì)通過(guò)集成第三方工具實(shí)現(xiàn),本平臺(tái)當(dāng)前依賴(lài)的第三方代碼行數(shù)統(tǒng)計(jì)工具為testbed工具與Cpp NCSS工具,。

代碼覆蓋率主要用于衡量單元測(cè)試用例的設(shè)計(jì)好壞程度,,設(shè)計(jì)良好的單元測(cè)試用例能夠利用最少的用例達(dá)到最大的覆蓋率,,同時(shí)覆蓋率也用于衡量軟件測(cè)試的充分程度。本平臺(tái)的代碼覆蓋率功能由cpptest工具的單元測(cè)試部分提供,,每次執(zhí)行完單元測(cè)試后根據(jù)用例執(zhí)行情況生成單元測(cè)試的代碼覆蓋率情況,,具體的實(shí)現(xiàn)情況與自動(dòng)單元測(cè)試模塊的實(shí)現(xiàn)功能一致。

本平臺(tái)的設(shè)計(jì)開(kāi)發(fā)約束內(nèi)容主要包括:方法/函數(shù)個(gè)數(shù),、類(lèi)/方法的長(zhǎng)度,、類(lèi)中方法/屬性的個(gè)數(shù)幾項(xiàng),度量的方法采用cpp ncss工具與testbed工具進(jìn)行度量,。

本平臺(tái)的圈復(fù)雜度度量的方法采用Cpp NCSS工具與testbed工具進(jìn)行度量,。

  3.7集成測(cè)試平臺(tái)用戶管理、任務(wù)管理功能

集成測(cè)試平臺(tái)提供基本的用戶管理功能,。用戶管理包括用戶注冊(cè),、用戶信息變更、用戶登錄,、角色/權(quán)限管理,、用戶分組等功能。

項(xiàng)目管理包括項(xiàng)目創(chuàng)建,、項(xiàng)目配置,、項(xiàng)目刪除以及項(xiàng)目信息展示等功能。

4  試用效果評(píng)估

為評(píng)估該平臺(tái)在實(shí)際應(yīng)用的效果與能力,,現(xiàn)已將該平臺(tái)部署到測(cè)試部門(mén)與開(kāi)發(fā)部門(mén),,為相關(guān)部門(mén)提供了集成測(cè)試服務(wù)。

在測(cè)試部門(mén)部署后,,提升了測(cè)試人員的靜態(tài)分析效率,,解決了原先測(cè)試工具LICENSE的沖突問(wèn)題,當(dāng)前基本上已經(jīng)不存在由于LICENSE搶占而導(dǎo)致的靜態(tài)分析工作拖后的情況,,比如:某部門(mén)利用該工具開(kāi)展了某雷達(dá)軟件15萬(wàn)行的代碼多版本跟蹤靜態(tài)分析工作,,將原先需要一周才能完成的靜態(tài)工具分析工作壓縮到兩天內(nèi)完成,使評(píng)測(cè)工作的效率得到了較大的提升,;在開(kāi)發(fā)部門(mén)部署后,,為開(kāi)發(fā)部門(mén)提供C/C++代碼編碼規(guī)則檢查/運(yùn)行錯(cuò)誤檢查等錯(cuò)誤,將軟件測(cè)試集成與編碼的每個(gè)階段,,降低了軟件在前期引入缺陷與錯(cuò)誤的風(fēng)險(xiǎn),,同時(shí)平臺(tái)提供的自動(dòng)靜態(tài)分析功能容許開(kāi)發(fā)人員在非工作時(shí)間進(jìn)行批量代碼的靜態(tài)分析,保證了代碼集成的安全性,。

5  結(jié)論

本文根據(jù)軟件測(cè)試中的實(shí)際需求,,對(duì)基于持續(xù)集成框架的集成測(cè)試平臺(tái)進(jìn)行了研究,并對(duì)其關(guān)鍵技術(shù)進(jìn)行了深入的研究,,結(jié)合當(dāng)前測(cè)試實(shí)際情況提出了平臺(tái)的機(jī)構(gòu)以及具體功能的實(shí)現(xiàn)方法,,同時(shí)選取測(cè)試部門(mén)與開(kāi)發(fā)部門(mén)進(jìn)行部署,,驗(yàn)證集成測(cè)試平臺(tái)在測(cè)試與開(kāi)發(fā)過(guò)程中的提質(zhì)增效能力。通過(guò)對(duì)基于持續(xù)集成技術(shù)的集成測(cè)試平臺(tái)研究與實(shí)現(xiàn),,降低了軟件測(cè)試成本,,前移了軟件測(cè)試工作、精簡(jiǎn)了測(cè)試工具數(shù)量,、提高了軟件測(cè)試效率,,解決了當(dāng)前測(cè)試過(guò)程中面臨的諸多能力,為測(cè)試能力提升與建設(shè)提供了良好的思路,。

 

 

  參考文獻(xiàn)

[1趙亞楠. 基于Jenkins的企業(yè)持續(xù)集成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安電子科技大學(xué), 2013

[2]朱侃逸. 基于Jenkins持續(xù)集成平臺(tái)的畢業(yè)論文選題系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [D]. 復(fù)旦大學(xué), 2014


關(guān)于我們 網(wǎng)站地圖 版權(quán)聲明 聯(lián)系我們

中國(guó)質(zhì)量協(xié)會(huì) 版權(quán)所有 未經(jīng)授權(quán)請(qǐng)勿轉(zhuǎn)載任何圖文或建立鏡像
郵箱:[email protected]
Copyright?2003-2008 All rights reserved 京ICP備16067923號(hào)-3 京公網(wǎng)安備 110102000185