天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

基于程序分析的JavaScript程序缺陷檢測與定位

發(fā)布時間:2020-04-15 08:25
【摘要】:隨著Web應用的快速發(fā)展,JavaScript語言被廣泛用于基于webview的手機端、基于electron的電腦端和基于Nodejs的服務端,在不同的平臺上發(fā)揮著越來越重要的作用。JavaScript語言具有弱類型和動態(tài)性等特性,主要表現(xiàn)在動態(tài)添加和刪除對象屬性、動態(tài)代碼生成、隱式類型轉換等方面。為保證JavaScript應用程序的正確性、可靠性,現(xiàn)有研究主要集中在測試用例的設計、生成及自動執(zhí)行上,針對函數(shù)參數(shù)不一致、空引用等常見缺陷,研究工作通常圍繞著缺陷的檢測、定位等展開。為了有效保障JavaScript應用質(zhì)量,針對JavaScript函數(shù)參數(shù)不一致、空引用這兩大缺陷,本文提出了基于程序分析的缺陷檢測與定位方法:采用靜態(tài)分析和概率類型推導相結合的方法對函數(shù)參數(shù)不一致情況進行檢測;采用動態(tài)分析方法定位JavaScript空引用缺陷。這兩項工作既可以幫助開發(fā)者在運行程序前檢測函數(shù)參數(shù)不一致缺陷,又可以在發(fā)現(xiàn)缺陷后自動定位空引用缺陷。本文的主要貢獻有:1)基于靜態(tài)分析與概率類型推導相結合的方法,對JavaScript程序中最普遍的“函數(shù)參數(shù)不一致”缺陷進行檢測,設計實現(xiàn)了工具原型JSParameter。針對JavaScript應用的參數(shù)類型不確定等困難,首先為JavaScript項目構造函數(shù)調(diào)用圖,得到整個項目的函數(shù)定義-調(diào)用對;然后提取函數(shù)參數(shù)相關的信息,包括定義函數(shù)信息和調(diào)用函數(shù)信息,并將其與函數(shù)調(diào)用圖結合,得到帶信息的函數(shù)定義-調(diào)用對;根據(jù)提取的參數(shù)命名、注釋、數(shù)據(jù)流等參數(shù)相關信息對參數(shù)類型進行概率推斷,主要通過神經(jīng)網(wǎng)絡和數(shù)據(jù)流約束相結合的方法進行類型推斷。具有準確推斷參數(shù)類型、實時檢測函數(shù)參數(shù)不一致等優(yōu)點。2)為評估函數(shù)參數(shù)不一致檢測方法的有效性,在13個開源項目上進行了實驗,得到4776個函數(shù)形參-實參對。實驗結果表明,對于參數(shù)類型不一致,JSParameter能準確檢測出69%的不一致,針對不同項目內(nèi)的檢測,最大能達到100%的檢測效果,最少有45%,中位數(shù)約達到80%。且該方法中的參數(shù)類型推斷模塊在top-1、top-3和top-5 F1-值分別是78.87%、87.23%和92.67%,好于著名的JavaScript類型推斷工具JSNice,并與最新的工作NL2Type效果相當。3)基于動態(tài)分析和后向切片技術定位JavaScript“空引用”缺陷,設計實現(xiàn)了工具原型JSLocator。針對JavaScript語言的動態(tài)特性、過程間空值傳播等困難,首先對進行缺陷定位的項目進行插樁,然后運行插樁后的代碼并收集與空值有關的執(zhí)行軌跡,最后通過后向切片分析技術對執(zhí)行軌跡和源代碼進行分析,并報告出空引用缺陷的根源位置。具有處理多類空值傳播過程、準確定位JavaScript空引用缺陷等優(yōu)點。4)為評估空引用缺陷定位方法的精度,在包含54個JavaScript空引用缺陷的數(shù)據(jù)集(12個真實缺陷、42個植入缺陷)中應用了JSLocator,JSLocator能準確定位48例(88.89%)缺陷的根源位置,而現(xiàn)有技術AutoFLox只能處理23例(42.59%)。JSLocator的運行時定位時間和源代碼運行時間相比,平均開銷大約是9倍,處于用戶可接受的范圍。
【圖文】:

