[發(fā)明專利]基于事件序列的手機應(yīng)用UI的廣度遍歷自動化測試方法有效
| 申請?zhí)枺?/td> | 201710429461.4 | 申請日: | 2017-06-08 |
| 公開(公告)號: | CN107197070B | 公開(公告)日: | 2020-03-24 |
| 發(fā)明(設(shè)計)人: | 黃韜;胡大強;廖志 | 申請(專利權(quán))人: | 杭州友聲科技股份有限公司 |
| 主分類號: | H04M1/24 | 分類號: | H04M1/24;G06F11/36 |
| 代理公司: | 北京金智普華知識產(chǎn)權(quán)代理有限公司 11401 | 代理人: | 巴曉艷 |
| 地址: | 310058 浙江省杭*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 事件 序列 手機 應(yīng)用 ui 廣度 遍歷 自動化 測試 方法 | ||
本發(fā)明提供了一種事件序列的構(gòu)建方法,具體涉及一種采用廣度優(yōu)先搜索算法用于手機應(yīng)用UI的自動化測試的基于事件序列的手機應(yīng)用UI的廣度遍歷自動化測試方法。該方法具體包括以下步驟:一是事件序列構(gòu)建;二是元素跳轉(zhuǎn)過程。本發(fā)明以廣度優(yōu)先搜索算法對應(yīng)用UI進行遍歷測試,既能在較短時間測試到移動應(yīng)用的主界面功能盡快發(fā)現(xiàn)基本功能bug,又能不限制層次深度遍歷到所有功能節(jié)點進行全面覆蓋測試的測試方法。
技術(shù)領(lǐng)域
本發(fā)明提供了一種事件序列的構(gòu)建方法,具體涉及一種采用廣度優(yōu)先搜索算法用于手機應(yīng)用UI的自動化測試的基于事件序列的手機應(yīng)用UI的廣度遍歷自動化測試方法。
背景技術(shù)
目前對于手機應(yīng)用UI進行自動化測試大多采用深度測試方法,深度測試是指應(yīng)用深度優(yōu)先搜索算法構(gòu)建測試過程,它沿著樹的深度遍歷樹的節(jié)點,盡可能深地搜索樹的分支。當(dāng)節(jié)點v的所在邊都己被探尋過,搜索將回溯到發(fā)現(xiàn)節(jié)點v的那條邊的起始節(jié)點。這一過程一直進行到已發(fā)現(xiàn)從源節(jié)點可達的所有節(jié)點為止。如果還存在未被發(fā)現(xiàn)的節(jié)點,則選擇其中一個作為源節(jié)點并重復(fù)以上過程,整個進程反復(fù)進行直到所有節(jié)點都被訪問為止。它的不足在于如果應(yīng)用層次較深,無法在較短時間測試到移動應(yīng)用的主界面(但是移動應(yīng)用的主界面通常又布局了應(yīng)用的主要功能),所以有的深度測試會設(shè)定一些層次深度限制,但這樣又使得限制層次以下的節(jié)點無法遍歷到。
廣度優(yōu)先搜索算法簡稱BFS,是一種圖形搜索演算法。簡單地說,BFS是從根節(jié)點開始,沿著樹的寬度遍歷樹的節(jié)點,如果發(fā)現(xiàn)目標,則演算終止。它是一種先生成的節(jié)點先擴展的策略,通過一層一層不斷的擴展來達到搜索的目的。本發(fā)明主要綜合考慮應(yīng)用的UI布局特點,以廣度優(yōu)先搜索算法對應(yīng)用進行遍歷測試,這樣既能在較短時間測試到移動應(yīng)用的主界面功能盡快發(fā)現(xiàn)基本功能bug,又能不限制層次深度遍歷到所有功能節(jié)點進行全面覆蓋測試。
發(fā)明內(nèi)容
為了解決上述技術(shù)問題,本發(fā)明提出了一種事件序列的構(gòu)建方法及通過操作事件序列實現(xiàn)元素跳轉(zhuǎn)的基于事件序列的手機應(yīng)用UI的廣度遍歷自動化測試方法。
本發(fā)明的技術(shù)方案是:基于事件序列的手機應(yīng)用UI的廣度遍歷自動化測試方法,該方法具體包括以下步驟:
一是事件序列構(gòu)建,
二是元素跳轉(zhuǎn)過程。
進一步,所述事件序列構(gòu)建的具體步驟為:
步驟1.1:操作一個UI元素,并設(shè)為入口節(jié)點;
步驟1.2:解析當(dāng)前界面元素;
步驟1.3:判斷元素的入口事件序列是否為空:如果非空表示該元素的入口事件序列已經(jīng)找到,把入口節(jié)點插入到序列首部則入口事件序列構(gòu)建結(jié)束;如果為空表示該元素的入口事件序列還沒有找到,把入口節(jié)點設(shè)為元素的父節(jié)點、同時設(shè)為當(dāng)前節(jié)點,并設(shè)當(dāng)前節(jié)點的父節(jié)點為當(dāng)前節(jié)點;
步驟1.4判斷當(dāng)前節(jié)點是否為空:如果為空表示該元素的入口事件序列已經(jīng)找到,則入口事件序列構(gòu)建結(jié)束;如果非空表示該元素的入口事件序列還沒有找到,把當(dāng)前節(jié)點插入到序列尾部,并設(shè)當(dāng)前節(jié)點的父節(jié)點為當(dāng)前節(jié)點進行循環(huán)判斷,直到當(dāng)前節(jié)點為空,則入口事件序列構(gòu)建結(jié)束。
進一步,所述元素跳轉(zhuǎn)過程的具體步驟為:
步驟2.1選擇一個UI元素,從當(dāng)前界面跳到該元素;
步驟2.2判斷元素在當(dāng)前界面是否存在:如果存在表示該元素的跳轉(zhuǎn)過程已經(jīng)找到,則元素跳轉(zhuǎn)過程結(jié)束;如果不存在表示該元素的跳轉(zhuǎn)過程還沒有找到,則繼續(xù)進行下一步判斷;
步驟2.3 :判斷元素父節(jié)點在當(dāng)前界面是否存在:如果存在表示該元素的跳轉(zhuǎn)過程已經(jīng)找到,操作元素父節(jié)點則元素跳轉(zhuǎn)過程結(jié)束;如果不存在表示該元素的跳轉(zhuǎn)過程還沒有找到,獲取該元素的入口事件序列繼續(xù)進行下一步判斷;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于杭州友聲科技股份有限公司,未經(jīng)杭州友聲科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710429461.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





