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

    人工智能技術(shù)在移動終端自動化測試中的應用

    2021-03-12 07:00:48劉維維
    軟件導刊 2021年2期
    關鍵詞:測試人員控件卷積

    劉維維

    (中興通訊股份有限公司終端事業(yè)部,上海 200120)

    0 引言

    計算機學科一個重要分支就是人工智能,人工智能技術(shù)是目前最熱門的科技話題之一,在很多方面都有相關應用,如人臉識別手機解鎖、語音文字相互轉(zhuǎn)換、智能家居、無人駕駛等等。

    在移動終端測試領域,傳統(tǒng)測試模式為手工測試,自動化測試是通過機器如機械手工具,提供大量的輸入和輸出數(shù)據(jù)訓練AI,最終由AI 根據(jù)特定需求自動生成測試用例并執(zhí)行測試,并對測試結(jié)果進行分析。自動化測試大大減少了人工測試工作量,大幅提高了工作效率。AI 訓練主要是界面自動化執(zhí)行與數(shù)據(jù)采集,關鍵是機器識別UI 的準確度與效率問題。結(jié)合人工智能的圖像識別與AI 訓練技術(shù)能更好地監(jiān)控與記錄測試過程中的數(shù)據(jù)、表格及圖像,快速分析手機中存在的性能問題及程序缺陷。因此,人工智能在自動化測試方面應用廣泛[1]。

    基于人工智能技術(shù)建立自動化測試模型,可使自動化測試更高效、識別更準確。

    1 移動自動化測試現(xiàn)狀

    移動自動化測試技術(shù)是產(chǎn)品研發(fā)過程中必不可少的環(huán)節(jié),隨著敏捷開發(fā)應用越來越廣,自動化測試技術(shù)在整個研發(fā)周期以及各個迭代過程中的比重也越來越大。

    移動終端測試類型包括軟件測試、硬件測試、結(jié)構(gòu)測試等,本文主要針對軟件測試。軟件系統(tǒng)測試又分為功能測試、穩(wěn)定性測試、兼容性測試、壓力測試、啟動時間測試、平滑性測試、跑分測試等。

    軟件系統(tǒng)測試一般是用戶對各種測試工具的操作過程,如功能測試是在操作系統(tǒng)界面首先檢查各類控件信息,然后通過系統(tǒng)間的交互查看控件狀態(tài)等;穩(wěn)定性測試,如monkey,則是測試用戶在各種場景點擊操作對系統(tǒng)的影響,如是否產(chǎn)生黑屏、閃退、無響應、耗電等結(jié)果;兼容性測試則是在系統(tǒng)安裝指定軟件后,通過點擊卸載界面進行特定的卸載操作;跑分測試則是安裝第三方軟件對移動終端進行測評,需要用戶安裝、啟動、抓取界面數(shù)據(jù)等。

    任何自動化測試實現(xiàn)原理均包括以下3 個過程:①用戶行為模擬的測試執(zhí)行過程;②測試異常指標抓取監(jiān)控過程;③移動終端界面結(jié)果數(shù)據(jù)收集過程。

    由于移動終端測試通常是大數(shù)據(jù)量的反復、長期測試,人工審查難免出現(xiàn)錯誤,自動化測試不斷面臨新的挑戰(zhàn),如自動化測試腳本維護時間過長、控件元素定位不準確、上手使用難度較大等等,同時面臨大量的數(shù)據(jù)處理與分析工作。有效解決這些問題,確保高質(zhì)量的最終產(chǎn)品是很多企業(yè)提高軟件質(zhì)量的主要工作[2-3]。

    2 Python 語言發(fā)展現(xiàn)狀

    隨著人工智能、大數(shù)據(jù)的快速發(fā)展,移動自動化也得到發(fā)展,Python 語言成為主流的自動化編程語言。

    Python 是一門免費、開源、簡單易用易學的跨平臺高級動態(tài)編程語言,其語法簡單,代碼可讀性強,非常適合初學者。Python 語言科學計算、數(shù)據(jù)處理、數(shù)據(jù)分析等功能適應移動終端自動化測試發(fā)展趨勢。

    Python 在移動自動化測試方面已有很多應用。由于Python 帶有os 庫,可與手機連接,很多公司在此平臺上進行終端自動化測試腳本編寫及開發(fā)自動化測試框架,如airtest。

    Python 語言目前是最受歡迎的自動化編程語言,豐富的第三方庫既避免了重復開發(fā),又增加了語言張力,目前98%的人工智能開發(fā)用的是Python 語言編程。

    人工智能編程思路是:在Python 的標準庫(pdb、urllib、httplib、hash、os、threading)基礎上,采用第三方Python 開源庫requests、numpy、matplotlib,opencv 等實現(xiàn)數(shù)據(jù)分析功能。本文嘗試從人工智能編程思路出發(fā),基于Python 語言闡述其在自動化測試用戶模擬過程中應用[4]。

    3 人工智能應用

    3.1 圖像文字識別在自動化測試方面應用

    在產(chǎn)品研發(fā)測試過程中,各類產(chǎn)品紛繁交錯,版本迭代也很頻繁,傳統(tǒng)的手機UI 自動化測試方法是通過dump UI 采取自動化測試腳本分析定位到界面上的控件元素,然后根據(jù)元素屬性取出具體業(yè)務數(shù)值,最后獲得界面坐標以執(zhí)行自動化測試過程。

    (1)通過坐標點擊方法實現(xiàn)用戶模擬分析如下:由于版本迭代,系統(tǒng)交錯存在很多差異化需求,僅通過定位坐標往往會出現(xiàn)自動化腳本更新頻繁導致效率較差問題。此類測試包含功能測試、穩(wěn)定性測試等。

    (2)UI 元素屬性識別方法:是一種傳統(tǒng)的測試方法,為UIdump 界面信息通過傳統(tǒng)的空間元素屬性識別控件。但在游戲、Octane、BasemarkOS、BaseMarkX 等方面,傳統(tǒng)的空間元素屬性識別方法往往不適用。

    (3)圖像匹配識別方法:Airtest 的測試框架是用圖像匹配度進行用戶模擬操作,這個方法有一定的局限性,僅僅能操控手機,但是無法提取出圖像上的文字供數(shù)據(jù)采集。

    高效準確地進行鑒權(quán)測試需要圖像文字識別技術(shù)支持,采用圖像文字識別技術(shù)可先對期望結(jié)果頁面進行截屏,從而對測試結(jié)果進行分析。

    3.2 圖像文字識別傳統(tǒng)方式

    傳統(tǒng)的圖像識別方法通過圖像匹配算法進行識別,采用BSD 發(fā)行的OpenCV 計算機視覺庫,其提供Python、Ru?by、MATLAB 等語言接口,圖片檢測、圖片識別和圖片數(shù)據(jù)功能均由OpenCV 提供相應的接口實現(xiàn)。

    基于OpenCV 和Python 的用戶行為模擬測試模型核心是利用OpenCV 和Python 識別圖片。該測試模型主要由圖像信息采集、文字區(qū)域檢測、特征值提取和數(shù)據(jù)處理等模塊完成。文字區(qū)域檢測采用mser 算法,特征值提取通過tesseract ocr 識別文字將待測圖片進行處理得到待驗證數(shù)據(jù),數(shù)據(jù)處理模塊將該數(shù)據(jù)與校驗庫中的值進行對比,找到最相近的值作為識別的最終值,但該模型準確度不高[5]。

    3.3 卷積神經(jīng)網(wǎng)絡圖像識別方式

    隨著人工智能的發(fā)展,深度神經(jīng)網(wǎng)絡成為主流的圖像識別技術(shù),其中尤以卷積神經(jīng)網(wǎng)絡最為出名。卷積神經(jīng)網(wǎng)絡是以自動化特征提取的機器學習模型。本文基于卷積神經(jīng)網(wǎng)絡的電子信息圖像文字處理技術(shù)構(gòu)建卷積網(wǎng)絡結(jié)構(gòu),研發(fā)算法流程,挖掘卷積神經(jīng)網(wǎng)絡的文字識別優(yōu)勢[6-7]。

    卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)是一種前饋型神經(jīng)網(wǎng)絡,在大型圖像處理方面有出色表現(xiàn),已廣泛應用于圖像文字識別方面。因此,本文采用卷積神經(jīng)網(wǎng)絡(CNN)實現(xiàn)文字圖像識別功能。

    采用Python 編寫CNN 文字圖像識別功能可實現(xiàn)更少的代碼行。目前卷積神經(jīng)網(wǎng)絡流行框架是Caffe、Torch、Tensorflow,適用于機器學習和深度學習等,如Tensorflow、Keras、Caffe、Theano 等在Python 中都可進行調(diào)用,而且由于Python 語言簡單性,它們在Python 中使用也更加容易。

    Keras 是一個簡約、高度模塊化的神經(jīng)網(wǎng)絡庫,應用模塊(keras.applications)提供帶有預訓練權(quán)值的深度學習模型,這些模型可用來進行預測、特征提取和微調(diào)[8]。

    4 系統(tǒng)主要功能實現(xiàn)

    4.1 卷積神經(jīng)網(wǎng)絡框架結(jié)構(gòu)

    卷積神經(jīng)網(wǎng)絡層級結(jié)構(gòu)如圖1 所示。

    數(shù)據(jù)輸入層(Input layer):該層主要對原始圖像數(shù)據(jù)進行預處理,包括去均值、歸一化、白化等。

    卷積計算層(CONV layer):局部關聯(lián)與窗口滑動。

    Fig.1 Hierarchical structure of convolutional neural network圖1 卷積神經(jīng)網(wǎng)絡層級結(jié)構(gòu)

    ReLU 激勵層(ReLU layer):將卷積層輸出結(jié)果做非線性映射。

    池化層(Pooling layer):用于壓縮數(shù)據(jù)和參數(shù)的量,減小過擬合。

    全連接層(Full Connection layer):兩層之間所有神經(jīng)元都有權(quán)重連接,通常全連接層在卷積神經(jīng)網(wǎng)絡尾部。

    Image 為原始圖片,F(xiàn) 為濾波器(filter,也稱為kernel)。用這個filter 對圖片進行處理,覆蓋一塊跟filter 一樣大的區(qū)域之后將對應元素相乘然后求和。計算一個區(qū)域之后向其它區(qū)域挪動,繼續(xù)計算直到把原圖片的每一個角落都覆蓋為止,這個過程就是“卷積”。

    通過設計特定的filter 與圖片做卷積,就可識別出圖片中的某些特征,比如邊界。檢測豎直邊界與水平邊界的區(qū)別只用把對應的filter 旋轉(zhuǎn)90°即可。對于其它特征,理論上只要經(jīng)過精細設計就可設計出合適的filter。CNN 原理就是設置每個filter 中的參數(shù)。

    4.2 基于Keras 實現(xiàn)圖像文字識別流程

    (1)準備好需要用的庫。準備庫Keras,PIL,numpy,opencv,tensorflow,在Python3.5 環(huán)境下可通過pip install 進行安裝的庫如表1 所示。

    Table 1 Libraries installed through pip install表1 通過pip install 進行安裝的庫

    (2)Python 編程環(huán)境中,導入PIL 圖像處理標準庫,包括PIL 引入Keras 的卷積模塊,如Dropout、Conv2D 和Max?Pooling2D。

    import keras

    from keras.preprocessing.image import ImageDataGenerator

    from keras.models import Sequential

    from keras.layers import Dense,Dropout,F(xiàn)latten,Conv2D,MaxPooling2D

    from keras.callbacks import EarlyStopping,ModelCheckpoint

    from PIL import Image

    import numpy as np

    (3)數(shù)據(jù)預處理。在將數(shù)據(jù)輸入神經(jīng)網(wǎng)絡之前需要將數(shù)據(jù)格式化為經(jīng)過預處理的浮點數(shù)張量。預處理流程如下:讀取圖像文件?解碼維RGB 像素網(wǎng)格?轉(zhuǎn)換為浮點張數(shù)?像素縮放為0-1 區(qū)間,如圖2 所示。

    Fig.2 Data preprocessing圖2 數(shù)據(jù)預處理

    在TensorFlow API Keras 中有個比較好用的圖像處理類ImageDataGenerator,它可以將本地圖像文件自動轉(zhuǎn)換為處理好的張量。

    下面通過代碼解釋如何利用Keras 對數(shù)據(jù)預處理,完整代碼如下:

    (4)通過Python 代碼設計卷積神經(jīng)網(wǎng)絡。

    ①搭建卷積神經(jīng)網(wǎng)絡;采用Keras 的序列模型(Se?quential 類建立神經(jīng)網(wǎng)絡模型)

    model=Sequential();

    ②添加一層卷積層,構(gòu)造64 個過濾器,每個過濾器的范圍是3×3×1,過濾器挪動步長為1,并用relu 進行非線性變換;

    model.add(Conv2D(32,kernel_size=(3,),activation=‘relu’,input_shape=input_shape))

    model.add(Conv2D(64,(3,3),strides=(1,1),activa?tion=‘relu’))

    ③添加一層MaxPooling,在2×2 格子中取最大值;

    model.add(MaxPooling2D(pool_size=(2,2)))

    ④設立Dropout 層,將Dropout 的概率設為0.5,這個值可以自行設置;

    model.add(Dropout(0.25))

    ⑤把當前層節(jié)點鋪平;

    model.add(Flatten())

    ⑥構(gòu)造全連接神經(jīng)網(wǎng)絡層;

    model.add(Dense(128,activation=‘relu’))

    ⑦最后定義損失函數(shù),分類問題的損失函數(shù)選擇采用交叉熵(Cross En-tropy);放入批量樣本進行訓練;

    model.compile(loss=keras.losses.binary_crossentropy,op?timizer=keras.optimizers.Adadelta(), metrics=[‘a(chǎn)c?curacy’])

    ⑧在測試集上評價模型的準確度。

    test_loss=model.evaluate_generator(test_generator)

    print(test_loss)

    4.3 基于Keras 實現(xiàn)圖像文字識別模型應用

    自動化測試過程中遇到的自定義控件、圖片、懸浮界面等無法獲得文字信息的場景均可通過文字進行識別與點擊操作,同時測試結(jié)果中保存的圖片也可用文字識別收集結(jié)果或進行l(wèi)og 整理。

    在用戶模擬測試方面,通過圖像獲取封裝文字識別功能,如果識別到截圖控件上的文本則對其進行點擊操作。

    通過手機獲取圖像,調(diào)用文字識別接口識別出文字,然后通過Python 對結(jié)果進行解析。

    5 結(jié)語

    人工智能技術(shù)與自動化測試技術(shù)結(jié)合可節(jié)省大量的人工成本,使移動終端自動化測試得到較大發(fā)展,在工業(yè)或商務領域展現(xiàn)出價值[9-10]。

    首先,軟件測試變得更簡單高效。機器學習擅長通過數(shù)據(jù)訓練完成新的數(shù)據(jù)處理,測試人員無需大量手工編寫自動化測試用例執(zhí)行測試,只需利用AI 自動創(chuàng)建測試用例并執(zhí)行。測試人員主要工作不再是執(zhí)行測試,甚至也不是設計自動化測試用例,而是提供輸入輸出數(shù)據(jù)來訓練AI,最終讓AI 自動生成測試用例并執(zhí)行。對于某些通用測試,只需一個被驗證過的模型,甚至連數(shù)據(jù)也無需提供。

    其次,人工智能測試工具可以發(fā)現(xiàn)更多的軟件缺陷。一邊測試一邊時刻不停地新增數(shù)據(jù)輸入,測試能力會越來越好,因而能夠發(fā)現(xiàn)更多的缺陷。與此同時,對于迭代頻繁的軟件開發(fā)而言,當一個軟件缺陷發(fā)現(xiàn)后,測試人員常常需要確定這個缺陷是什么時候引入的,這往往需要耗費大量的時間和精力,而人工智能測試工具能夠持續(xù)跟蹤軟件開發(fā)過程,找出其中缺陷被引入的時間,從而為開發(fā)人員提供有效信息。

    最后,基于AI 的測試會讓測試人員感到困惑,他們可能懷疑AI 測試有效性。要消除這種不信任感,測試人員需掌握數(shù)據(jù)科學技能,還需了解一些機器學習原理。

    對于軟件測試來說,AI 是一個工具,一個很好的助手。而對于測試人員來說,需要擁抱變化,提升能力,這樣才能更好地發(fā)揮AI 的作用。

    猜你喜歡
    測試人員控件卷積
    移動應用眾包測試人員信譽度復合計算模型研究
    軟件導刊(2022年9期)2022-09-22 05:59:54
    基于3D-Winograd的快速卷積算法設計及FPGA實現(xiàn)
    從濾波器理解卷積
    電子制作(2019年11期)2019-07-04 00:34:38
    關于.net控件數(shù)組的探討
    軟件(2018年7期)2018-08-13 09:44:42
    基于傅里葉域卷積表示的目標跟蹤算法
    高校分析測試中心測試隊伍建設方案初探
    山東化工(2018年20期)2018-04-02 16:30:53
    淺析軟件測試中的心理學應用
    一種基于卷積神經(jīng)網(wǎng)絡的性別識別方法
    犯罪心理測試人員素質(zhì)要求分析
    就這樣玩會VBA中常見的自定義控件
    電腦迷(2012年24期)2012-04-29 00:44:03
    石门县| 安陆市| 明水县| 邛崃市| 浏阳市| 昭苏县| 肃宁县| 宝应县| 南漳县| 华池县| 科技| 同江市| 会同县| 漳州市| 兴业县| 镇雄县| 江城| 体育| 西昌市| 清远市| 德格县| 靖西县| 新丰县| 九寨沟县| 尖扎县| 昂仁县| 忻城县| 洛阳市| 吕梁市| 宁蒗| 蒲江县| 建阳市| 土默特右旗| 常熟市| 化隆| 蓬溪县| 齐齐哈尔市| 正定县| 巫山县| 青河县| 弋阳县|