亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種進(jìn)程間通信的自動化測試技術(shù)的實現(xiàn)與應(yīng)用

        2019-02-02 03:58:00徐鶯江紅辜彬陳顏
        關(guān)鍵詞:自動化測試

        徐鶯 江紅 辜彬 陳顏

        摘要:隨著應(yīng)用系統(tǒng)及軟件技術(shù)的發(fā)展, 手工測試已不能滿足軟件測試的要求, 軟件測試自動化越來越成為一種發(fā)展趨勢。在自動化測試平臺的構(gòu)建過程中,圍繞功能自動化核心問題的解決,提出了基于進(jìn)程間通信技術(shù)實現(xiàn)自動化測試的思路,采用python語言開發(fā)相關(guān)工具,并經(jīng)過測試實踐,驗證了工具良好的應(yīng)用價值,為功能自動化測試的實現(xiàn)提供了重要的思路和實踐參考。

        關(guān)鍵詞:進(jìn)程間通信;接口測試;自動化測試

        中圖分類號:TP311.53 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2019)11-0012-04

        0 引言

        隨著應(yīng)用系統(tǒng)與軟件技術(shù)的飛速發(fā)展,軟件及系統(tǒng)的產(chǎn)品化測試越來越成為,科研設(shè)計、產(chǎn)品化能力的重要方面;持續(xù)提高軟件產(chǎn)品的質(zhì)量,開發(fā)的效率,提高測試的效率和精準(zhǔn)度的需求日益迫切。

        傳統(tǒng)手工測試,在測試需求分析、用例設(shè)計的基礎(chǔ)上,依賴人工執(zhí)行過程,無法完全解決測試過程重入的問題;同時軟件產(chǎn)品開發(fā)需解決研發(fā)迭代過程與發(fā)布周期的矛盾,通過引入自動化測試縮短測試周期,提高測試精準(zhǔn)度,達(dá)到快速迭代開發(fā),滿足發(fā)布周期的需求[1]。

        軟件測試自動化越來越成為軟件的發(fā)展趨勢。在軟件系統(tǒng)產(chǎn)品的自動化測試平臺構(gòu)建的過程中,圍繞解決功能自動化測試,提出一種基于進(jìn)程通信接口進(jìn)行功能自動化測試的方法,開發(fā)了相應(yīng)的測試工具,并引入實踐應(yīng)用。

        1 自動化測試需求

        1.1 功能自動化測試研究情況

        自動化測試的本質(zhì)是按照測試設(shè)計的輸入構(gòu)建測試條件、注入被測對象,并獲取輸出進(jìn)行對比的過程,采用程序的方式實現(xiàn)用例過程的自動驅(qū)動與執(zhí)行,減少手工測試的主觀影響,同時解決測試過程重復(fù)執(zhí)行的高效率實現(xiàn)。

        建立自動化測試平臺,一般涉及持續(xù)集成平臺的建立、用例驅(qū)動的實現(xiàn)、功能/性能自動化實現(xiàn),測試工具集成與驅(qū)動等問題。

        相關(guān)問題的研究發(fā)展非常迅猛,而其中,功能自動化實現(xiàn)是核心問題之一。功能自動化的研究更多著力于界面元素多變問題的解決。當(dāng)前的研究方法包括如下幾種:

        (1)通過測試工具實現(xiàn)基于界面的錄制與回放:典型方法是錄制第一次執(zhí)行測試用例時的鼠標(biāo)和鍵盤操作,需要執(zhí)行時回放。測試工具主要功能是,記錄和回放。(2)基于數(shù)據(jù)驅(qū)動實現(xiàn)測試過程的重入:將測試用到的輸入和輸出值存儲于數(shù)據(jù)文件中,測試執(zhí)行時讀取并載入,不同測試用例對應(yīng)各自的數(shù)據(jù)文件及控制信息。(3)關(guān)鍵字驅(qū)動:通過將測試用例抽象為對象、控制、數(shù)據(jù),通過封裝關(guān)鍵字(特定的測試功能腳本),實現(xiàn)界面控件與測試內(nèi)部對象名的分離,使測試腳本、測試數(shù)據(jù)、測試用例的更新和維護更加容易實施。

        目前關(guān)鍵字驅(qū)動,越來越成為功能自動化測試的主流技術(shù),通過對應(yīng)相關(guān)產(chǎn)品系統(tǒng)的業(yè)務(wù)特征,開發(fā)基于業(yè)務(wù)流程的關(guān)鍵字集,實現(xiàn)腳本與用例分離,已經(jīng)能比較好的解決界面元素變化以及后續(xù)開發(fā)維護,擴展的問題。

        在此基礎(chǔ)上,進(jìn)一步提高功能測試深度與效果是功能成為功能自動化測試的重要方面。

        1.2 功能自動化測試構(gòu)建思路

        考察一般的軟件產(chǎn)品的模型架構(gòu)如圖1,可以將軟件功能分為界面層、功能層、數(shù)據(jù)層。傳統(tǒng)的軟件功能測試,通常在最上層構(gòu)建相關(guān)的數(shù)據(jù)及操作,通過Web界面、本地命令行等形式進(jìn)行輸入,驅(qū)動覆蓋相關(guān)的軟件邏輯分支[2]。由于接口、分支的耦合性、關(guān)聯(lián)性,通過界面能夠構(gòu)造的輸入是一種受限輸入,無法覆蓋實現(xiàn)中的所有分支,被測對象分支覆蓋不完整,在某些極端、特殊條件下,遺留缺陷,對產(chǎn)品質(zhì)量形成隱患。

        基于這種情況,我們提出將界面層剝離,將功能層模塊的邏輯分支作為測試對象,通過在功能層,直接構(gòu)造測試輸入,覆蓋相關(guān)分支的方法來進(jìn)行深入的功能測試。

        采用本地進(jìn)程間通信接口來進(jìn)行測試驅(qū)動,包括socket、進(jìn)程間管道、FIFO等接口,設(shè)計開發(fā)相關(guān)測試工具,將所有后臺的功能邏輯過程,抽象、統(tǒng)一為一種本地協(xié)議的方式進(jìn)行測試的思路,如圖2所示。

        進(jìn)程間通信功能自動化測試工具主要解決中如下問題:

        (1)通過將測試用例,抽象為本地協(xié)議的方式,解決界面元素多變的問題;(2)通過進(jìn)程間通信接口的方式,實現(xiàn)測試輸入構(gòu)造,提升測試覆蓋度及測試深度,覆蓋驅(qū)動被動對象更多的分支;(3)提供socket通信、管道、共享內(nèi)存等形式的進(jìn)程間通信接口,具有靈活、擴展性,適應(yīng)多種本地功能自動化測試。

        2 主要開發(fā)與設(shè)計技術(shù)

        2.1 Python與自動化

        Python是一種面向?qū)ο蟮哪_步語言,具有良好的開發(fā)、迭代的效率,通過內(nèi)嵌應(yīng)用層編程功能庫,支撐靈活的開發(fā)和三方擴展。python腳本可實現(xiàn)靈活的上層應(yīng)用程序通信,支持多種平臺和語言,包括c/c++、Java等。Python程序編譯器實現(xiàn),考慮了不同平臺的字節(jié)碼的適應(yīng),能夠方便的跨平臺使用,是當(dāng)前自動化測試中應(yīng)用最廣的語言之一。進(jìn)程間通信自動化測試工具采用跨平臺python語言作為開發(fā)語言進(jìn)行開發(fā),兼顧了工具應(yīng)用的適應(yīng)性,以及工具集成到自動化平臺的可實施性。

        2.2 用例驅(qū)動

        工具設(shè)計基于用例驅(qū)動的原理進(jìn)行。

        用例驅(qū)動設(shè)計原則包括2個方面:(1)測試人員根據(jù)用例模板進(jìn)行測試用例設(shè)計,獨立用例操作和用例數(shù)據(jù),由測試工具根據(jù)用例數(shù)據(jù)進(jìn)行接口識別,參數(shù)識別和封裝,測試人員不用關(guān)心測試腳本的調(diào)用和執(zhí)行;(2)工具接口除了實現(xiàn)自身功能之外,還可實現(xiàn)相關(guān)的典型業(yè)務(wù)測試,與其他接口存在上下文關(guān)系,可組合成各種業(yè)務(wù)測試的邏輯,實現(xiàn)較為復(fù)雜的功能測試過程。

        2.3 本地協(xié)議表示

        將本地測試調(diào)用的多種形式,抽象為本地協(xié)議表示,提供通用的協(xié)議模板定制,實現(xiàn)協(xié)議數(shù)據(jù)包生成,并以此為基礎(chǔ)實現(xiàn)工具的主要數(shù)據(jù)輸入、控制輸入,輸出對比功能。

        協(xié)議動態(tài)測試由通信雙方實體(一端用測試工具模擬測試端,一端作為被測端)和控制端構(gòu)成,測試控制端根據(jù)用例控制測試端與被測端實施動態(tài)測試業(yè)務(wù),并統(tǒng)計結(jié)果形成測試報告,模型見圖3。

        2.4 進(jìn)程間通信技術(shù)與測試接口

        操作系統(tǒng)的進(jìn)程間通信方式通常有7種:COM/DCOM、File Mapping文件映射方式、系統(tǒng)消息方式、Pipe管道方式、Mailslots郵件槽、RPC遠(yuǎn)程過程調(diào)用方式和Windows Sockets網(wǎng)絡(luò)套接字方式[3]。

        Pipe管道是一種以先進(jìn)先出的方式保存一定數(shù)量數(shù)據(jù)的特殊文件。Pipe通信是高層的、基于內(nèi)存的通信系統(tǒng);通信中,由系統(tǒng)提供再執(zhí)行寫操作和讀操作的進(jìn)程之間的同步。在默認(rèn)情況下,如果一個進(jìn)程試圖寫入一個已填滿的管道,系統(tǒng)會自動阻塞該進(jìn)程,直到管道能夠接收數(shù)據(jù);如果試圖讀一個空管道,進(jìn)程會阻塞,直到有可讀數(shù)據(jù)出現(xiàn)為止;如果一個進(jìn)程以讀方式打開一個管道,而沒有另外的進(jìn)程以寫方式打開該管道,則同樣會造成該進(jìn)程阻塞。

        網(wǎng)絡(luò)套接字是一種網(wǎng)絡(luò)通信、進(jìn)程間通信的端口抽象標(biāo)識,是通用操作系統(tǒng)中基本的通信實現(xiàn)技術(shù)。套接字的要素包括地址簇、套接字類型、協(xié)議,socket在應(yīng)用程序中串接,通過昂頂與網(wǎng)絡(luò)驅(qū)動建立關(guān)系,并基于接口,實現(xiàn)數(shù)據(jù)的方式。

        在功能測試中,進(jìn)程間通信,提供了一種有效的測試注入接口,實現(xiàn)測試驅(qū)動。從測試驅(qū)動的角度,socket套接字、共享內(nèi)存、是更加理想有效的驅(qū)動方式。在本文的xxx工具設(shè)計中,重點以socket套接字實現(xiàn)測試接口。后續(xù)進(jìn)一步擴展其他方式的測試驅(qū)動。

        2.5 實現(xiàn)與設(shè)計

        2.5.1 功能框架

        進(jìn)程間通訊接口測試需要適應(yīng)各類進(jìn)程通訊方式,如socket、共享內(nèi)存、管道、FIFO等,在通訊方式適應(yīng)上應(yīng)有足夠的可擴展性。進(jìn)程間接口交互多為產(chǎn)品實現(xiàn)需要而定義,接口相對簡單實用,在協(xié)議數(shù)據(jù)格式方面存在多樣性,如XML格式、二進(jìn)制、十六進(jìn)制、字符等數(shù)據(jù)類型,要求工具要能適應(yīng)不同數(shù)據(jù)類型,按協(xié)議數(shù)據(jù)要求收發(fā)和處理數(shù)據(jù)。工具功能框圖如圖4。

        2.5.2 典型流程實現(xiàn)

        主要流程實現(xiàn)實例:

        (1)讀取Excel中的用例,獲取報文模板,通信流程,報文內(nèi)容的邊界值定義以及驗收標(biāo)準(zhǔn)等相關(guān)信息;

        (2)讀取報文模板;

        head.xml

        body.xml

        (3)構(gòu)造報文并根據(jù)報文內(nèi)容邊界值進(jìn)行判斷,調(diào)用函數(shù)buildPacket進(jìn)行報文構(gòu)造,傳入bsid=769表明要修改的字段,構(gòu)造的報文如下:

        (4)發(fā)送報文;調(diào)用函數(shù)sendPacket進(jìn)行報文發(fā)送。

        (5)接收并處理報文;調(diào)用函數(shù)recvPacket進(jìn)行報文接收,然后調(diào)用函數(shù)writeRecv進(jìn)行接收報文處理。接收并被處理后的報文如下:

        (6)結(jié)果分析;調(diào)用函數(shù)verify進(jìn)行對接收報文的分析,傳入rst=0表示要檢查的字段,檢查結(jié)果顯示如下:

        (7)根據(jù)用例中的定義,如果有多個通信交互流程并且滿足繼續(xù)執(zhí)行的則繼續(xù)執(zhí)行;

        (8)完成整流流程,用例執(zhí)行完畢,回寫測試用例執(zhí)行結(jié)果;

        (9)日志記錄;

        整個測試過程的日志記錄如下:

        測試發(fā)送/接收的報文存儲如圖5。

        3 應(yīng)用效果

        將本工具應(yīng)用于xx管理系統(tǒng)本地管理模塊的功能測試過程,定制本地管理協(xié)議模板,設(shè)計測試用例進(jìn)行功能測試及穩(wěn)定性測試。基于本地管理協(xié)議接口設(shè)計用例,提高了用例分支覆蓋度,與手工測試階段相比,測試過程捕獲16項嚴(yán)重問題,3項致命缺陷。取得良好的測試效果。與手工測試執(zhí)行對比圖表如圖6、表1。

        4 結(jié)語

        本文分析當(dāng)前主流的自動化平臺構(gòu)建的思路和主要思路,研究了功能自動化測試方法,基于提升測試效率和深度,提出了一種基于進(jìn)程間通信技術(shù)實現(xiàn)功能自動化測試的方法,用python語言實現(xiàn)了進(jìn)程間通信自動化測試工具,該工具在實際項目中,進(jìn)行了應(yīng)用,在測試效率的提高和測試成本的降低方面,取得了良好的效果,是自動化平臺建設(shè),核心功能自動化測試解決方案的有益探索。

        參考文獻(xiàn)

        [1] 吳振宇,顧曉明,李翔.協(xié)議可擴展的軟件接口測試工具的研究與實現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2017(12):58-60.

        [2] 王軍,孟凡鵬.基于關(guān)鍵字驅(qū)動的自動化測試研究與實現(xiàn)[J].計算機工程與設(shè)計,2012(9):3653-3655.

        [3] 袁鴻,劉浩,廖文和.進(jìn)程間通信技術(shù)在系統(tǒng)集成中的應(yīng)用[J].重慶大學(xué)學(xué)報,2008(4):436-441.

        猜你喜歡
        自動化測試
        基于Java反射的APP自動化混合測試框架的研究與實現(xiàn)
        移動通信(2016年22期)2017-03-07 22:22:59
        Hadoop性能測試自動化研究
        數(shù)據(jù)驅(qū)動和關(guān)鍵字驅(qū)動的研究與應(yīng)用
        軟件(2016年4期)2017-01-20 09:56:35
        淺談空調(diào)控制器自動化測試
        東方教育(2016年7期)2017-01-17 21:28:10
        基于多總線結(jié)構(gòu)的電路板測試系統(tǒng)設(shè)計研究
        價值工程(2016年32期)2016-12-20 20:32:01
        航空航天與國防電子新形勢下自動化測試系統(tǒng)的應(yīng)用
        價值工程(2016年29期)2016-11-14 02:40:46
        基于CTI—TET和SeleniumWebdriver的Web應(yīng)用自動化測試框架的設(shè)計與實現(xiàn)
        軟件工程(2016年8期)2016-10-25 15:45:45
        自動化測試實現(xiàn)研究
        中國市場(2016年34期)2016-10-15 04:20:40
        天線伺服自動化測試系統(tǒng)的設(shè)計與應(yīng)用
        一種航空交換機中CAN總線的自動化測試方法
        亚洲人成人99网站| 亚洲国产精品综合久久网络| 欧美黑寡妇特a级做爰| 国产成a人亚洲精v品无码性色| 国产乱子伦精品免费女| 亚洲一区二区三区麻豆| 精品一区二区三区芒果| 首页 综合国产 亚洲 丝袜| 免费在线亚洲视频| 国产精品综合色区av| 一本久道竹内纱里奈中文字幕| 久久精品亚洲一区二区三区浴池| 97一区二区国产好的精华液 | 五级黄高潮片90分钟视频| 亚洲国产成人手机在线观看| 亚洲天堂av中文字幕| 天天躁夜夜躁狠狠躁婷婷| 国产熟人av一二三区| 亚洲 无码 制服 丝袜 自拍| 精品国产一区二区三区九一色| 国精产品一区一区二区三区mba| 三级在线看中文字幕完整版| 日本精品免费一区二区三区| 午夜一区二区三区福利视频| 成人免费a级毛片无码片2022| 亚洲视频一区| 国语精品视频在线观看不卡| 国产69精品麻豆久久| 亚洲精品www久久久久久| 国产精品成人va| 亚洲av乱码一区二区三区观影 | 国产自拍成人在线免费视频| 久久亚洲日韩精品一区二区三区| 人妻av一区二区三区精品| 亚洲国产av自拍精选| 亚洲av天堂在线视频| 久久男人av资源网站无码| 国产又爽又黄又不遮挡视频| 校园春色日韩高清一区二区| 无码人妻久久一区二区三区免费| 免费国产黄线在线播放|