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

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

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

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

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

 

1  引言

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

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

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

 

圖片1.png

1 集成測試平臺功能結(jié)構(gòu)圖

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

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

  2.2集成測試平臺代碼托管與版本控制功能

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

  2.3集成測試平臺持續(xù)集成功能

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

  2.4集成測試平臺測試工具遷移

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

  2.5集成測試平臺自動化測試功能

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

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

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

  2.7集成測試平臺用戶管理、任務(wù)管理功能

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

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

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

  3.1集成測試平臺架構(gòu)

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

圖片2.png

2 集成測試平臺組成原理圖

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

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

  3.2集成測試平臺代碼托管與版本控制功能

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

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

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

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

  3.3集成測試平臺持續(xù)集成功能

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

圖片3.png

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

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

  3.4集成測試平臺測試工具遷移

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

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

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

圖片4.png

4 C++test工具的集成測試流程

TestbedklocworkCppcheck等其他工具的遷移過程與c++Test工具類似,通過命令行對工具進行調(diào)用,最終通過生成需要的測試報告。

  3.5集成測試平臺自動化測試功能

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

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

圖片5.png

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

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

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

圖片6.png

6 自動化動態(tài)測試原理圖

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

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

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

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

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

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

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

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

本平臺的圈復(fù)雜度度量的方法采用Cpp NCSS工具與testbed工具進行度量。

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

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

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

4  試用效果評估

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

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

5  結(jié)論

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

 

 

  參考文獻

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

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


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

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