999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種進程間通信的自動化測試技術的實現與應用

2019-02-02 03:58:00徐鶯江紅辜彬陳顏
數字技術與應用 2019年11期

徐鶯 江紅 辜彬 陳顏

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

關鍵詞:進程間通信;接口測試;自動化測試

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

0 引言

隨著應用系統與軟件技術的飛速發展,軟件及系統的產品化測試越來越成為,科研設計、產品化能力的重要方面;持續提高軟件產品的質量,開發的效率,提高測試的效率和精準度的需求日益迫切。

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

軟件測試自動化越來越成為軟件的發展趨勢。在軟件系統產品的自動化測試平臺構建的過程中,圍繞解決功能自動化測試,提出一種基于進程通信接口進行功能自動化測試的方法,開發了相應的測試工具,并引入實踐應用。

1 自動化測試需求

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

自動化測試的本質是按照測試設計的輸入構建測試條件、注入被測對象,并獲取輸出進行對比的過程,采用程序的方式實現用例過程的自動驅動與執行,減少手工測試的主觀影響,同時解決測試過程重復執行的高效率實現。

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

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

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

目前關鍵字驅動,越來越成為功能自動化測試的主流技術,通過對應相關產品系統的業務特征,開發基于業務流程的關鍵字集,實現腳本與用例分離,已經能比較好的解決界面元素變化以及后續開發維護,擴展的問題。

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

1.2 功能自動化測試構建思路

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

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

采用本地進程間通信接口來進行測試驅動,包括socket、進程間管道、FIFO等接口,設計開發相關測試工具,將所有后臺的功能邏輯過程,抽象、統一為一種本地協議的方式進行測試的思路,如圖2所示。

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

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

2 主要開發與設計技術

2.1 Python與自動化

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

2.2 用例驅動

工具設計基于用例驅動的原理進行。

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

2.3 本地協議表示

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

協議動態測試由通信雙方實體(一端用測試工具模擬測試端,一端作為被測端)和控制端構成,測試控制端根據用例控制測試端與被測端實施動態測試業務,并統計結果形成測試報告,模型見圖3。

2.4 進程間通信技術與測試接口

操作系統的進程間通信方式通常有7種:COM/DCOM、File Mapping文件映射方式、系統消息方式、Pipe管道方式、Mailslots郵件槽、RPC遠程過程調用方式和Windows Sockets網絡套接字方式[3]。

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

網絡套接字是一種網絡通信、進程間通信的端口抽象標識,是通用操作系統中基本的通信實現技術。套接字的要素包括地址簇、套接字類型、協議,socket在應用程序中串接,通過昂頂與網絡驅動建立關系,并基于接口,實現數據的方式。

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

2.5 實現與設計

2.5.1 功能框架

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

2.5.2 典型流程實現

主要流程實現實例:

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

(2)讀取報文模板;

head.xml

body.xml

(3)構造報文并根據報文內容邊界值進行判斷,調用函數buildPacket進行報文構造,傳入bsid=769表明要修改的字段,構造的報文如下:

(4)發送報文;調用函數sendPacket進行報文發送。

(5)接收并處理報文;調用函數recvPacket進行報文接收,然后調用函數writeRecv進行接收報文處理。接收并被處理后的報文如下:

(6)結果分析;調用函數verify進行對接收報文的分析,傳入rst=0表示要檢查的字段,檢查結果顯示如下:

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

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

(9)日志記錄;

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

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

3 應用效果

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

4 結語

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

參考文獻

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

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

[3] 袁鴻,劉浩,廖文和.進程間通信技術在系統集成中的應用[J].重慶大學學報,2008(4):436-441.

主站蜘蛛池模板: 日本精品视频| 久久青草精品一区二区三区| 亚洲人网站| 色欲不卡无码一区二区| 三级毛片在线播放| 国产在线观看人成激情视频| 狠狠久久综合伊人不卡| 日韩在线播放中文字幕| 女同久久精品国产99国| a毛片在线播放| 国产亚洲欧美在线中文bt天堂| 97色伦色在线综合视频| 极品国产在线| 一本久道久久综合多人| av在线5g无码天天| 国产成人区在线观看视频| 亚洲成a人片77777在线播放| 亚洲乱码视频| 国产精品污污在线观看网站| 亚洲天堂精品视频| 欧美亚洲一区二区三区导航| 狠狠干综合| 精品久久久久无码| 国产主播一区二区三区| 99精品免费在线| 亚洲一道AV无码午夜福利| yy6080理论大片一级久久| 鲁鲁鲁爽爽爽在线视频观看| 四虎精品黑人视频| 视频二区欧美| 国产91小视频在线观看| 亚洲a级在线观看| 成人日韩精品| 91网红精品在线观看| 欧美精品伊人久久| 久久综合色88| 日韩国产亚洲一区二区在线观看| 亚洲AⅤ无码国产精品| 日韩中文欧美| 中文字幕有乳无码| 婷婷色中文网| 国产午夜无码专区喷水| 一级片一区| 日韩东京热无码人妻| 国产福利一区在线| 波多野结衣视频网站| 国产欧美日韩综合一区在线播放| 亚洲欧美不卡| 亚洲精品无码在线播放网站| 亚洲天堂精品在线观看| 伊人色天堂| 人人看人人鲁狠狠高清| 九九久久99精品| 亚欧乱色视频网站大全| 丝袜久久剧情精品国产| 日韩福利视频导航| av无码久久精品| 特黄日韩免费一区二区三区| 永久免费AⅤ无码网站在线观看| 午夜欧美理论2019理论| 久久福利网| 香蕉伊思人视频| 亚洲精品第五页| 久久精品国产亚洲麻豆| 热久久国产| 网友自拍视频精品区| 日韩一级二级三级| 毛片基地视频| 99久久性生片| 色婷婷久久| 亚洲视频免费在线| 欧美日韩精品一区二区在线线| 国产十八禁在线观看免费| 成人福利在线观看| 国产亚洲精品91| 中文国产成人精品久久| 国产91视频观看| 99久久国产综合精品2023| 国产成人亚洲精品无码电影| 日本午夜在线视频| 日本一区二区三区精品国产| 久青草免费视频|