參數(shù)類型,示例


具有現(xiàn)實意義,能在程序運行前提供檢測結果,以減少運行過程中缺陷的數(shù)量。逡逑在本章中,,JavaScript項目存在的函數(shù)參數(shù)不一致主要是指調(diào)用函數(shù)時傳入逡逑的參數(shù)類型與定義的參數(shù)類型不一致。下面通過圖3-1中的示例代碼闡述函數(shù)參逡逑數(shù)類型不一致的具體細節(jié)。逡逑JSDoc16是一種具有特定格式的注釋,可以通過jSDoc注釋標注類型以及返逡逑回值的類型。如圖3-1示例,該代碼片段在定義函數(shù)《rCo/w?時使用了邋JSDoc逡逑I卻,逡逑*邐Get邋the邋color邋based邋on邋whether邋there邋are邋errors/warnings...逡逑*邐@param邋{邐}邋totalErrors邋Total邋errors逡逑*邐@param邋{邐}邋totalWarnings邋Total邋warnings逡逑*邐^returns邋{int}邋The邋color邋code邋(0邋=邋green,邋1邋=邋yellow,邋2邋=邋red)逡逑V逡逑function邋renderColor(totalErrors,邋totalWarnings)邋{逡逑if邋(totalErrors邋。剑藉澹埃╁澹义希颍澹簦酰颍铄澹;逡逑}..逡逑}逡逑function邋renderResults(results)邋{逡逑return邋lodash.map(results,邋(result,邋index)邋=>邋resultTemplate({逡逑color:邋renderColor(result.errorCount

函數(shù)參數(shù),靜態(tài)分析,檢測方法


3.2方法概述逡逑為了檢測JavaScript程序存在的函數(shù)參數(shù)不一致缺陷,本章提出了基于靜態(tài)逡逑分析與概率類型推斷相結合的方法進行函數(shù)參數(shù)不一致檢測,圖3-2是本章提出逡逑的JavaScript函數(shù)參數(shù)不一致檢測方法整體框架。逡逑(1)
【學位授予單位】:南京大學
【學位級別】:碩士
【學位授予年份】:2019
【分類號】:TP311.5;TP393.09

【相似文獻】

中國期刊全文數(shù)據(jù)庫 前10條

1 邢光榮,鄭國梁,李宣東;一種基于格局的程序分析方法[J];軟件學報;1994年05期

2 褚玉清;一個反動態(tài)跟蹤程序的破譯方法[J];小型微型計算機系統(tǒng);1988年02期

3 李繼燦;;超級監(jiān)控程序分析[J];江漢石油學院學報;1988年03期

4 曲贊;;《風的地質(zhì)作用》和《南極科學》[J];地質(zhì)科學譯叢;1988年03期

5 張貴賢 ,左志誠;第三講 方法研究——程序分析[J];中國勞動科學;1989年04期

6 肖率;梁鋼;;設計文摘兩則[J];雷達與對抗;1989年01期

7 肖夢璐;;醫(yī)療器械的設計原則與程序分析[J];科技資訊;2017年23期

8 高方社;徐建城;李叢;孟凡鵬;;C語言程序分析器的設計與實現(xiàn)[J];電子設計工程;2014年04期

9 劉宗田;姜川;;程序分析的專家模型與方法學[J];計算機科學;1996年06期

10 劉磊,袁琦,金成植;基于信息流分析的程序分析技術[J];計算機研究與發(fā)展;1997年S1期

中國重要會議論文全文數(shù)據(jù)庫 前9條

1 穆洋;;建筑電氣設計的內(nèi)容和程序分析[A];“中國建筑發(fā)展論壇——建筑與科技理論研討會”論文集[C];2015年

2 繆力;張大方;楊學東;;計算有互斥機制的并發(fā)程序的程序切片[A];第十屆全國容錯計算學術會議論文集[C];2003年

3 王盟;王暢;初永越;魏巍;陳艷芳;師二兵;HUA LI;;基于MELCOR程序的PPOOLEX試驗裝置模擬分析[A];第十五屆全國反應堆熱工流體學術會議暨中核核反應堆熱工水力技術重點實驗室學術年會論文集[C];2017年

4 欒景昌;黃志誠;;某變速器總裝配生產(chǎn)線標準化改善[A];標準化助力供給側結構性改革與創(chuàng)新——第十三屆中國標準化論壇論文集[C];2016年

5 任艷榮;劉玉標;王書河;;利用ABAQUS程序分析勘探二號海洋平臺[A];第十二屆全國結構工程學術會議論文集第Ⅲ冊[C];2003年

6 高汝鑫;張亞輝;;蒙皮加強筋結構混合FE-SEA方法中頻振動分析及其程序實現(xiàn)[A];中國力學大會-2015論文摘要集[C];2015年

7 許文;王繼娜;;小議生產(chǎn)線平衡在汽車生產(chǎn)中的應用[A];第十二屆河南省汽車工程科技學術研討會論文集[C];2015年

8 屈萬英;劉偉毅;;用DOE—2程序分析陜南地區(qū)城鎮(zhèn)住宅節(jié)能的檢驗指標[A];城市化進程中的建筑與城市物理環(huán)境:第十屆全國建筑物理學術會議論文集[C];2008年

9 張碩毅;張維婷;;建構中小企業(yè)信息系統(tǒng)委外服務廠商選擇評估模式[A];第11屆海峽兩岸信息管理發(fā)展策略研討會論文集[C];2005年

中國重要報紙全文數(shù)據(jù)庫 前2條

1 本報記者 劉卉;對待檢察工作要有權利分析和程序分析能力[N];檢察日報;2015年

2 許邵庭 本報記者 冉斌;開門傾聽“急盼愁” 基層問計定準星[N];貴州日報;2013年

中國博士學位論文全文數(shù)據(jù)庫 前10條

1 湯震浩;程序分析與檢測中的若干問題研究[D];南京大學;2018年

2 連瑞琦;具有可適應性的程序分析技術[D];中國科學院研究生院(計算技術研究所);2000年

3 涂明君;程序化的哲學闡釋[D];中國人民大學;2008年

4 肖慶;提高靜態(tài)缺陷檢測精度的關鍵技術研究[D];北京郵電大學;2012年

5 李倩;Java程序指向分析研究[D];南京大學;2012年

6 章程;基于機器學習和程序分析相結合的程序調(diào)試技術研究[D];上海交通大學;2013年

7 馬曉東;C程序內(nèi)存錯誤靜態(tài)分析技術研究[D];國防科學技術大學;2009年

8 凌翔;需求模型和程序間行為一致性的比較檢測[D];武漢大學;2013年

9 匡宏宇;基于代碼依賴分析的軟件可追蹤技術研究[D];南京大學;2017年

10 李建立;面向瞬時故障的可配置容錯技術研究[D];國防科學技術大學;2013年

中國碩士學位論文全文數(shù)據(jù)庫 前10條

1 查春柳;基于程序分析的JavaScript程序缺陷檢測與定位[D];南京大學;2019年

2 何興陸;面向隱私泄露分析的污點逆向傳播技術[D];國防科學技術大學;2016年

3 劉崢;基于web的程序在線評測方法的研究[D];哈爾濱理工大學;2018年

4 王東東;多層次變更檢測技術及其在架構持續(xù)演進中的應用[D];東南大學;2018年

5 張俊男;基于程序分析和神經(jīng)網(wǎng)絡語言模型的代碼推薦研究[D];上海師范大學;2018年

6 張若愚;靜態(tài)程序分析輔助的動態(tài)漏洞挖掘[D];上海交通大學;2010年

7 汪國俊;基于程序分析的B公司原料采購計劃數(shù)字化管理研究[D];東北大學;2010年

8 李學博;基于UML的工藝程序分析系統(tǒng)的分析與設計[D];山東大學;2006年

9 曾麗燕;程序分析技術在某LCD電視產(chǎn)品測試線產(chǎn)能改善中的應用研究[D];上海交通大學;2014年

10 張弛;基于可配置程序分析的抽象解釋方法研究[D];南京航空航天大學;2017年



本文編號:2628348

資料下載
論文發(fā)表

本文鏈接:http://www.sikaile.net/guanlilunwen/ydhl/2628348.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權申明:資料由用戶d0dc4***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com