• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種面向數(shù)值模擬軟件的持續(xù)集成平臺

    2020-09-26 11:50:38單雅輝劉青凱楊章田鴻運(yùn)鄒勇剛
    計算機(jī)輔助工程 2020年3期
    關(guān)鍵詞:軟件測試

    單雅輝 劉青凱 楊章 田鴻運(yùn) 鄒勇剛

    摘要: 隨著軟件復(fù)雜度的增加和交付需求的變化,快速集成和自動部署成為高性能數(shù)值模擬軟件推廣應(yīng)用的瓶頸。為滿足軟件構(gòu)建和發(fā)布的差異化需求,簡化從用戶需求到軟件發(fā)布的工作流程,基于Jenkins設(shè)計持續(xù)集成平臺,實(shí)現(xiàn)軟件靜態(tài)審查、編譯、測試和發(fā)布流程的自動化,全面記錄軟件構(gòu)建日志和測試結(jié)果。利用Docker技術(shù)將構(gòu)建環(huán)境容器化,實(shí)現(xiàn)環(huán)境的快速搭建和配置管理,滿足多樣化目標(biāo)環(huán)境需求。該平臺的實(shí)際應(yīng)用效果顯示,基于該平臺的產(chǎn)品發(fā)布周期相比之前縮短約75%,可極大簡化軟件安裝和部署難度。

    關(guān)鍵詞: 持續(xù)集成; 軟件測試; 軟件發(fā)布; 自動部署

    中圖分類號: TP311.56 ? 文獻(xiàn)標(biāo)志碼: B

    Abstract: With the software complexity increasing and the delivery requirements changing, rapid integration and automatic deployment become the bottleneck in the application of high-performance numerical simulation software. In order to meet the differentiated requirements of software construction and release, the workflow from user requirements to software distribution is simplified, and then the continuous integration platform based on Jenkins is designed to realize the automation of software static review, compilation, testing and release process, in which the software build logs and test results can be recorded comprehensively. The Docker technology is used to containerize the environment, and then the rapid construction and configuration management of the environment can be realized to meet the needs of diversified target environment. The application effect of the platform shows that the product distribution cycle based on this platform is about 75% shorter than before, which can greatly simplify the difficulty of software installation and deployment.

    Key words: continuous integration; software testing; software release; automatic deployment

    0 引 言

    數(shù)值模擬軟件是一類特殊的計算機(jī)應(yīng)用軟件,其服務(wù)于科學(xué)計算,以再現(xiàn)、發(fā)現(xiàn)和預(yù)測真實(shí)客觀系統(tǒng)運(yùn)行規(guī)律和演化特征的數(shù)值模擬為主要目標(biāo)。[1]目前,數(shù)值模擬軟件已廣泛應(yīng)用于國家重大領(lǐng)域,包括全球氣候預(yù)測、地球資源環(huán)境檢測、核能開發(fā)利用、電磁環(huán)境和信息安全等。

    隨著數(shù)值模擬軟件應(yīng)用范圍不斷擴(kuò)大,數(shù)值模擬軟件的研發(fā)呈現(xiàn)以下3個方面特征[2]:(1)應(yīng)用需求日趨復(fù)雜,軟件規(guī)模不斷增加,代碼行數(shù)由過去的幾千行發(fā)展到數(shù)萬行甚至數(shù)十萬行;(2)高效能計算共性技術(shù)不斷發(fā)展,基于編程框架與離散中臺的研發(fā)模式日益普及,使得軟件架構(gòu)趨于層次化和模塊化,軟件集成復(fù)雜度隨之增加;(3)軟件運(yùn)行環(huán)境多樣、交付部署頻繁,為保證求解問題的規(guī)模,數(shù)值模擬軟件在計算實(shí)際應(yīng)用問題時需要高性能計算機(jī)支撐,但是不同高性能計算機(jī)在硬件架構(gòu)、編譯器、MPI、作業(yè)調(diào)度等方面存在較大差別,這種運(yùn)行環(huán)境差異會對數(shù)值模擬軟件的計算結(jié)果精度、性能表現(xiàn)等產(chǎn)生干擾,嚴(yán)重情況下甚至導(dǎo)致程序無法正常運(yùn)行,這對軟件的可移植性、部署靈活性提出更高的要求。

    因此,在數(shù)值模擬軟件研發(fā)過程中,如何降低集成和部署難度、滿足產(chǎn)品化和應(yīng)用推廣需求,成為急需解決的問題。

    本文結(jié)合高性能數(shù)值模擬軟件研發(fā)過程中的實(shí)際需求,設(shè)計并實(shí)現(xiàn)一種適用于高性能數(shù)值模擬軟件研發(fā)的持續(xù)集成平臺;介紹數(shù)值模擬軟件交付過程中面臨的實(shí)際問題,對比分析幾款典型的軟件構(gòu)建工具;介紹持續(xù)集成平臺的操作流程和設(shè)計方案,闡述實(shí)施過程中的關(guān)鍵技術(shù)點(diǎn)和具體實(shí)施過程。

    1 數(shù)值模擬軟件交付過程面臨的問題和挑戰(zhàn) ?數(shù)值模擬軟件的交付過程涉及環(huán)境構(gòu)建、依賴管理解析、軟件編譯、測試和部署等內(nèi)容,如果僅涉及依賴關(guān)系處理和編譯,業(yè)內(nèi)一些構(gòu)建工具(如CMake)可以有效支撐,但對于整個交付過程來說,業(yè)內(nèi)流行的構(gòu)建工具暫時不能滿足需求。數(shù)值模擬軟件交付過程具有以下幾個方面的需求特征。

    (1)生產(chǎn)環(huán)境的有效配置管理。數(shù)值模擬軟件的研發(fā)和使用大多在Linux系統(tǒng)環(huán)境下進(jìn)行。為保證軟件安裝包的可用性,生產(chǎn)環(huán)境需要與用戶環(huán)境保持一致,通常采用搭建虛擬機(jī)的方式模擬用戶環(huán)境。生產(chǎn)環(huán)境搭建過程中需完成操作系統(tǒng)安裝、網(wǎng)絡(luò)配置、軟件驅(qū)動、編譯器安裝和環(huán)境配置等工作。該過程往往無法被記錄,配置人員的某個錯誤操作極可能造成軟件編譯部署失敗,并且難以定位錯誤的位置。因此,生產(chǎn)環(huán)境最好能夠自動創(chuàng)建,并且每次環(huán)境配置的變更都能夠被記錄下來。

    (2)編譯語言與目標(biāo)存在差異。在層次化研發(fā)模式中,按照軟件的不同功能定位,數(shù)值模擬軟件分為編程框架、離散中臺和應(yīng)用軟件3類。數(shù)值模擬軟件趨于模塊化,各模塊研發(fā)相對獨(dú)立,模塊或軟件之間依賴關(guān)系復(fù)雜。不同類型的軟件依賴關(guān)系不同,編譯目標(biāo)也會不同。此外,數(shù)值模擬軟件大多基于C、C+ +、Fortran等編程語言混合編寫,程序的編譯方式也會存在一定的差異。因此,需要構(gòu)建一套不僅能夠支持不同程序語言、編譯方式,而且能夠自動解析、有效處理依賴關(guān)系的工具。

    (3)跨平臺兼容性測試。在通常情況下,軟件集成、開發(fā)和測試等過程是在開發(fā)環(huán)境下完成的,之后才會向生產(chǎn)環(huán)境部署。對于數(shù)值模擬軟件來說,程序?qū)幾g和運(yùn)行時的環(huán)境依賴較為敏感。當(dāng)生產(chǎn)環(huán)境與開發(fā)環(huán)境不一致時,經(jīng)常引起依賴庫版本不匹配、接口不兼容等問題,導(dǎo)致程序出現(xiàn)編譯或運(yùn)行錯誤。解決這類問題一般需要對程序進(jìn)行適配性修改,然后重新提請測試和部署,但是這種方式?jīng)]有在目標(biāo)環(huán)境中進(jìn)行充分測試,無法保證程序的正確性。解決方案是將生產(chǎn)環(huán)境下的測試、部署和發(fā)布活動納入到數(shù)值模擬軟件研發(fā)過程中,在開發(fā)的同時完成生產(chǎn)環(huán)境的測試,及時發(fā)現(xiàn)軟件在生產(chǎn)環(huán)境中遇到的問題或存在的缺陷。

    (4)一鍵式軟件安裝部署。完成軟件構(gòu)建后,將編譯生成的二進(jìn)制可執(zhí)行程序、用戶文檔及其依賴的第三方庫打包后供用戶使用。由于用戶環(huán)境配置不同,需要手工修改配置文件中的目錄結(jié)構(gòu)和環(huán)境配置信息,解析依賴關(guān)系與可執(zhí)行程序鏈接庫,并通過執(zhí)行程序檢查可用性。軟件越復(fù)雜,依賴關(guān)系越復(fù)雜,安裝部署所需時間越長,而且越容易出現(xiàn)錯誤。這對用戶來說并不友好,影響程序的推廣應(yīng)用。因此,構(gòu)建工具應(yīng)該可以支持用戶環(huán)境下依賴關(guān)系、安裝與配置環(huán)境變量的自動處理,簡化用戶部署難度。

    (5)全面記錄構(gòu)建日志和測試結(jié)果。數(shù)值模擬軟件開發(fā)涉及數(shù)學(xué)、物理、計算機(jī)等多學(xué)科領(lǐng)域,開發(fā)人員之間的知識背景不同,對軟件的理解差別很大。在軟件構(gòu)建和測試過程中發(fā)生錯誤時,無法快速定位錯誤是由環(huán)境配置、程序自身還是第三方依賴關(guān)系所引入,聯(lián)合調(diào)試難度大。因此,持續(xù)集成平臺需要將環(huán)境配置信息、編譯日志和測試結(jié)果全面記錄下來,并保存錯誤現(xiàn)場,便于開發(fā)人員分析和定位錯誤。

    為解決以上問題,調(diào)研幾款業(yè)內(nèi)知名的軟件構(gòu)建和部署工具,其功能對比見表1。

    Make是經(jīng)典的構(gòu)建工具之一,目前仍然活躍在軟件開發(fā)領(lǐng)域,但是當(dāng)應(yīng)用程序復(fù)雜程度和軟件依賴關(guān)系增加時,Makefile維護(hù)成本提升,導(dǎo)致Make更加難以調(diào)試。CMake是開源跨平臺構(gòu)建工具,能夠處理混合語言編譯,但暫不支持構(gòu)建環(huán)境和自動解析依賴等功能。MSBuild、Ant、Maven和Gradle的應(yīng)用領(lǐng)域主要針對Java或.NET語言,其中Gradle功能最為完善,可支持依賴解析、生命周期管理和構(gòu)建環(huán)境管理等功能[3-8],但其支持語言受限,無法滿足數(shù)值模擬領(lǐng)域多種編程語言混合編譯的需求。

    目前,尚未發(fā)現(xiàn)單一的工具軟件可以完全符合上述高性能數(shù)值模擬軟件構(gòu)建和部署的需求,因此,針對數(shù)值模擬軟件交付過程中存在的問題,借鑒DevOps思路[9],設(shè)計并實(shí)現(xiàn)一套面向數(shù)值模擬軟件的持續(xù)集成平臺。

    2 持續(xù)集成與測試平臺

    為解決前文提出的數(shù)值模擬軟件構(gòu)建和部署過程中存在的問題,設(shè)計實(shí)現(xiàn)一種面向高性能數(shù)值模擬軟件的持續(xù)集成平臺。持續(xù)集成是一種軟件開發(fā) ? 實(shí)踐活動,通過單元測試和集成測試,將本地開發(fā)創(chuàng)建的代碼更改提交到代碼倉庫中,觸發(fā)自動化的軟件構(gòu)建操作,包括代碼編譯、靜態(tài)代碼審查、測試覆蓋率檢查、自動化驗(yàn)收測試和軟件安裝包發(fā)布等,驗(yàn)證更改是否滿足質(zhì)量和正確性的要求,從而盡早地發(fā)現(xiàn)集成錯誤。[10]該平臺主要解決以下關(guān)鍵問題:(1)簡化從用戶需求到軟件產(chǎn)品發(fā)布的工作流程,盡早發(fā)現(xiàn)程序缺陷;(2)滿足多樣化目標(biāo)環(huán)境需求,實(shí)現(xiàn)環(huán)境的快速搭建與配置管理;(3)有效管理軟件依賴關(guān)系,增強(qiáng)軟件構(gòu)建部署能力。

    2.1 關(guān)鍵技術(shù)點(diǎn)和系統(tǒng)特色

    2.1.1 自動化通用流程設(shè)計

    針對傳統(tǒng)工具系統(tǒng)構(gòu)建流程繁瑣、用戶需求響應(yīng)不及時的問題,設(shè)計一套自動化軟件持續(xù)集成流程,盡量減少人工干預(yù)。該流程涉及產(chǎn)品發(fā)布的整個工作流,支持代碼靜態(tài)分析、編譯部署、驗(yàn)收測試、測試覆蓋率檢測和產(chǎn)品發(fā)布等過程的自動化,其工作流程見圖1。

    該流程的輸入是軟件源代碼,輸出是二進(jìn)制安裝包。該流程的基礎(chǔ)是通過版本控制工具統(tǒng)一管理源代碼,制定規(guī)范進(jìn)行分支、目錄和權(quán)限管理。當(dāng)研發(fā)人員收到用戶的需求或缺陷反饋后,對本地代碼進(jìn)行修改,并完成本地單元級、模塊級測試驗(yàn)證后,將源代碼提交到版本管理系統(tǒng)。當(dāng)版本管理系統(tǒng)檢查到源代碼倉庫的狀態(tài)發(fā)生變化后,自動或定時觸發(fā)集成服務(wù)器進(jìn)入構(gòu)建過程。持續(xù)集成系統(tǒng)通過任務(wù)形式將源代碼分發(fā)到指定從節(jié)點(diǎn)(按環(huán)境需求)進(jìn)行系統(tǒng)構(gòu)建和測試,具體包括代碼靜態(tài)審查、自動化測試、覆蓋率測試等。測試通過后將軟件編譯成二進(jìn)制安裝包,并將安裝包通過文件傳輸工具上傳至產(chǎn)品發(fā)布平臺或部署到目標(biāo)機(jī),通知用戶下載、安裝軟件產(chǎn)品。如果系統(tǒng)構(gòu)建失敗,則通過網(wǎng)頁的形式將報錯日志反饋到控制臺輸出界面,供研發(fā)人員快速跟蹤定位錯誤。

    2.1.2 基于模板快速配置構(gòu)建環(huán)境

    滿足多樣化目標(biāo)環(huán)境需求的關(guān)鍵是實(shí)現(xiàn)構(gòu)建環(huán)境的自動化搭建,并對環(huán)境進(jìn)行有效的版本控制。對虛擬化技術(shù)的前期調(diào)研發(fā)現(xiàn),應(yīng)用容器引擎技術(shù)能夠?qū)?gòu)建環(huán)境搭建的工作量最小化。

    應(yīng)用容器引擎將所需軟件及其依賴關(guān)系包進(jìn)一個可移植的容器中,支持向任何現(xiàn)有的Linux機(jī)器部署和遷移。容器是一組能夠隨處運(yùn)行的單元,對應(yīng)用程序及其關(guān)聯(lián)性進(jìn)行隔離,運(yùn)行時相互之間不影響。根據(jù)特定的用戶環(huán)境需求,容器引擎可通過環(huán)境構(gòu)建腳本快速創(chuàng)建容器環(huán)境。構(gòu)建腳本將全部環(huán)境配置命令組合形成文件模板,通過一條簡單的環(huán)境構(gòu)建命令即可實(shí)現(xiàn)容器化構(gòu)建環(huán)境的快速生成和批量創(chuàng)建。

    與虛擬機(jī)相比,容器化環(huán)境更加輕量化。當(dāng)出現(xiàn)新的構(gòu)建環(huán)境需求時,只需要簡單修改模板文件,即可實(shí)現(xiàn)快速定制,環(huán)境搭建時間由原來的幾小時縮短為幾分鐘。此外,這種方式便于開發(fā)人員與測試人員之間溝通迭代,通過交換環(huán)境構(gòu)建腳本可保證軟件執(zhí)行環(huán)境的一致性。

    2.1.3 聯(lián)動構(gòu)建機(jī)制管理依賴關(guān)系

    在數(shù)值模擬軟件研制過程中,存在2種較為常見的依賴關(guān)系,即庫依賴和組件依賴。庫依賴是指程序開發(fā)過程中所依賴的第三方軟件包,例如編譯器、MPI和數(shù)學(xué)庫等,這些軟件一般很少更新。組件依賴應(yīng)用程序所依賴的部分程序塊通常是自主研發(fā)的,需要頻繁更新。[10]

    對于庫依賴來說,由于不同軟件所用的第三方軟件包有所差異,在集成或部署時經(jīng)常遇到版本沖突、接口不兼容等問題。通過對所有產(chǎn)品庫依賴關(guān)系進(jìn)行梳理,基于軟件包管理工具建立統(tǒng)一的庫管理模式,可形成一套根據(jù)構(gòu)建環(huán)境分類的內(nèi)部發(fā)布平臺(軟件源)。開發(fā)人員只需要在原有構(gòu)建工具的基礎(chǔ)上進(jìn)行封裝,簡單編寫配置文件,明確構(gòu)建步驟和依賴關(guān)系,即可從內(nèi)部發(fā)布平臺(軟件源)自動解析獲取依賴,完成編譯和軟件打包等操作,具體產(chǎn)品構(gòu)建工作流程見圖2。

    對于組件依賴來說,當(dāng)某個組件被修改時,僅獨(dú)立編譯該組件,在集成時會影響相關(guān)組件的使用。針對這一問題,基于持續(xù)集成系統(tǒng)配置聯(lián)動構(gòu)建機(jī)制,即建立任務(wù)之間的前后順序管理,當(dāng)前一組件構(gòu)建成功即可自動觸發(fā)下一組件構(gòu)建,通過集成測試后,再將該應(yīng)用程序依賴的框架或庫整理打包并發(fā)布。

    統(tǒng)一的依賴庫管理模式與聯(lián)動構(gòu)建機(jī)制相結(jié)合,一方面可提供統(tǒng)一的第三方庫管理機(jī)制,有效管理庫版本,實(shí)現(xiàn)第三方庫依賴關(guān)系的自動解析;另一方面可有效管理組件之間的依賴關(guān)系和持續(xù)集成與測試組件之間的接口,避免組件版本不兼容引入的問題。

    2.2 持續(xù)集成方案設(shè)計

    按照第2.1節(jié)中的流程設(shè)計思路,基于持續(xù)集成服務(wù)器與版本控制系統(tǒng)之間的觸發(fā)機(jī)制,當(dāng)系統(tǒng)檢測到代碼更新時,持續(xù)集成服務(wù)器選擇指定的從節(jié)點(diǎn)作為構(gòu)建環(huán)境,在從節(jié)點(diǎn)上執(zhí)行持續(xù)集成配置腳本。配置腳本調(diào)用代碼檢測與軟件構(gòu)建相關(guān)的工具,實(shí)現(xiàn)環(huán)境清理、代碼靜態(tài)審查、軟件編譯、自動化測試、代碼覆蓋率檢測和軟件發(fā)布等操作。腳本執(zhí)行完成后,將構(gòu)建結(jié)果輸出到指定目錄,供持續(xù)集成服務(wù)器讀取和分析。持續(xù)集成服務(wù)器通過配置插件、讀取構(gòu)建和測試日志,將結(jié)果可視化輸出到web端界面。整個過程的實(shí)現(xiàn)主要依賴于配置腳本,通過修改配置腳本可以實(shí)現(xiàn)自定義流程裁剪和定制。持續(xù)集成平臺設(shè)計方案見圖3。

    2.3 持續(xù)集成和測試方案的實(shí)施

    選用Jenkins作為基礎(chǔ)持續(xù)集成服務(wù)器。與其他持續(xù)集成工具相比,Jenkins主要有2個優(yōu)點(diǎn):一是易于安裝配置,提供直觀靈活的web用戶界面,便于配置管理;二是具有強(qiáng)大的插件機(jī)制,可以顯示測試結(jié)果和構(gòu)建日志等反饋信息。[11-12]版本控制工具使用Subversion,用于存儲、追蹤目錄和文件的修改

    歷史。軟件包管理工具使用Conda,用于管理軟件依賴關(guān)系,可有效處理軟件產(chǎn)品之間的沖突。自動化測試工具使用自主研發(fā)的AutoBenchTest(簡寫為ABTest),適用于數(shù)值模擬軟件測試算例的串行和并行執(zhí)行,能夠自動生成測試報告和結(jié)果統(tǒng)計報表。

    基于以上設(shè)計方案和支撐工具,該平臺具體實(shí)現(xiàn)過程如下。

    2.3.1 基于Docker容器技術(shù)配置構(gòu)建環(huán)境

    采用Docker容器技術(shù)為持續(xù)集成服務(wù)器提供構(gòu)建環(huán)境。在Docker中構(gòu)建容器時,通過編寫Dockerfile腳本實(shí)現(xiàn)容器的快速生成。該Dockerfile包含創(chuàng)建鏡像所需要的全部指令,實(shí)現(xiàn)對網(wǎng)絡(luò)、訪問端口、編譯器、構(gòu)建環(huán)境、版本控制服務(wù)和其他依賴軟件的安裝配置?;谠揇ockerfile文件,僅執(zhí)行docker build命令即可一鍵式創(chuàng)建鏡像,同時自底向上打包軟件及其構(gòu)建環(huán)境。[13]這種方式能夠減少鏡像和容器的創(chuàng)建過程,簡化部署、方便系統(tǒng)升級。

    容器搭建完成后,持續(xù)集成服務(wù)器可以通過任務(wù)配置的方式選取相應(yīng)的Docker容器作為構(gòu)建環(huán)境執(zhí)行軟件編譯與測試。[14]當(dāng)任務(wù)執(zhí)行完成后,持續(xù)集成服務(wù)器生成容器并保存至Docker鏡像倉庫,便于后期環(huán)境恢復(fù)和錯誤定位?;贒ocker的環(huán)境配置方案見圖4。

    2.3.2 基于Conda工具實(shí)現(xiàn)自動化構(gòu)建

    Conda工具的實(shí)現(xiàn)機(jī)制主要包括遠(yuǎn)程服務(wù)器端和本地端2部分。對于遠(yuǎn)程服務(wù)器端來說,產(chǎn)品發(fā)布平臺主要用于統(tǒng)一管理所有軟件構(gòu)建所依賴的公共庫、第三方軟件和工具軟件等,以減少重復(fù)構(gòu)建的操作。對于本地端來說,面向數(shù)值模擬軟件的構(gòu)建和打包需求,可支撐軟件完成依賴解析和軟件編譯,最終生成二進(jìn)制安裝包。

    本地端的構(gòu)建自動化通過編寫Conda配置文件meta.yaml和build.sh腳本實(shí)現(xiàn)。build.sh是自動化編譯腳本,用于記錄軟件編譯步驟、需要設(shè)置的環(huán)境變量信息等內(nèi)容。該腳本是在程序原有的CMakelist/ Makefile上進(jìn)行一層封裝,不會對程序原有編譯方式造成影響。對用戶來說,該工具的使用和維護(hù)成本較小。meta.yaml提供指定遠(yuǎn)程源路徑、安裝包名稱、版本、源碼目錄、編譯/運(yùn)行時所依賴的軟件和版本等內(nèi)容。明確以上關(guān)鍵信息后,Conda工具通過讀取配置文件解析軟件依賴關(guān)系,從遠(yuǎn)程軟件源獲取安裝包并配置構(gòu)建環(huán)境,完成編譯并生成二進(jìn)制安裝包。

    2.3.3 編寫持續(xù)集成配置腳本

    持續(xù)集成配置腳本基于shell語言與Jenkins Pipeline語法編寫,主要包括版本檢出、代碼靜態(tài)檢查、軟件編譯、驗(yàn)收測試、覆蓋率檢測等5個部分。該腳本按照流程分階段組織,每個階段完成相應(yīng)的環(huán)境清理、工具調(diào)用、測試數(shù)據(jù)輸出、輸出數(shù)據(jù)處理和可視化等操作。

    此外,腳本盡可能地使用特定變量和相對目錄,規(guī)避不同軟件之間的個性化差異,從而形成持續(xù)集成配置腳本模板,可支持構(gòu)建任務(wù)的快速創(chuàng)建。

    2.3.4 基于Jenkins插件反饋構(gòu)建結(jié)果

    Jenkins提供豐富的二次開發(fā)接口和插件機(jī)制[15],能夠支持靜態(tài)審查、代碼量統(tǒng)計、自動化測試和測試覆蓋率結(jié)果可視化等操作,可直觀地向測試人員反饋評測結(jié)果。

    在插件管理界面安裝Cppcheck和Sloc插件,在配置界面填寫輸出文件目錄和文件格式等關(guān)鍵信息,讀取并分析XML形式的輸出文件,對結(jié)果進(jìn)行統(tǒng)計、分類并輸出詳細(xì)日志,完成靜態(tài)檢查和代碼量統(tǒng)計。以代碼靜態(tài)審查為例,其不僅能夠簡明扼要地反饋錯誤統(tǒng)計結(jié)果,而且能夠顯示錯誤詳細(xì)信息,包括靜態(tài)審查錯誤文件、行數(shù)、錯誤類型和日志等信息,便于研發(fā)人員及時解決程序中潛在的數(shù)組越界、內(nèi)存泄漏等問題。靜態(tài)審查錯誤日志實(shí)例見圖5。

    在軟件測試和覆蓋率統(tǒng)計方面,基于持續(xù)集成服務(wù)器提供的Publish Html插件,在配置界面明確測試報告生成目錄、網(wǎng)頁文件名稱和標(biāo)題等,Jenkins可將任務(wù)與工具生成的Html界面關(guān)聯(lián),并在任務(wù)主界面顯示測試算例執(zhí)行報表、測試覆蓋率檢測結(jié)果等。自動化測試報告實(shí)例見圖6。報告中明確給出測試環(huán)境信息、測試算例執(zhí)行狀態(tài)和統(tǒng)計信息,提供具體算例的執(zhí)行日志,便于定位錯誤。測試覆蓋率檢測報告實(shí)例見圖7。報告中不僅統(tǒng)計本次軟件測試中整體代碼行數(shù)與函數(shù)覆蓋率情況,而且能夠通過顏色明確標(biāo)識具體代碼行的執(zhí)行信息,便于研發(fā)人員進(jìn)一步完善測試算例。

    3 應(yīng)用效果

    該持續(xù)集成平臺用于支撐中物院高性能數(shù)值模擬軟件中心的產(chǎn)品化和應(yīng)用推廣工作。該平臺可實(shí)現(xiàn)產(chǎn)品構(gòu)建、測試和發(fā)布工作的自動化,已應(yīng)用于35款數(shù)值模擬軟件,完成2 100余例測試算例自動化測試,發(fā)布軟件產(chǎn)品3 000余次,產(chǎn)品交付周期相比之前縮短約75%,大幅提升產(chǎn)品構(gòu)建與交付效率。

    基于Dockerfile容器模板,該平臺可支持構(gòu)建環(huán)境的快速生成。目前,構(gòu)建環(huán)境覆蓋Centos、Redhat、Fedora和Suse等多種操作系統(tǒng)、編譯器和MPI版本,能夠滿足銀河、天河2號等典型高性能計算環(huán)境的產(chǎn)品部署需求。在產(chǎn)品發(fā)布后,用戶可一鍵式安裝部署,平臺自動解析軟件依賴和安裝與環(huán)境變量配置,降低軟件產(chǎn)品部署難度和使用成本。

    此外,針對軟件研發(fā)過程中的問題記錄和反饋需求,該平臺可實(shí)現(xiàn)構(gòu)建和測試日志全面輸出。對于單個軟件的構(gòu)建來說:一方面,該平臺能夠直觀地反饋階段執(zhí)行情況,記錄整個構(gòu)建任務(wù)中的操作步驟和報錯日志,并可視化輸出各個工具生成的數(shù)據(jù)文件;另一方面,該平臺能夠?qū)y試結(jié)果進(jìn)行統(tǒng)計分析,生成構(gòu)建過程趨勢圖(見圖8),有效監(jiān)控軟件開發(fā)過程數(shù)據(jù),促進(jìn)產(chǎn)品質(zhì)量持續(xù)提升。

    4 結(jié)束語

    基于Docker與Jenkins技術(shù)設(shè)計并實(shí)現(xiàn)面向數(shù)值模擬軟件的持續(xù)集成平臺。該平臺從數(shù)值模擬軟件面臨的實(shí)際應(yīng)用需求出發(fā),建立代碼靜態(tài)分析、依賴關(guān)系解析、軟件編譯、測試和部署等自動化工作流程,實(shí)現(xiàn)構(gòu)建環(huán)境的快速搭建和配置管理,詳細(xì)記錄軟件構(gòu)建日志和測試結(jié)果,便于研發(fā)團(tuán)隊及時發(fā)現(xiàn)軟件缺陷、快速分析定位問題。

    該平臺可大幅度縮短產(chǎn)品構(gòu)建、發(fā)布和交付周期,有效保障數(shù)值模擬軟件的產(chǎn)品化和推廣應(yīng)用。但是,該持續(xù)集成平臺未采用數(shù)據(jù)庫技術(shù)對測試數(shù)據(jù)統(tǒng)一管理。在下一步工作中,將深入開展測試數(shù)據(jù)管理和分析工作,記錄產(chǎn)品質(zhì)量變化趨勢,及時發(fā)現(xiàn)軟件中潛在的缺陷。

    參考文獻(xiàn):

    [1] 莫則堯, 裴文兵. 科學(xué)計算應(yīng)用程序探討[J]. 物理, 2009, 38(8): 552-558. DOI: 10.3321/j.issn:0379-4148.2009.08.004.

    [2] 田鴻運(yùn), 劉青凱, 成杰, 等. 一種面向高性能數(shù)值模擬軟件的自動化測試平臺[J]. 計算機(jī)工程與科學(xué), 2017, 39(11): 1980-1985. DOI: 10.3969/j.issn.1007-130X.2017.11.002.

    [3] 蔣祥剛. Make與Makefile初探[J]. 中文信息, 2002(8): 62-65.

    [4] HOFFMAN B, COLE D, VINES J. Software process for rapid development of HPC software using CMake[C]// Proceedings of 2009 DoD High Performance Computing Modernization Program Users Group Conference. San Diego: IEEE Press, 2009: 11873937. DOI: 10.1109/HPCMP-UGC.2009.62.

    [5] KAWALEROWICZ M, BERNTSON C. Continuous integration in .Net[M]. New York: Manning, 2011.

    [6] HATCHER E, LOUGHRAN S. 使用Ant進(jìn)行Java開發(fā)[M]. 北京: 電子工業(yè)出版社, 2005.

    [7] 董曉光, 喻濤. 使用Maven構(gòu)建Java項目[J]. 電子技術(shù)與軟件工程, 2014(10): 105.

    [8] BERGLUND T, MCCULLOUGH M. Building and testing with Gradle[M]. Boston: O′Reilly Media, 2011.

    [9] 陳能技, 付勇, 等. 大規(guī)模組織DevOps實(shí)踐[M]. 北京: 電子工業(yè)出版社, 2018.

    [10] 成奮華, 金敏. 基于敏捷過程的IT項目范圍管理的研究與應(yīng)用[J]. 計算機(jī)技術(shù)與發(fā)展, 2010, 20(10): 232-236. DOI: 10.3969/j.issn.1673-629X.2010.10.056.

    [11] HUMBLE J, FARLEY D. Continuous delivery: Reliable software releases through build, test, and deployment automation[M]. Alaska: Addison-Wesley Professional, 2010.

    [12] DUVALL P M, MATYAS S, Glover A. 持續(xù)集成軟件質(zhì)量改進(jìn)和風(fēng)險降低之道[M]. 北京: 電子工業(yè)出版社, 2012.

    [13] MERKEL D. Docker: Lightweight Linux containers for consistent development and deployment[J]. Linux Journal, 2014, 2014(239): 2.

    [14] 張兆晨, 羅鐵堅. CCI: 一種基于容器化的持續(xù)集成系統(tǒng)[J]. 中國科學(xué)院大學(xué)學(xué)報, 2018, 35(4): 569-575. DOI: 10.7523/j.issn.2095-6134.2018.04.021.

    [15] 劉巧玲, 范冰冰, 黃興平. 基于Hudson的持續(xù)集成研究和應(yīng)用[J]. 計算機(jī)系統(tǒng)應(yīng)用, 2010, 19(12): 151-154.

    (編輯 武曉英)

    猜你喜歡
    軟件測試
    軟件測試方向人才培養(yǎng)“1+X”融合研究
    基于OBE的軟件測試課程教學(xué)改革探索
    航天軟件測試模型構(gòu)建與應(yīng)用
    軟件(2020年3期)2020-04-20 01:45:34
    基于MBD模型自動生成測試用例的軟件測試方法
    計算機(jī)軟件測試方法的研究
    電子測試(2018年14期)2018-09-26 06:05:06
    EXCEL和VBA實(shí)現(xiàn)軟件測試記錄管理
    電子制作(2018年16期)2018-09-26 03:27:18
    關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
    電子測試(2017年15期)2017-12-18 07:19:20
    一種航空機(jī)載軟件測試項目的進(jìn)度改進(jìn)模型
    電子測試(2017年12期)2017-12-18 06:36:14
    軍用軟件測試文檔生成設(shè)計與實(shí)現(xiàn)
    電子測試(2017年12期)2017-12-18 06:35:35
    軟件測試工程化模型及應(yīng)用研究
    18禁在线无遮挡免费观看视频| 亚洲人成网站在线观看播放| 日本-黄色视频高清免费观看| 成人毛片60女人毛片免费| 久久99精品国语久久久| 日本午夜av视频| 色吧在线观看| 综合色av麻豆| 在线免费十八禁| 久久久久久久国产电影| 最近最新中文字幕大全电影3| 熟妇人妻不卡中文字幕| 高清在线视频一区二区三区| 联通29元200g的流量卡| 国产又色又爽无遮挡免| 少妇熟女aⅴ在线视频| 肉色欧美久久久久久久蜜桃 | 日本熟妇午夜| 精品少妇黑人巨大在线播放| 高清视频免费观看一区二区 | 日本免费a在线| 天天躁日日操中文字幕| av女优亚洲男人天堂| 成年免费大片在线观看| 九九爱精品视频在线观看| 成人美女网站在线观看视频| 18+在线观看网站| 九草在线视频观看| 纵有疾风起免费观看全集完整版 | 一个人免费在线观看电影| 熟女人妻精品中文字幕| 国产久久久一区二区三区| 精品久久久久久久久久久久久| 久久久久久久国产电影| 久久精品国产亚洲av涩爱| 自拍偷自拍亚洲精品老妇| 久久久精品94久久精品| 99热这里只有是精品在线观看| 午夜免费男女啪啪视频观看| 亚洲欧美日韩无卡精品| 91精品伊人久久大香线蕉| 极品教师在线视频| 免费av不卡在线播放| 亚洲欧洲国产日韩| 男女视频在线观看网站免费| 亚洲美女搞黄在线观看| 亚洲av中文字字幕乱码综合| 秋霞伦理黄片| 免费av观看视频| 国产探花极品一区二区| eeuss影院久久| 一区二区三区四区激情视频| 亚洲av电影不卡..在线观看| 国产精品一区二区在线观看99 | 亚洲精品第二区| 少妇的逼水好多| 身体一侧抽搐| 日本猛色少妇xxxxx猛交久久| 国产老妇伦熟女老妇高清| 亚洲在线观看片| 免费观看av网站的网址| 五月伊人婷婷丁香| 亚洲自偷自拍三级| 日韩av免费高清视频| 亚洲av一区综合| 女人十人毛片免费观看3o分钟| 一个人观看的视频www高清免费观看| 好男人在线观看高清免费视频| 麻豆精品久久久久久蜜桃| 国产亚洲av片在线观看秒播厂 | 只有这里有精品99| 丰满人妻一区二区三区视频av| 听说在线观看完整版免费高清| 国产精品99久久久久久久久| 一个人看视频在线观看www免费| av天堂中文字幕网| 国产极品天堂在线| 99久久中文字幕三级久久日本| 精品一区在线观看国产| 亚洲精品久久午夜乱码| 春色校园在线视频观看| 国产一级毛片在线| 亚洲三级黄色毛片| 国产一区二区三区综合在线观看 | 欧美另类一区| 日日干狠狠操夜夜爽| 国产成人a∨麻豆精品| 久久人人爽人人片av| 免费黄频网站在线观看国产| 亚洲av中文字字幕乱码综合| 欧美日韩在线观看h| 观看美女的网站| 亚洲精品456在线播放app| 免费大片黄手机在线观看| 又大又黄又爽视频免费| 男人和女人高潮做爰伦理| 可以在线观看毛片的网站| 日韩av在线免费看完整版不卡| 国产精品日韩av在线免费观看| 国产中年淑女户外野战色| 国产成人精品一,二区| 国产毛片a区久久久久| 亚洲欧美精品自产自拍| 美女大奶头视频| 综合色av麻豆| 亚洲av免费高清在线观看| 伊人久久国产一区二区| 日韩一区二区视频免费看| 三级经典国产精品| 在线观看av片永久免费下载| 免费观看a级毛片全部| 丰满乱子伦码专区| 成人午夜高清在线视频| 亚洲av免费高清在线观看| 国产69精品久久久久777片| 观看免费一级毛片| 国产成人一区二区在线| 亚洲欧美精品自产自拍| 日韩伦理黄色片| 777米奇影视久久| 国产高清有码在线观看视频| 又黄又爽又刺激的免费视频.| 成年版毛片免费区| 街头女战士在线观看网站| 日韩制服骚丝袜av| 国产精品一及| 国产黄色小视频在线观看| 插阴视频在线观看视频| 三级国产精品片| 亚洲不卡免费看| 久久这里有精品视频免费| 精品酒店卫生间| 男女啪啪激烈高潮av片| 男女下面进入的视频免费午夜| 丰满乱子伦码专区| 亚洲av在线观看美女高潮| 免费观看av网站的网址| 综合色丁香网| 亚洲图色成人| 永久免费av网站大全| 亚洲av电影在线观看一区二区三区 | 少妇的逼好多水| 麻豆精品久久久久久蜜桃| 欧美激情久久久久久爽电影| 国产成人福利小说| 又爽又黄无遮挡网站| 成人亚洲精品一区在线观看 | 可以在线观看毛片的网站| 2021天堂中文幕一二区在线观| 国精品久久久久久国模美| 免费黄频网站在线观看国产| 99视频精品全部免费 在线| av国产免费在线观看| 床上黄色一级片| 性插视频无遮挡在线免费观看| 狂野欧美白嫩少妇大欣赏| 精品人妻一区二区三区麻豆| 久久久久久久久久成人| 午夜日本视频在线| 免费av毛片视频| 国产黄色小视频在线观看| 亚洲成人一二三区av| 麻豆成人av视频| 国产精品综合久久久久久久免费| 亚洲欧洲国产日韩| 偷拍熟女少妇极品色| 建设人人有责人人尽责人人享有的 | 三级经典国产精品| 看非洲黑人一级黄片| 精品久久久久久久末码| 色5月婷婷丁香| 久久精品夜夜夜夜夜久久蜜豆| 禁无遮挡网站| 亚洲在久久综合| 亚洲综合色惰| 亚洲精品456在线播放app| 在线a可以看的网站| 国产黄a三级三级三级人| 少妇熟女欧美另类| 国产老妇女一区| 97在线视频观看| 亚洲国产成人一精品久久久| 两个人的视频大全免费| 色播亚洲综合网| 中文字幕久久专区| 亚洲av成人精品一二三区| 国产精品嫩草影院av在线观看| 日日摸夜夜添夜夜添av毛片| 国产亚洲91精品色在线| 亚洲av电影不卡..在线观看| 人妻夜夜爽99麻豆av| 日本av手机在线免费观看| 久久草成人影院| 直男gayav资源| 精品人妻偷拍中文字幕| 国语对白做爰xxxⅹ性视频网站| 看黄色毛片网站| 久久这里只有精品中国| 久久久久性生活片| 亚洲av日韩在线播放| 视频中文字幕在线观看| a级一级毛片免费在线观看| 婷婷色综合大香蕉| 午夜激情欧美在线| h日本视频在线播放| 久久精品综合一区二区三区| 伊人久久国产一区二区| 97人妻精品一区二区三区麻豆| 男插女下体视频免费在线播放| 久久亚洲国产成人精品v| 免费av毛片视频| 国产中年淑女户外野战色| 三级男女做爰猛烈吃奶摸视频| xxx大片免费视频| 亚洲成人久久爱视频| 少妇的逼水好多| 午夜福利高清视频| 国产国拍精品亚洲av在线观看| 99久国产av精品国产电影| 日韩视频在线欧美| 午夜福利在线观看免费完整高清在| 男女下面进入的视频免费午夜| 最近中文字幕高清免费大全6| 国产麻豆成人av免费视频| 国产一区二区三区综合在线观看 | 男人舔女人下体高潮全视频| 国产亚洲一区二区精品| 国产永久视频网站| 免费观看的影片在线观看| 人妻一区二区av| 亚洲精品色激情综合| 又爽又黄无遮挡网站| 一个人看的www免费观看视频| 久久精品久久久久久噜噜老黄| 欧美一区二区亚洲| 亚洲精品成人av观看孕妇| 日韩欧美一区视频在线观看 | 日韩欧美精品v在线| 亚洲高清免费不卡视频| 国产探花极品一区二区| 国产视频首页在线观看| 青春草视频在线免费观看| 久久精品国产自在天天线| 久久久久精品性色| 成人亚洲精品一区在线观看 | 国产精品无大码| 婷婷色综合www| 麻豆成人av视频| 国产国拍精品亚洲av在线观看| 亚洲久久久久久中文字幕| 91午夜精品亚洲一区二区三区| 搡老乐熟女国产| 精品人妻熟女av久视频| 国产激情偷乱视频一区二区| 国产高潮美女av| 亚洲熟妇中文字幕五十中出| 精品人妻一区二区三区麻豆| 看非洲黑人一级黄片| 在线免费观看不下载黄p国产| 99久久九九国产精品国产免费| 国产亚洲最大av| 午夜久久久久精精品| 国产精品福利在线免费观看| 99热6这里只有精品| 亚洲第一区二区三区不卡| 免费大片18禁| 蜜桃亚洲精品一区二区三区| 亚洲,欧美,日韩| 男女下面进入的视频免费午夜| 国产综合精华液| 成人二区视频| 免费无遮挡裸体视频| 亚洲av免费在线观看| 好男人在线观看高清免费视频| 精品久久久久久久人妻蜜臀av| 亚洲精品久久久久久婷婷小说| 国产精品三级大全| 一二三四中文在线观看免费高清| 中文在线观看免费www的网站| 成人亚洲精品一区在线观看 | 亚洲国产高清在线一区二区三| 一二三四中文在线观看免费高清| 久久鲁丝午夜福利片| 日韩强制内射视频| 国产午夜精品一二区理论片| www.色视频.com| 极品教师在线视频| 亚洲成人中文字幕在线播放| 免费看日本二区| 亚洲精品乱码久久久久久按摩| 亚洲四区av| h日本视频在线播放| 国产黄色小视频在线观看| 少妇的逼水好多| 亚洲国产欧美在线一区| 伊人久久国产一区二区| 精品久久久久久电影网| 亚洲久久久久久中文字幕| 国产午夜精品久久久久久一区二区三区| 亚洲欧美中文字幕日韩二区| 午夜福利网站1000一区二区三区| 老司机影院成人| 美女脱内裤让男人舔精品视频| 69av精品久久久久久| 人人妻人人看人人澡| 国产亚洲91精品色在线| 久久精品国产亚洲av天美| 成人毛片60女人毛片免费| 久久综合国产亚洲精品| 女人被狂操c到高潮| 久久久久久久久久人人人人人人| 欧美精品国产亚洲| 韩国av在线不卡| 看免费成人av毛片| 七月丁香在线播放| 97精品久久久久久久久久精品| 伊人久久精品亚洲午夜| 七月丁香在线播放| 麻豆精品久久久久久蜜桃| 国产成人精品福利久久| xxx大片免费视频| 免费看av在线观看网站| 国产黄片美女视频| 国产 亚洲一区二区三区 | 国产午夜精品一二区理论片| 91av网一区二区| 插阴视频在线观看视频| 欧美变态另类bdsm刘玥| 国产一区二区在线观看日韩| 九九久久精品国产亚洲av麻豆| 晚上一个人看的免费电影| 91aial.com中文字幕在线观看| 最近的中文字幕免费完整| 身体一侧抽搐| 成人性生交大片免费视频hd| 精品人妻偷拍中文字幕| 99热6这里只有精品| 精品人妻偷拍中文字幕| 国产精品一区www在线观看| 成年版毛片免费区| 国产精品三级大全| 中文字幕亚洲精品专区| 夫妻性生交免费视频一级片| 夫妻午夜视频| 女的被弄到高潮叫床怎么办| 国产高清不卡午夜福利| 床上黄色一级片| 久久久久久久国产电影| 中文天堂在线官网| 亚洲精品久久午夜乱码| 精品久久久噜噜| 男女下面进入的视频免费午夜| 日韩一区二区三区影片| 2021天堂中文幕一二区在线观| 国产视频内射| 久久99蜜桃精品久久| 成年免费大片在线观看| av免费观看日本| 久热久热在线精品观看| 日韩不卡一区二区三区视频在线| 国产91av在线免费观看| 亚洲综合色惰| 免费少妇av软件| av又黄又爽大尺度在线免费看| 日本一本二区三区精品| 亚洲内射少妇av| 国产欧美日韩精品一区二区| or卡值多少钱| 亚洲在久久综合| 亚洲精品久久午夜乱码| 三级经典国产精品| 久久久久九九精品影院| 麻豆久久精品国产亚洲av| 国产淫片久久久久久久久| 国产高潮美女av| 成人av在线播放网站| 一区二区三区高清视频在线| 午夜激情福利司机影院| 日韩欧美精品v在线| 嘟嘟电影网在线观看| 亚洲精品成人久久久久久| 亚洲精品456在线播放app| 亚洲精品成人久久久久久| 午夜福利成人在线免费观看| 热99在线观看视频| 亚洲天堂国产精品一区在线| 国产成年人精品一区二区| 中文字幕久久专区| av一本久久久久| 久久亚洲国产成人精品v| 青青草视频在线视频观看| 一个人看视频在线观看www免费| 69人妻影院| 伦理电影大哥的女人| 毛片一级片免费看久久久久| 熟女电影av网| 久久97久久精品| 免费av观看视频| 国内揄拍国产精品人妻在线| 久久精品国产亚洲网站| 高清午夜精品一区二区三区| 一级二级三级毛片免费看| 亚洲国产精品国产精品| 精品人妻偷拍中文字幕| videossex国产| 99re6热这里在线精品视频| 日韩av免费高清视频| 直男gayav资源| 黄片无遮挡物在线观看| 18禁动态无遮挡网站| 精品国产三级普通话版| 十八禁国产超污无遮挡网站| 久久精品综合一区二区三区| 99re6热这里在线精品视频| 两个人视频免费观看高清| 看十八女毛片水多多多| 亚洲综合精品二区| av网站免费在线观看视频 | 白带黄色成豆腐渣| 日本一二三区视频观看| 日韩一本色道免费dvd| 久久人人爽人人片av| 亚洲欧美日韩无卡精品| 别揉我奶头 嗯啊视频| 日韩大片免费观看网站| 久久这里有精品视频免费| 我要看日韩黄色一级片| 国产毛片a区久久久久| 亚洲国产最新在线播放| 永久免费av网站大全| 99热6这里只有精品| 欧美日韩在线观看h| 亚洲久久久久久中文字幕| 最近最新中文字幕免费大全7| 黄色欧美视频在线观看| 国产视频首页在线观看| 免费大片黄手机在线观看| 欧美成人一区二区免费高清观看| 国产成人精品久久久久久| 亚洲人与动物交配视频| 亚洲成人中文字幕在线播放| 国产大屁股一区二区在线视频| 国产国拍精品亚洲av在线观看| 亚洲丝袜综合中文字幕| 亚洲18禁久久av| 乱码一卡2卡4卡精品| 精品久久久久久久久亚洲| 非洲黑人性xxxx精品又粗又长| 免费观看av网站的网址| 日本爱情动作片www.在线观看| a级一级毛片免费在线观看| 丰满人妻一区二区三区视频av| 99视频精品全部免费 在线| 插阴视频在线观看视频| 中文字幕av成人在线电影| 色视频www国产| 日韩伦理黄色片| av在线老鸭窝| 嫩草影院精品99| 国产精品一区二区三区四区免费观看| 亚洲综合精品二区| 午夜日本视频在线| 熟妇人妻不卡中文字幕| 久久人人爽人人爽人人片va| 国产伦在线观看视频一区| 色播亚洲综合网| 国产午夜福利久久久久久| 亚洲人与动物交配视频| 看非洲黑人一级黄片| 丝袜喷水一区| 国产亚洲最大av| 黄色配什么色好看| 免费观看的影片在线观看| 亚洲精品亚洲一区二区| 如何舔出高潮| 五月玫瑰六月丁香| 国产伦一二天堂av在线观看| 精品久久久精品久久久| 亚洲精品日韩在线中文字幕| 蜜桃久久精品国产亚洲av| 亚洲18禁久久av| 国产伦理片在线播放av一区| 国产综合精华液| 特级一级黄色大片| 舔av片在线| 欧美高清成人免费视频www| 色综合站精品国产| 美女被艹到高潮喷水动态| 久久人人爽人人爽人人片va| 国产一区有黄有色的免费视频 | 亚洲四区av| 国产一级毛片七仙女欲春2| 99久久精品国产国产毛片| 全区人妻精品视频| 国产免费视频播放在线视频 | 男女国产视频网站| 国产欧美日韩精品一区二区| 麻豆国产97在线/欧美| 欧美97在线视频| 亚洲熟妇中文字幕五十中出| 成年女人在线观看亚洲视频 | 青春草国产在线视频| 婷婷六月久久综合丁香| a级一级毛片免费在线观看| 久久97久久精品| 国产免费福利视频在线观看| 又爽又黄无遮挡网站| 日韩大片免费观看网站| 91狼人影院| 插阴视频在线观看视频| 少妇人妻精品综合一区二区| av国产免费在线观看| 国产成人精品一,二区| 国产精品女同一区二区软件| 你懂的网址亚洲精品在线观看| 久99久视频精品免费| 3wmmmm亚洲av在线观看| 成人综合一区亚洲| 国产黄片视频在线免费观看| 免费观看在线日韩| 建设人人有责人人尽责人人享有的 | 亚洲久久久久久中文字幕| 亚洲av成人av| 少妇熟女aⅴ在线视频| 久久久色成人| 美女主播在线视频| 在线观看人妻少妇| 亚洲av成人av| 日韩电影二区| 激情五月婷婷亚洲| 搞女人的毛片| 91精品伊人久久大香线蕉| 三级男女做爰猛烈吃奶摸视频| 亚洲精品自拍成人| 成人性生交大片免费视频hd| 亚洲精品乱码久久久久久按摩| 三级毛片av免费| 男人舔奶头视频| 久久精品夜色国产| 久久99蜜桃精品久久| 欧美高清性xxxxhd video| 免费av毛片视频| 亚洲在线观看片| 久久久久久久午夜电影| 亚洲无线观看免费| 日本av手机在线免费观看| 人妻制服诱惑在线中文字幕| 国产成人a∨麻豆精品| www.av在线官网国产| 久久韩国三级中文字幕| 国产探花极品一区二区| 男女视频在线观看网站免费| 成年女人看的毛片在线观看| 国产人妻一区二区三区在| 男人舔奶头视频| 干丝袜人妻中文字幕| 日韩伦理黄色片| 国产在线一区二区三区精| 免费av毛片视频| 亚洲在线自拍视频| 夫妻午夜视频| 中国美白少妇内射xxxbb| 校园人妻丝袜中文字幕| 少妇高潮的动态图| 一个人观看的视频www高清免费观看| 亚洲av二区三区四区| 亚洲综合精品二区| 永久免费av网站大全| 超碰97精品在线观看| 91av网一区二区| 乱码一卡2卡4卡精品| 成人特级av手机在线观看| 内射极品少妇av片p| 丰满少妇做爰视频| 国产高潮美女av| 麻豆av噜噜一区二区三区| 少妇丰满av| 国产一区有黄有色的免费视频 | 青春草亚洲视频在线观看| 人人妻人人看人人澡| 偷拍熟女少妇极品色| 一个人看视频在线观看www免费| 日本爱情动作片www.在线观看| 少妇高潮的动态图| 高清视频免费观看一区二区 | 欧美潮喷喷水| 成人漫画全彩无遮挡| 国内精品一区二区在线观看| 国产在视频线精品| 久久热精品热| 干丝袜人妻中文字幕| www.色视频.com| 国产淫语在线视频| 欧美性感艳星| 国产黄片美女视频| 国产亚洲av嫩草精品影院| 中文天堂在线官网| 啦啦啦啦在线视频资源| 日韩不卡一区二区三区视频在线| 国产成人a区在线观看| 狂野欧美激情性xxxx在线观看| 特级一级黄色大片| av国产久精品久网站免费入址| 亚洲av日韩在线播放| 色视频www国产| 亚洲国产精品专区欧美| 久久这里有精品视频免费| 校园人妻丝袜中文字幕| 免费观看在线日韩| 熟妇人妻不卡中文字幕| 偷拍熟女少妇极品色| 国产爱豆传媒在线观看| 最近最新中文字幕大全电影3| 日日摸夜夜添夜夜爱| 2021天堂中文幕一二区在线观|