[發(fā)明專利]一種基于上下文的移動(dòng)應(yīng)用執(zhí)行序列約減方法在審
| 申請(qǐng)?zhí)枺?/td> | 202111495962.5 | 申請(qǐng)日: | 2021-12-09 |
| 公開(公告)號(hào): | CN114138662A | 公開(公告)日: | 2022-03-04 |
| 發(fā)明(設(shè)計(jì))人: | 馮洋;郝蕊;周孟博;陳偉;黃澴 | 申請(qǐng)(專利權(quán))人: | 南京慕測(cè)信息科技有限公司 |
| 主分類號(hào): | G06F11/36 | 分類號(hào): | G06F11/36 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 210023 江蘇省南京市*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 上下文 移動(dòng) 應(yīng)用 執(zhí)行 序列 方法 | ||
1.一種基于上下文的移動(dòng)應(yīng)用執(zhí)行序列約減方法,其特征在于,針對(duì)安卓應(yīng)用出現(xiàn)異常或報(bào)錯(cuò)的執(zhí)行序列,首先,使用靜態(tài)分析技術(shù),通過soot插樁生成可輸出log的應(yīng)用程序,通過數(shù)據(jù)流分析提取日志信息與原始執(zhí)行序列進(jìn)行匹配,用UI的變化特征輔助構(gòu)建過濾無用事件的reduce算法,對(duì)執(zhí)行序列進(jìn)行第一步的過濾,在此基礎(chǔ)上應(yīng)用程序切片技術(shù),實(shí)現(xiàn)切片依賴關(guān)系的提取,對(duì)crash相應(yīng)序列進(jìn)行切片分析,從而生成必要事件的序列,在第二步縮減的生成樹算法的基礎(chǔ)上,利用必要事件去優(yōu)化縮減序列的長(zhǎng)度和順序,最終生成最小執(zhí)行序列;該方法包括下列步驟:
1)soot插樁,對(duì)應(yīng)用程序進(jìn)行靜態(tài)分析,指定特定的主包來消除一些其他類的方法調(diào)用的影響,對(duì)于所有的方法調(diào)用行InvokeStmt,在代碼行中添加log語句,其中tag為output,value包含java資源行號(hào)Java source line number、類名、方法名、Jimple的語句表示,若為方法回調(diào)則添加CALLBACK字段,插樁之后使用cmd命令自動(dòng)簽名應(yīng)用程序;
本步驟的目的是在應(yīng)用程序內(nèi)添加輸出語句,保存該方法的基本信息和方法間的依賴信息,為后續(xù)的第一步過濾提供數(shù)據(jù)支持,使得運(yùn)行執(zhí)行序列的時(shí)候完成與序列的對(duì)應(yīng)關(guān)系,無用事件即在執(zhí)行序列的運(yùn)行中不會(huì)對(duì)最后異常的狀態(tài)產(chǎn)生影響的事件,通過數(shù)據(jù)流的分析對(duì)無用事件的判定產(chǎn)生幫助;
2)序列過濾,在插樁后的應(yīng)用程序上運(yùn)行原始的執(zhí)行序列,通過線程抓取日志信息,與執(zhí)行序列同步輸出,若事件后跟隨沒有方法調(diào)用,且執(zhí)行事件前后頁面的xml信息未變化,則判定為無用事件,從而判定執(zhí)行序列包含哪些無用事件,保存數(shù)據(jù)usefulScripts,對(duì)無用事件進(jìn)行過濾,生成新的scripts日志和execute日志,在應(yīng)用程序上對(duì)新序列進(jìn)行執(zhí)行,若可以重現(xiàn)crash則表明第一步過濾成功;
3)程序切片,對(duì)程序進(jìn)行soot插樁之后,收集運(yùn)行時(shí)產(chǎn)生的具有特定標(biāo)簽的日志信息,構(gòu)建一個(gè)有效的PDG(程序依賴圖),該圖的構(gòu)建需要執(zhí)行一個(gè)運(yùn)行后的按需靜態(tài)分析,將范圍縮小到只在運(yùn)行期間執(zhí)行過的應(yīng)用程序部分,然后根據(jù)crash信息找到導(dǎo)致crash產(chǎn)生的程序語句,將該語句的執(zhí)行日志作為切片標(biāo)準(zhǔn),之后分析應(yīng)用程序的日志信息并根據(jù)切片標(biāo)準(zhǔn)來生成特定的執(zhí)行PDG,PDG是通過向后探索依賴關(guān)系,逐步添加節(jié)點(diǎn)和邊逐步構(gòu)建的,其中PDG的依賴包括四個(gè)部分:同步和異步數(shù)據(jù)依賴、同步和異步控制依賴,最后根據(jù)腳本事件和PDG中的執(zhí)行語句日志的對(duì)應(yīng)關(guān)系來獲取對(duì)產(chǎn)生crash有影響的腳本序列;
4)生成樹約減,該步驟使用的是HDD算法(Hierarchical Delta Debugging),使用該算法之前需要根據(jù)GUI信息來構(gòu)成GUI狀態(tài)層次樹,該樹使用GUI狀態(tài)的層次關(guān)系來表示它們對(duì)應(yīng)的事件的層次關(guān)系,其中,節(jié)點(diǎn)由當(dāng)前的GUI狀態(tài)和需要執(zhí)行的事件構(gòu)成,邊則表示兩個(gè)GUI狀態(tài)之間的父子關(guān)系,之后使用HDD算法對(duì)層次樹進(jìn)行約減,每一次約減之后執(zhí)行約減的事件序列,根據(jù)是否產(chǎn)生crash來進(jìn)行下一步約減,算法約減完畢后獲取最終的事件序列。
2.根據(jù)權(quán)利要求1所述的基于上下文的移動(dòng)應(yīng)用執(zhí)行序列約減方法,其特征在于,在步驟1)中,進(jìn)行soot插樁;對(duì)原始應(yīng)用程序進(jìn)行靜態(tài)分析,獲取Body里所有的units,一個(gè)Body對(duì)應(yīng)Java里一個(gè)方法的方法體,Unit代表里面的語句,將Unit強(qiáng)制轉(zhuǎn)換為Stmt,Stmt為Jimple里每條語句的表示,針對(duì)每個(gè)語句行,獲取android.util.Log類,構(gòu)建toastUnits,在語句后插入Toast消息。
3.根據(jù)權(quán)利要求1所述的基于上下文的移動(dòng)應(yīng)用執(zhí)行序列約減方法,其特征在于,在步驟2)中,進(jìn)行序列過濾;通過PrintStream創(chuàng)建日志輸入流,啟動(dòng)執(zhí)行序列并實(shí)時(shí)輸出到日志中,同時(shí)創(chuàng)建抓取logcat的線程,兩者使用同一個(gè)PrintStream,生成輸出日志,根據(jù)事件行與方法調(diào)用行之間的關(guān)系判定是否觸發(fā)方法調(diào)用,用數(shù)組記錄事件的名稱,同時(shí)記錄每次事件前后頁面xml信息的變化,對(duì)于xml未產(chǎn)生變化且未產(chǎn)生方法調(diào)用的事件,在原始序列中進(jìn)行過濾。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南京慕測(cè)信息科技有限公司,未經(jīng)南京慕測(cè)信息科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111495962.5/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 自動(dòng)創(chuàng)建上下文信息提供配置的系統(tǒng)
- 用于管理上下文的方法、系統(tǒng)和裝置
- 一種基于本體的上下文感知應(yīng)用平臺(tái)框架模型
- 一種基于上下文感知的智能家居系統(tǒng)
- 實(shí)現(xiàn)上下文感知業(yè)務(wù)應(yīng)用的方法和相關(guān)裝置
- 一種多推理引擎融合上下文感知系統(tǒng)及其工作方法
- 多個(gè)并發(fā)上下文虛擬演進(jìn)型會(huì)話管理(虛擬ESM)
- 一種基于異質(zhì)上下文感知的推薦方法
- 一種可提高上下文質(zhì)量的本體建模方法及裝置
- 微服務(wù)全局上下文控制方法及系統(tǒng)
- 移動(dòng)臺(tái),基站,移動(dòng)通信系統(tǒng),移動(dòng)通信與移動(dòng)通信程序
- 移動(dòng)通信系統(tǒng)、移動(dòng)終端以及移動(dòng)通信方法
- 移動(dòng)支付裝置、移動(dòng)終端POS以及移動(dòng)終端
- 移動(dòng)控制裝置、移動(dòng)體、移動(dòng)體系統(tǒng)、移動(dòng)控制方法及程序
- 移動(dòng)終端后蓋、移動(dòng)終端殼體及移動(dòng)終端
- 移動(dòng)平臺(tái)的輔助移動(dòng)方法、移動(dòng)裝置及移動(dòng)平臺(tái)
- 自移動(dòng)設(shè)備移動(dòng)方法及自移動(dòng)設(shè)備
- 移動(dòng)輪(支撐移動(dòng))
- 移動(dòng)房屋(移動(dòng)酒店)
- 移動(dòng)控制方法、移動(dòng)裝置及移動(dòng)平臺(tái)
- 在線應(yīng)用平臺(tái)上應(yīng)用間通信的回調(diào)應(yīng)答方法、應(yīng)用及在線應(yīng)用平臺(tái)
- 應(yīng)用使用方法、應(yīng)用使用裝置及相應(yīng)的應(yīng)用終端
- 應(yīng)用管理設(shè)備、應(yīng)用管理系統(tǒng)、以及應(yīng)用管理方法
- 能力應(yīng)用系統(tǒng)及其能力應(yīng)用方法
- 應(yīng)用市場(chǎng)的應(yīng)用搜索方法、系統(tǒng)及應(yīng)用市場(chǎng)
- 使用應(yīng)用的方法和應(yīng)用平臺(tái)
- 應(yīng)用安裝方法和應(yīng)用安裝系統(tǒng)
- 使用遠(yuǎn)程應(yīng)用進(jìn)行應(yīng)用安裝
- 應(yīng)用檢測(cè)方法及應(yīng)用檢測(cè)裝置
- 應(yīng)用調(diào)用方法、應(yīng)用發(fā)布方法及應(yīng)用發(fā)布系統(tǒng)





