三个男人躁我一个爽视频,浪荡小sao货日常林以sooow,成人午夜性A片毛片免费,香港一级婬片A片免费播放小说,全彩无遮挡XXOO漫画小说

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

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

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

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

 

1  引言

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

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

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

 

圖片1.png

1 集成測試平臺功能結構圖

  2.1基于持續集成框架的集成測試平臺架構

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

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

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

  2.3集成測試平臺持續集成功能

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

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

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

  2.5集成測試平臺自動(dòng)化測試功能

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

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

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

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

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

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

根據平臺搭建的技術(shù)標準,研究集成測試平臺的整體架構與具體實(shí)現,通過(guò)集成各種工具實(shí)現平臺的各種集成測試功能。

  3.1集成測試平臺架構

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

圖片2.png

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

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

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

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

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

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

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

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

  3.3集成測試平臺持續集成功能

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

圖片3.png

3 持續集成的典型流程

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

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

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

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

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

圖片4.png

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

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

  3.5集成測試平臺自動(dòng)化測試功能

自動(dòng)化測試是把以人為驅動(dòng)的測試行為轉化為機器執行的過(guò)程。集成測試平臺自動(dòng)化測試服務(wù)提供自動(dòng)化靜態(tài)分析、自動(dòng)化動(dòng)態(tài)測試功能。

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

圖片5.png

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

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

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

圖片6.png

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

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

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

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

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

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

平臺的源代碼行數統計通過(guò)集成第三方工具實(shí)現,本平臺當前依賴(lài)的第三方代碼行數統計工具為testbed工具與Cpp NCSS工具。

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

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

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

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

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

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

4  試用效果評估

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

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

5  結論

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

 

 

  參考文獻

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

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


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

中國質(zhì)量協(xié)會(huì ) 版權所有 未經(jīng)授權請勿轉載任何圖文或建立鏡像
郵箱:info@caq.org.cn
Copyright?2003-2008 All rights reserved 京ICP備16067923號-3 京公網(wǎng)安備 110102000185

三个男人躁我一个爽视频,浪荡小sao货日常林以sooow,成人午夜性A片毛片免费,香港一级婬片A片免费播放小说,全彩无遮挡XXOO漫画小说