Android軟件內(nèi)存泄漏測(cè)試技術(shù)研究
發(fā)布時(shí)間:2017-07-01 15:11
本文關(guān)鍵詞:Android軟件內(nèi)存泄漏測(cè)試技術(shù)研究,由筆耕文化傳播整理發(fā)布。
【摘要】:隨著移動(dòng)設(shè)備的普及,越來越多的移動(dòng)應(yīng)用被開發(fā)。這些移動(dòng)軟件運(yùn)行在內(nèi)存有限的設(shè)備上,盡管Android系統(tǒng)中存在垃圾回收機(jī)制,但Android應(yīng)用程序仍可能存在內(nèi)存泄漏問題。內(nèi)存泄漏問題會(huì)導(dǎo)致一些負(fù)面的用戶體驗(yàn),例如程序速度變慢,甚至崩潰等。目前,對(duì)Android應(yīng)用內(nèi)存泄漏問題的研究主要關(guān)注發(fā)現(xiàn)泄漏現(xiàn)象后如何找出泄漏原因,對(duì)于第一步如何發(fā)現(xiàn)泄漏現(xiàn)象,相關(guān)研究較為缺乏,缺少成熟有效的解決方案。軟件測(cè)試技術(shù)是利用最多的故障發(fā)現(xiàn)技術(shù),然而,傳統(tǒng)的測(cè)試技術(shù)并不能直接用于內(nèi)存泄漏現(xiàn)象的發(fā)現(xiàn),使用這些技術(shù)可能會(huì)耗費(fèi)大量的精力在檢測(cè)泄漏無關(guān)的測(cè)試執(zhí)行上,這大大降低了泄漏發(fā)現(xiàn)的效率。為了彌補(bǔ)現(xiàn)有技術(shù)的不足,本文對(duì)Android應(yīng)用內(nèi)存泄漏的發(fā)現(xiàn)技術(shù)進(jìn)行了研究。首先,提出了一種基于內(nèi)存泄漏預(yù)測(cè)模型的測(cè)試用例集優(yōu)化、選擇方法,找到集合中疑似存在內(nèi)存泄漏的測(cè)試用例,優(yōu)先測(cè)試,從而提高測(cè)試效率。此外,利用所提出的內(nèi)存泄漏預(yù)測(cè)模型對(duì)應(yīng)用的GUI事件操作進(jìn)行評(píng)分,基于評(píng)分重組高風(fēng)險(xiǎn)的事件操作,生成易暴露泄漏的測(cè)試用例,從而構(gòu)造面向泄漏檢測(cè)的增強(qiáng)測(cè)試用例集。具體工作包括:(1)對(duì)存在內(nèi)存泄漏的應(yīng)用的代碼進(jìn)行了分析,提出了內(nèi)存泄漏測(cè)試執(zhí)行的代碼級(jí)特征。將代碼特征抽象為內(nèi)存特征向量,從而為內(nèi)存預(yù)測(cè)模型作出準(zhǔn)備。(2)建立了一個(gè)內(nèi)存泄漏預(yù)測(cè)模型,通過機(jī)器學(xué)習(xí)中的Ranking SVM算法,對(duì)已收集的內(nèi)存特征向量進(jìn)行打分、排序,以確定每一個(gè)測(cè)試用例是否可能導(dǎo)致內(nèi)存泄漏。根據(jù)泄漏預(yù)測(cè)模型給出的評(píng)分和排序,提出了測(cè)試用例的選擇排序算法,從而加速泄漏檢測(cè)過程。(3)對(duì)Android軟件的GUI進(jìn)行分析,得到GUI事件-內(nèi)存流程圖,結(jié)合內(nèi)存泄漏預(yù)測(cè)模型找出的具有內(nèi)存泄漏風(fēng)險(xiǎn)的事件操作,生成能夠消耗大量?jī)?nèi)存的測(cè)試用例,構(gòu)造面向泄漏檢測(cè)的增強(qiáng)測(cè)試用例集。最后,通過在若干開源的Android應(yīng)用程序進(jìn)行測(cè)試,檢驗(yàn)了本文所提出的方法的有效性,表明這些方法能夠幫助用戶提高測(cè)試效率。
【關(guān)鍵詞】:Android 內(nèi)存泄漏 機(jī)器學(xué)習(xí) 測(cè)試用例選擇 測(cè)試生成
【學(xué)位授予單位】:南京航空航天大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2016
【分類號(hào)】:TP311.53;TP316
【目錄】:
- 摘要4-5
- ABSTRACT5-10
- 第一章 緒論10-16
- 1.1 研究背景和意義10-11
- 1.2 國(guó)內(nèi)外研究現(xiàn)狀11-13
- 1.2.1 內(nèi)存泄漏研究現(xiàn)狀11-13
- 1.2.2 基于測(cè)試用例的選擇和排序13
- 1.3 本文的主要工作13-14
- 1.4 本文的組織結(jié)構(gòu)14-16
- 第二章 相關(guān)概念和工具介紹16-24
- 2.1 Android系統(tǒng)介紹16-18
- 2.2 插樁及插樁工具介紹18-19
- 2.3 內(nèi)存泄漏概述19-20
- 2.4 Android內(nèi)存管理機(jī)制20-23
- 2.4.1 Android的進(jìn)程管理20
- 2.4.2 Android內(nèi)存泄漏原因20-23
- 2.4.3 Android內(nèi)存泄漏的一些表現(xiàn)23
- 2.5 本章小結(jié)23-24
- 第三章 基于內(nèi)存泄漏預(yù)測(cè)模型的測(cè)試用例優(yōu)先級(jí)框架24-42
- 3.1 測(cè)試用例優(yōu)先級(jí)框架總體概述24-28
- 3.1.1 測(cè)試用例框架提出的意義24-26
- 3.1.2 具體步驟和輸入輸出數(shù)據(jù)26-28
- 3.2 Android程序具有內(nèi)存泄漏風(fēng)險(xiǎn)的代碼特征28-34
- 3.2.1 基于Java語言內(nèi)存管理指令的使用導(dǎo)致內(nèi)存泄漏29-31
- 3.2.2 基于系統(tǒng)資源的使用導(dǎo)致內(nèi)存泄漏31-32
- 3.2.3 基于應(yīng)用框架資源的使用導(dǎo)致內(nèi)存泄漏32-33
- 3.2.4 內(nèi)存特征向量概念定義33-34
- 3.2.5 內(nèi)存泄漏風(fēng)險(xiǎn)代碼特征分類的優(yōu)點(diǎn)和不足34
- 3.3 內(nèi)存泄漏預(yù)測(cè)模型34-38
- 3.3.1 內(nèi)存泄漏預(yù)測(cè)模型的輸入數(shù)據(jù)34-35
- 3.3.2 內(nèi)存泄漏預(yù)測(cè)模型的構(gòu)建35-36
- 3.3.3 利用Ranking SVM算法獲得權(quán)重向量36-38
- 3.4 案例分析38-40
- 3.5 本章小結(jié)40-42
- 第四章 內(nèi)存泄漏增強(qiáng)測(cè)試用例生成框架42-49
- 4.1 內(nèi)存泄漏測(cè)試用例生成框架結(jié)構(gòu)42-43
- 4.2 Android程序的測(cè)試用例篩選43-44
- 4.3 Android程序的測(cè)試用例生成44-46
- 4.3.1 GUI事件內(nèi)存流程圖44-45
- 4.3.2 基于深度優(yōu)先搜索的測(cè)試用例選擇45-46
- 4.4 案例分析46-48
- 4.5 本章小結(jié)48-49
- 第五章 系統(tǒng)實(shí)現(xiàn)與實(shí)驗(yàn)結(jié)果分析49-59
- 5.1 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)49-54
- 5.1.1 系統(tǒng)設(shè)計(jì)49-50
- 5.1.2 系統(tǒng)實(shí)現(xiàn)50-54
- 5.2 實(shí)驗(yàn)結(jié)果分析54-58
- 5.2.1 實(shí)驗(yàn)對(duì)象54-55
- 5.2.2 實(shí)驗(yàn)結(jié)果分析與討論55-58
- 5.3 本章小結(jié)58-59
- 第六章總結(jié)與展望59-61
- 6.1 總結(jié)59
- 6.2 未來工作展望59-61
- 參考文獻(xiàn)61-66
- 致謝66-67
- 攻讀碩士學(xué)位期間完成的論文以及學(xué)術(shù)成果67
- 攻讀碩士學(xué)位期間參加科研項(xiàng)目和獲獎(jiǎng)情況67
本文關(guān)鍵詞:Android軟件內(nèi)存泄漏測(cè)試技術(shù)研究,,由筆耕文化傳播整理發(fā)布。
本文編號(hào):506394
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/506394.html
最近更新
教材專著