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

    基于AJAX應(yīng)用程序的爬行測試算法

    2014-12-23 01:28:30高秀慧高建華
    計算機工程與設(shè)計 2014年2期
    關(guān)鍵詞:頁面

    高秀慧,高建華

    (上海師范大學(xué) 計算機科學(xué)與工程系,上海200234)

    0 引 言

    當今時代對網(wǎng)絡(luò)的需求與日俱增,開發(fā)人員利用AJAX 技術(shù)提高頁面顯示和響應(yīng)的速度,同時又能豐富用戶的體驗。AJAX 應(yīng)用程序的友好性以及豐富的用戶體驗為自動化測試帶來了新挑戰(zhàn):其一,傳統(tǒng)網(wǎng)站通過不同的URL進行頁面切換,但現(xiàn)在服務(wù)器不再需要保存大量的靜態(tài)網(wǎng)頁,而是用戶通過請求直接從數(shù)據(jù)庫里讀取數(shù)據(jù)動態(tài)生成網(wǎng)頁返回給用戶;另一方面,傳統(tǒng)網(wǎng)站通過整體刷新的方式呈現(xiàn)頁面內(nèi)容,但現(xiàn)在采用局部刷新技術(shù),僅在瀏覽器和服務(wù)器之間傳遞少量數(shù)據(jù),同時不影響用戶對正在瀏覽的頁面進行其他操作[1]。上述技術(shù)的運用使靜態(tài)分析測試技術(shù)失去了作用,也使基于傳統(tǒng)頁面請求/響應(yīng)模型的測試方法失效。

    針對此問題,Mesbah[2]等提出一種ATUSA 框架,其主要思想:通過爬行AJAX 應(yīng)用程序,自動點擊按鈕及其它用戶界面元素,分析用戶界面狀態(tài)變化,動態(tài)推導(dǎo)出對程序中各種導(dǎo)航路徑和狀態(tài)建模的狀態(tài)流程圖,用最短路徑算法從狀態(tài)集中衍生測試集。夏冰[3]等對動態(tài)腳本網(wǎng)站采取更有效的頁面獲取方法,主要思想:通過訓(xùn)練頁面元素觸發(fā)事件,總結(jié)出采用事件和事件所在元素的XPath二元組表示法,在以后抓取中,只觸發(fā)這些頁面元素上的特定事件,進一步提升抓取效率。借鑒上述思想,本文通過改進爬行AJAX 應(yīng)用程序時的不足之處,并將推導(dǎo)后的狀態(tài)流程圖通過規(guī)約法則 (合并測試路徑)縮減測試集,減少測試集的生成,同時保證測試覆蓋率。

    1 背景及相關(guān)知識

    可靠性是軟件的一個質(zhì)量要素,為了提高AJAX 應(yīng)用程序的可靠性,測試或靜態(tài)分析被廣泛運用。目前已有許多工具用于測試,比如Selinimu、WebDriver、模擬用戶輸入點擊等操作,實現(xiàn)Web自動化測試,但這些工具仍需要測試人員大量的手工操作。

    傳統(tǒng)Web與AJAX Web區(qū)別:AJAX 是一種將多種前端技術(shù)整合的思想。傳統(tǒng)的網(wǎng)站以靜態(tài)為主,通過不同的URL進行頁面切換,每個不同的URL 對應(yīng)不同的狀態(tài)(狀態(tài)是某一時刻在瀏覽器中呈現(xiàn)的DOM 結(jié)構(gòu));而采用AJAX 技術(shù)實現(xiàn)的Web系統(tǒng)普遍進行局部刷新,在用戶觸發(fā)事件調(diào)用JavaScript代碼的同時,動態(tài)修改瀏覽器DOM樹的內(nèi)容與結(jié)構(gòu) (比如:鼠標位于圖片區(qū)域,觸發(fā)onmouseover事件,彈出對應(yīng)的圖片說明),由此生成新狀態(tài)而改變用戶界面的狀態(tài)。由于這些狀態(tài)都同屬于一個URL,所以一個AJAX 頁面可以同時擁有多個不同的內(nèi)部狀態(tài);并且,頁面上的超鏈接也可以指向其他URL 頁面。對于Web程序的測試,一般通過設(shè)計爬行算法遍歷實現(xiàn),而AJAX 的技術(shù)特征對于爬行引擎如何定位并指向一個特定狀態(tài)提高了難度。傳統(tǒng)Web 數(shù)據(jù)采集轉(zhuǎn)換圖的節(jié)點為Web頁面,轉(zhuǎn)換圖的邊為超鏈接;對AJAX 而言,由于內(nèi)部也會動態(tài)更改內(nèi)容,所以頁面內(nèi)部同時會由事件觸發(fā)。Matter[4]和Frey[5]都對狀態(tài) 轉(zhuǎn)換做了歸 納,圖1 為AJAX站點模型頁面狀態(tài)轉(zhuǎn)換圖。從圖1 中可以看出,AJAX 頁面之間由超鏈接導(dǎo)致頁面跳轉(zhuǎn),AJAX 頁面內(nèi)部由觸發(fā)事件引起內(nèi)部狀態(tài)轉(zhuǎn)換。

    圖1 AJAX 站點模型頁面狀態(tài)轉(zhuǎn)換

    2 用于狀態(tài)轉(zhuǎn)換圖的爬行算法

    本文提到的爬行算法執(zhí)行客戶端代碼,對用戶提交的每個行為進行分析,將每一次觸發(fā)事件后更新的頁面所對應(yīng)的每棵DOM 樹看做一個狀態(tài),每次事件觸發(fā)是引起狀態(tài)變化的條件,作為狀態(tài)圖的一條邊,最后通過深度優(yōu)先遍歷推導(dǎo)出狀態(tài)流程圖。如圖2所示。

    2.1 狀態(tài)流程圖模型

    狀態(tài)流程圖主要用于捕獲用戶界面的狀態(tài)以及改變狀態(tài)的轉(zhuǎn)換條件,即流程圖中記錄引起DOM 變化而產(chǎn)生不同狀態(tài)的XPath路徑 (即DOM 樹路徑)以及各狀態(tài)的集合。以下是狀態(tài)流程圖的定義:

    圖2 狀態(tài)流程

    圖2是狀態(tài)流程圖的示例,<onclick,xpath://DIV

    [1]/a[1]>表示點擊 “//DIV [1]/a[1]”代表的頁面元素可以轉(zhuǎn)換到另一狀態(tài)。依據(jù)定義,初始狀態(tài)r作為根節(jié)點也是起始節(jié)點,從起始節(jié)點r可以通過點擊xpath路徑上代表的頁面元素轉(zhuǎn)換到下一個狀態(tài),比如在起始節(jié)點r下,通過觸發(fā)<onclick,xpath://DIV [1]/a [1]>代表的頁面元素的onclick事件可以轉(zhuǎn)換到S1;在狀態(tài)S1下,觸發(fā)<onmousemove,xpath://FORM/DIV [1]>或 者<onmousemove,xpath://FORM/DIV [2]>代表的 頁面元素的onmouseover事件可以轉(zhuǎn)換到S4;在狀態(tài)S4下,觸發(fā)<onclick,xpath://SPAN [2]/a [1]>代表的頁面元素的onclick事件可以轉(zhuǎn)換到S5;依此類推,將定義中的狀態(tài)以及路徑都由狀態(tài)流程圖示意;在狀態(tài)S5下,由于沒有輸出邊,即沒有頁面元素上可觸發(fā)事件會改變DOM樹的內(nèi)容與結(jié)構(gòu),所以無法轉(zhuǎn)換到其他狀態(tài)。狀態(tài)流程圖為爬行算法的結(jié)果,主要為測試用例做準備,表1為狀態(tài)流程圖在數(shù)據(jù)庫中的保存方式,當前狀態(tài)下為StartState(未觸發(fā)新事件的狀態(tài),比如:r),經(jīng)過xpath路徑中的Event事件觸發(fā)后轉(zhuǎn)換到NextState(觸發(fā)事件后的狀態(tài),比如:r→S2,S2作為r的NextState);同時將NextState作為下一事件的StartState,即S2作為StartState);步驟同前,當新的StartState觸發(fā)事件轉(zhuǎn)換到NextState后 (比如:S2→S4),保存新事件并將新狀態(tài) (S4)保存至NextState。No.為狀態(tài)序列號。表格為保存方式,主要為第三章節(jié)規(guī)約路徑做準備。

    2.2 爬行算法基本原理

    傳統(tǒng)爬蟲在應(yīng)用程序中爬行時,工作流程一般是從某個鏈接開始,獲取鏈接地址的HTML源碼,并從中抽取出<a>標簽中的 “href”屬性指向的URL鏈接,然后對已抓取的鏈接重復(fù)同樣的步驟。但是基于AJAX 應(yīng)用程序的URL不再是頁面的唯一標識,傳統(tǒng)爬蟲無法抓取含有動態(tài)腳本的網(wǎng)頁。針對AJAX 應(yīng)用程序的爬蟲工作流程,分析如何能抓取新鏈接中的隱藏鏈接 (候選元素)。比如:打開新浪微博首頁,用瀏覽器打開查看源代碼,清晰的發(fā)現(xiàn)源碼中的內(nèi)容遠遠少于頁面呈現(xiàn)出的內(nèi)容,因為在HTML 元素節(jié)點中,采取了后加載的方式調(diào)用JavaScript代碼,并調(diào)用DOM 操作動態(tài)呈現(xiàn),所以源碼內(nèi)容少。

    表1 狀態(tài)流程圖在數(shù)據(jù)庫中的保存方式

    2.3 優(yōu)化的AJAX爬行算法

    結(jié)合上述爬行算法的基本原理,提出了爬行算法的算法流程,通過不斷將狀態(tài)、路徑關(guān)系添加至狀態(tài)流程圖,從而逐步增量式推導(dǎo)出狀態(tài)流程圖。圖3描述了深度優(yōu)先的爬行算法流程圖,主要分為:算法初始化、檢查候選元素、添加新狀態(tài)、狀態(tài)回退、判斷終結(jié)條件。首先初始化嵌入式瀏覽器,加載URL地址,分析得到可觸發(fā)事件的列表;按照深度優(yōu)先算法,觸發(fā)列表中的一個事件,獲取觸發(fā)事件后的狀態(tài);比較先前狀態(tài)與觸發(fā)后新狀態(tài)的差異,若狀態(tài)已變更,則認為狀態(tài)已轉(zhuǎn)換并將新狀態(tài)、路徑關(guān)系添加至狀態(tài)流程圖,若狀態(tài)無變更,則認為新狀態(tài)無轉(zhuǎn)換并觸發(fā)列表中其他事件;爬行過程不斷迭代,設(shè)置新狀態(tài)為當前狀態(tài)繼續(xù)爬行,若仍可抓取 (即仍有可觸發(fā)的事件),則回到最初重新記錄當前狀態(tài),步驟同前;若不可抓取,則需進行狀態(tài)回退,通過重新加載原頁面的方式回到先前狀態(tài),觸發(fā)先前狀態(tài)中的其他待觸發(fā)事件;若已觸發(fā)所有可觸發(fā)事件,則判斷是否達到最大抓取深度,防止不斷出現(xiàn)新狀態(tài)而導(dǎo)致爬蟲陷入黑洞。

    步驟1 算法初始化。在爬行算法開始之前進行初始化,啟動嵌入式瀏覽器,初始化狀態(tài)機、機器人,并根據(jù)給定的URL獲取初始頁面。狀態(tài)機記錄當前狀態(tài) (默認狀態(tài)通常為r),分析得到基于當前狀態(tài)的可觸發(fā)事件的列表。

    步驟2 檢查候選元素。如何判斷可觸發(fā)事件是基于AJAX 應(yīng)用程序的最大難點,傳統(tǒng)網(wǎng)站爬蟲僅靠超鏈接和表單來抓取資源,而優(yōu)化后的爬行算法還會檢查附加于事件監(jiān)聽器上的候選元素 (導(dǎo)致AJAX 頁面狀態(tài)轉(zhuǎn)換的元素集div,a,span,input,IMG 等定義為候選元素)。對每個在DOM 樹上被檢測到的候選元素,爬蟲在瀏覽器中觸發(fā)候選元素上的事件,分析DOM 樹的變化。假如觸發(fā)的事件引起瀏覽器中DOM 樹的變化,那么將當前DOM 樹的狀態(tài)和引起變化的事件路徑記錄,并保存至狀態(tài)機。

    圖3 爬行算法流程

    步驟3 添加新狀態(tài)。比較當前狀態(tài)是否與狀態(tài)機中的已有狀態(tài)重復(fù),假如在狀態(tài)流程圖中已有類似狀態(tài),那么僅創(chuàng)建一條邊,并識別事件的類型和路徑;假如當前狀態(tài)不是圖中的一部分,那么創(chuàng)建新狀態(tài)并添加至狀態(tài)機。在確定新狀態(tài)后,爬行算法被遞歸調(diào)用去尋找其余使DOM樹發(fā)生變化的可能的候選元素。其中,優(yōu)化后的爬行算法會計算先前DOM 樹與當前DOM 樹的差異,僅搜尋DOM樹更改部分的候選元素,而不是對新的DOM 樹搜尋所有的候選元素。

    步驟4 狀態(tài)回退。每次遞歸調(diào)用,瀏覽器都應(yīng)回到先前狀態(tài),但基于AJAX 應(yīng)用程序無法滿足這一點。為了解決這個問題,可以選擇保存候選元素信息 (即之前保存至狀態(tài)機的DOM 樹的狀態(tài)和事件路徑)和命令,以便下次可以直接達到想要的結(jié)果狀態(tài)。通過重載應(yīng)用程序,執(zhí)行初始狀態(tài)下的元素達到最終狀態(tài)。

    步驟5 判斷終結(jié)條件,用于控制爬行算法。爬行算法抓取終結(jié)條件為滿足以下任一項:

    (1)判斷是否達到最大抓取深度。深度是指由初始狀態(tài)經(jīng)過多次轉(zhuǎn)換到達某個中間狀態(tài)的轉(zhuǎn)換次數(shù)。

    (2)判斷是否達到最大狀態(tài)數(shù),防止狀態(tài)爆炸問題。

    (3)當前狀態(tài)是初始狀態(tài)并且已觸發(fā)所有可觸發(fā)事件。

    3 規(guī)約法則縮減測試集

    通過上述優(yōu)化后的爬行算法推導(dǎo)出狀態(tài)流程圖,此過程定義為第一步完整測試通過;第二步通過使用不同方法去覆蓋狀態(tài)流程圖中的不同路徑,達到測試目的,可以利用推導(dǎo)出的狀態(tài)流程圖進行測試集的生成。生成測試集的主要思想為:對狀態(tài)流程圖使用前K 條最短路徑算法,所得出的多條最短路徑就可以作為測試集使用,但由于圖中所包含的狀態(tài)覆蓋面廣,生成的測試集過多,部分測試集不具有代表性。本文通過利用合并測試路徑的想法有效縮減測試集的生成,同時又不影響測試集的覆蓋率。

    3.1 最短路徑算法

    前K 條最短路徑算法是最短路徑的推廣。給定一個有向圖G= (V,E),一個正整數(shù)K 和兩個頂點v1、v2,求出從v1到v2的前K 條最短路徑。此算法求得的路徑并不只有一條,而是多條最短路徑。算法利用前K 條最短路徑的思想方法,定義狀態(tài)流程圖中的r為v1,每個節(jié)點vi作為v2,求出r到vi的前K條最短路徑。雖然用前K條最短路徑求出的算法已是最優(yōu)算法,但其實在推導(dǎo)狀態(tài)流程圖時會因觸發(fā)不同事件生成同一狀態(tài)的現(xiàn)象存在,比如:在頁碼1的狀態(tài)下,點擊頁碼2和下一頁會向服務(wù)端發(fā)出請求獲得同一頁的數(shù)據(jù),我們應(yīng)盡量避免這類事件的重復(fù)檢測。

    3.2 合并測試路徑

    為了減少測試集的生成,本文通過規(guī)約的思想,即合并測試路徑的方法生成最優(yōu)的測試集,也可以理解為選取觸發(fā)具有特征的事件生成測試集,同時不影響測試覆蓋率。

    本文對前K 條最短路徑求出的所有路徑規(guī)約采用了如下方法:被規(guī)約的兩條XPath 路徑必須其前狀態(tài) (Start-State)相同,即路徑所經(jīng)過的頁面元素名稱完全相同,并且經(jīng)過xpath路徑后生成的狀態(tài)是同一狀態(tài) (NextState狀態(tài)相同);對這兩條XPath進行序號規(guī)約,如 “//div[4]/li[1]/span[1]”和 “//div [4]/li[1]/span [2]”這兩個xpath,可以規(guī)約成 “//div[4]/li[1]/span[*]”;如“//div[4]/span[1]/a[1]”和 “//div[4]/span [2]/a[1]”這兩個xpath,可以規(guī)約成 “//div[4]/span [*]/a

    [1]”;但 是 如 “//div [4]/li[1]/span [1]”和 “//li

    [1]/span[2]”這兩個xpath,不可以進行規(guī)約。這樣,我們便選取了一些具有特征的事件,在生成測試集時只需選擇其中一條路徑,無需所有的路徑都被測試。同時,為了提高覆蓋率,對已屬于測試路徑中的狀態(tài)標記為已檢測,第二次規(guī)約時盡可能選擇未被檢測過的狀態(tài)。

    本文對路徑規(guī)約識別算法進行以下描述:

    第一步:深度遍歷狀態(tài)流程圖,得到前K 條最短路徑。

    第二步:對于最短路徑中的xpath 路徑,滿足以下條件時,進行合并:

    (1)xpath路徑具有同父狀態(tài)結(jié)點,處于同一層次;

    (2)xpath路徑擁有同子狀態(tài)結(jié)點,處于同一層次;

    (3)xpath路徑符合序號規(guī)約法則;

    (4)判斷xpath路徑是否已被檢測,選擇合適的xpath路徑。

    4 實驗與討論

    本文實驗的目的在于驗證優(yōu)化后的測試集在數(shù)量上明顯減少以及在覆蓋率上沒有受到影響。本文隨機選取了網(wǎng)站進行測試,重點關(guān)注以下兩個問題:(1)優(yōu)化后的AJAX 爬行算法是否能抓取候選元素;(2)本文提出的規(guī)約測試路徑的方法是否有效。

    4.1 實驗準備

    實驗是在STS (spring tool suite)開發(fā)平臺上編寫,本文依據(jù)2.2中提到的爬蟲算法進行測試。為了獲得實驗數(shù)據(jù),設(shè)計了如下的測試環(huán)境,如圖4所示。

    圖4 測試環(huán)境

    本文設(shè)計的對比實驗選用了百度網(wǎng)站(www.baidu.com)進行測試:①設(shè)置爬行算法深度為2,利用爬蟲推導(dǎo)出正確的狀態(tài)流程圖;手動對應(yīng)用程序注入不同故障,推導(dǎo)出含有故障的狀態(tài)流程圖;②遍歷狀態(tài)流程圖,分別讀取正確的和注入了故障的數(shù)據(jù),獲得相應(yīng)結(jié)果P和P’,對比結(jié)果分析爬行算法的測試有效性;③通過使用3.2中的路徑規(guī)約識別算法,得到優(yōu)化后的前K 條最短路徑,比較新生成的測試路徑對測試有效性的最終影響。

    4.2 實驗結(jié)果

    實驗中選用了未注入故障的應(yīng)用程序以及分別注入一個或多個故障后的應(yīng)用程序,結(jié)果對比輸出的數(shù)據(jù)。注入故障后的應(yīng)用程序由于無法抓取全部的狀態(tài)數(shù),所以生成的狀態(tài)流程圖一定小于未注入故障所生成的狀態(tài)流程圖,因此,輸出的數(shù)據(jù)P’的狀態(tài)數(shù)、Xpath數(shù)一定小于P。最后比對P和P’的值,得出爬行算法的有效性。

    4.2.1 生成狀態(tài)流程圖

    圖5為抓取隱藏鏈接后生成,正確的狀態(tài)流程圖。通過使用爬蟲算法對網(wǎng)站進行深度優(yōu)先遍歷,從www.baidu.com觸發(fā),觸發(fā)所有候選元素的事件 (其中大部分為<a>標簽內(nèi)的隱藏事件),得到圖5所示的狀態(tài)流程圖。

    圖5 百度網(wǎng)站狀態(tài)流程

    4.2.2 有效性實驗數(shù)據(jù)

    實驗通過屏蔽代碼的方式從不同位置注入故障,分別注入0、1、2、3、4個故障。表2 第一列是本次實驗在不同位置注入的故障個數(shù),第二列是應(yīng)用程序所應(yīng)抓取到的狀態(tài)數(shù),第三列是通過使用本論文提到的爬行算法抓取到的狀態(tài)數(shù),第四列是抓取應(yīng)用程序的狀態(tài)覆蓋率=P’/P的結(jié)果。

    表2 有效性實驗數(shù)據(jù)

    從實驗結(jié)果可以清晰看出,2.2 中提到的算法抓取效率高,從表2中可以看出百度應(yīng)用程序在未注入故障前應(yīng)獲得的正確狀態(tài)數(shù)為38,受故障的影響,注入不同故障后所獲得的狀態(tài)數(shù)逐漸減少,當注入故障為1時,狀態(tài)覆蓋率最高達97.37%,平均值為95.26%。注入故障數(shù)的多少不會對覆蓋率產(chǎn)生太大影響,注入的故障位置對覆蓋率會產(chǎn)生一定影響,原因在于出現(xiàn)故障的Xpath 無法生成下一狀態(tài)。

    4.2.3 測試集實驗數(shù)據(jù)

    表3為算法實驗數(shù)據(jù),從數(shù)據(jù)中可以發(fā)現(xiàn)狀態(tài)間存在多條xpath路徑,依據(jù)經(jīng)驗,會存在多條重復(fù)路徑。優(yōu)化后的AJAX 爬行算法可以抓取新鏈接中的隱藏鏈接,共生成38個不同狀態(tài),檢測到的狀態(tài)為100%;抓取到的xpath路徑為163條,通過合并測試路徑生成測試集,檢測到的xpath路徑為141條,覆蓋率為86.5%,成功解決了AJAX應(yīng)用程序難以抓取隱藏鏈接的難題;通過使用本文提出的路徑規(guī)約識別算法后獲得的測試集,測試集由58變?yōu)?2,縮減了6條測試路徑。

    表3 算法實驗數(shù)據(jù)

    從實驗結(jié)果中可以明顯看出利用本文給出的規(guī)約方法檢測的覆蓋率高,符合理想的測試結(jié)果;使用規(guī)約后的測試集數(shù)量小于原來的測試集數(shù)量,達到了優(yōu)化的目的。改進前的測試集為路徑覆蓋,覆蓋面廣且可靠性高,但對于大型網(wǎng)站而言,適用性不大;改進后的測試集在數(shù)量上減少,在大型網(wǎng)站中能體現(xiàn)出一定優(yōu)勢,并且保證較高的覆蓋率。研究分析,對于具有極高結(jié)構(gòu)相似性的網(wǎng)頁 (特別是含有3.1中提到的重復(fù)檢測)進行優(yōu)化測試集,縮減的數(shù)量更加明顯;并且,相信隨著抓取深度的增加,狀態(tài)數(shù)增加的同時,被檢測到的狀態(tài)數(shù)也會增加,測試集數(shù)量會持續(xù)遞減。實驗結(jié)果表明,上述提出的方法優(yōu)越性高,減少測試人員的工作量。

    5 結(jié)束語

    本文討論了測試AJAX 應(yīng)用程序的最優(yōu)方法:通過爬行算法,對Web應(yīng)用程序進行分析,獲取頁面上的所有鏈接,推導(dǎo)出狀態(tài)流程圖,生成測試集。本文簡要介紹了爬行算法的工作流程,對測試集進行優(yōu)化的方法。經(jīng)過初步實驗,表明優(yōu)化后的測試集在數(shù)量上明顯減少,并能保證較高的覆蓋率。當然該方法仍有一定的局限性,可以作為日后研究的方向:文中提出的爬行算法對JavaScript分析不夠深入,對腳本解析的完整性需進一步加強,所以無法抓取某些特定應(yīng)用程序 (例如:數(shù)獨等),應(yīng)進一步擴展算法的適用性。

    [1]Mesbah A,Van Deursen A.An architectural style for AJAX[C]//Proceedings of the 6th Working IEEE/IFIP Conference on Software Architecture,2007:44-53.

    [2]Mesbah A,Van Deursen A,Roest D.Invariant-based automatic testing of modern Web applications[J].IEEE Trans on Software Engineering,2012,38 (1):35-53.

    [3]XIA Bing,GAO Jun,WANG Tengjiao,et al.An efficient valid page crawling approach for Websites with dynamic scripts[J].Journal of Software,2009,20 (Suppl):176-183 (in Chinese).[夏冰,高軍,王騰蛟,等.一種高效的動態(tài)腳本網(wǎng)站有效 頁 面 獲 取 方 法 [J].軟 件 學(xué) 報,2009,20 (增 刊):176-183.]

    [4]Duda C,F(xiàn)rey G,Kossmann D,et al.AJAX crawl:Making AJAX applications searchable [C]//IEEE 25th International Conference on Data Engineering,2009:78-89.

    [5]Frey G.Indexing AJAX Web applications[D].Zurich:Swiss Federal Institute of Technology Zurich,2007.

    [6]Mesbah A,Van Deursen A,Bozdag E.Crawling AJAX by inferring user interface state changes [C]//8th International Conference on Web Engineering,2008:122-134.

    [7]Mesbah A,Van Deursen A.Migrating multi-page Web applications to single-page AJAX interfaces [C]//Proc 11th European Conf Software Maintenance and Reeng,2007:181-190.

    [8]Mesbah A,Prasad M.Automated cross-browser compatibility testing [C]//Proc 33rd Int'l Conf Software Eng,2011.

    [9]Mesbah A,Bozdag E,Van Deursen A.Crawling AJAX by inferring user interface state changes [C]//Proc Eighth Int'l Conf Web Eng,2008:122-134.

    [10]Roest D,Mesbah A,Van Deursen A.Regression testing AJAX applications:Coping with dynamism [C]// Proc Third Int'l Conf on Software Testing,Verification and Validation,2010:128-136.

    猜你喜歡
    頁面
    微信群聊總是找不到,打開這個開關(guān)就好了
    大狗熊在睡覺
    刷新生活的頁面
    在本機中輕松完成常見PDF操作
    電腦愛好者(2022年3期)2022-05-30 10:48:04
    移動頁面設(shè)計:為老人做設(shè)計
    Web安全問答(3)
    同一Word文檔 縱橫頁面并存
    網(wǎng)站結(jié)構(gòu)在SEO中的研究與應(yīng)用
    幾種頁面置換算法的基本原理及實現(xiàn)方法
    淺析ASP.NET頁面導(dǎo)航技術(shù)
    一级,二级,三级黄色视频| 精品卡一卡二卡四卡免费| 国产日韩欧美视频二区| 日韩成人在线观看一区二区三区| 99re6热这里在线精品视频| 亚洲av日韩在线播放| 亚洲一卡2卡3卡4卡5卡精品中文| 丰满人妻熟妇乱又伦精品不卡| 精品久久久精品久久久| 久久久国产欧美日韩av| 人人妻人人澡人人爽人人夜夜| 欧美乱妇无乱码| 国产高清videossex| 欧美性长视频在线观看| 国产不卡一卡二| 91av网站免费观看| 国产一区二区在线观看av| 国产aⅴ精品一区二区三区波| 欧美日韩一级在线毛片| 久久午夜综合久久蜜桃| 建设人人有责人人尽责人人享有的| 精品一品国产午夜福利视频| 久久精品91无色码中文字幕| 高清在线国产一区| 亚洲色图av天堂| 国产成人系列免费观看| 亚洲av第一区精品v没综合| 99热网站在线观看| 一本大道久久a久久精品| 99久久人妻综合| 亚洲精品国产精品久久久不卡| 中文欧美无线码| 国产片内射在线| 在线观看舔阴道视频| 亚洲一区中文字幕在线| 老司机在亚洲福利影院| 水蜜桃什么品种好| 色婷婷久久久亚洲欧美| 午夜福利影视在线免费观看| 亚洲一区中文字幕在线| 少妇 在线观看| 亚洲国产欧美日韩在线播放| 新久久久久国产一级毛片| 久久狼人影院| 日本精品一区二区三区蜜桃| 国产精品.久久久| 亚洲精品中文字幕一二三四区 | 熟女少妇亚洲综合色aaa.| 丰满少妇做爰视频| 欧美在线黄色| 中亚洲国语对白在线视频| 高清av免费在线| 一本大道久久a久久精品| 91成人精品电影| 国产精品一区二区在线观看99| 99精品久久久久人妻精品| 久久99热这里只频精品6学生| 精品一区二区三区视频在线观看免费 | av网站免费在线观看视频| 欧美一级毛片孕妇| 变态另类成人亚洲欧美熟女 | 日本av手机在线免费观看| 妹子高潮喷水视频| 欧美日韩中文字幕国产精品一区二区三区 | 日本wwww免费看| 国产激情久久老熟女| 美国免费a级毛片| 婷婷成人精品国产| 午夜福利视频在线观看免费| 久久毛片免费看一区二区三区| 国产xxxxx性猛交| 人妻一区二区av| 亚洲av日韩精品久久久久久密| 99riav亚洲国产免费| 精品欧美一区二区三区在线| 看免费av毛片| 亚洲一区中文字幕在线| 久久久久久人人人人人| 巨乳人妻的诱惑在线观看| 国产欧美日韩精品亚洲av| 黄色视频,在线免费观看| 亚洲人成电影观看| 法律面前人人平等表现在哪些方面| av电影中文网址| av线在线观看网站| 一二三四社区在线视频社区8| 日韩人妻精品一区2区三区| av又黄又爽大尺度在线免费看| 两个人看的免费小视频| 欧美日韩av久久| 国产在线一区二区三区精| 亚洲精品一二三| 国产一区二区激情短视频| 国产一区二区三区在线臀色熟女 | 91九色精品人成在线观看| 国产精品1区2区在线观看. | 精品少妇久久久久久888优播| 99久久99久久久精品蜜桃| 曰老女人黄片| 在线观看www视频免费| videos熟女内射| 国产日韩欧美在线精品| 1024香蕉在线观看| 一夜夜www| 丝袜人妻中文字幕| 天天影视国产精品| 国产精品av久久久久免费| bbb黄色大片| 国精品久久久久久国模美| 一二三四在线观看免费中文在| 欧美av亚洲av综合av国产av| 色94色欧美一区二区| 高清毛片免费观看视频网站 | 国产精品久久久久成人av| 一边摸一边做爽爽视频免费| 777久久人妻少妇嫩草av网站| 黄色 视频免费看| 考比视频在线观看| 欧美成狂野欧美在线观看| 精品亚洲乱码少妇综合久久| 免费在线观看黄色视频的| 最新在线观看一区二区三区| 最新美女视频免费是黄的| 王馨瑶露胸无遮挡在线观看| 国产亚洲av高清不卡| 国产日韩欧美在线精品| 黑丝袜美女国产一区| 一本—道久久a久久精品蜜桃钙片| 精品高清国产在线一区| 国产亚洲一区二区精品| 国产深夜福利视频在线观看| avwww免费| 久久久水蜜桃国产精品网| 啪啪无遮挡十八禁网站| 女人精品久久久久毛片| 一级毛片女人18水好多| 午夜激情av网站| 精品亚洲成国产av| 一二三四社区在线视频社区8| 中亚洲国语对白在线视频| 亚洲免费av在线视频| 人人澡人人妻人| 精品福利观看| 欧美黑人精品巨大| 久久中文字幕人妻熟女| 亚洲一卡2卡3卡4卡5卡精品中文| 国产人伦9x9x在线观看| 成年人午夜在线观看视频| 国产男靠女视频免费网站| 成年人免费黄色播放视频| 丝袜人妻中文字幕| 美女扒开内裤让男人捅视频| 色综合婷婷激情| 蜜桃国产av成人99| 国产精品久久久人人做人人爽| 男女之事视频高清在线观看| 国产成人一区二区三区免费视频网站| 黄色怎么调成土黄色| 黄色视频在线播放观看不卡| 在线观看人妻少妇| 男女床上黄色一级片免费看| 母亲3免费完整高清在线观看| 香蕉国产在线看| 久久久精品94久久精品| 欧美激情久久久久久爽电影 | 在线观看66精品国产| 欧美精品高潮呻吟av久久| 国产三级黄色录像| 成年人黄色毛片网站| 一边摸一边做爽爽视频免费| 男女午夜视频在线观看| 19禁男女啪啪无遮挡网站| 国产精品偷伦视频观看了| 国产激情久久老熟女| av不卡在线播放| 999久久久精品免费观看国产| 无遮挡黄片免费观看| 一个人免费在线观看的高清视频| 国产欧美日韩一区二区精品| 亚洲avbb在线观看| 一本久久精品| 女人高潮潮喷娇喘18禁视频| 成年人免费黄色播放视频| 中文字幕人妻熟女乱码| 久久人人爽av亚洲精品天堂| 九色亚洲精品在线播放| 欧美av亚洲av综合av国产av| 大陆偷拍与自拍| 国产精品美女特级片免费视频播放器 | 亚洲欧美激情在线| 亚洲欧美色中文字幕在线| 国产精品av久久久久免费| 男女边摸边吃奶| av又黄又爽大尺度在线免费看| 午夜91福利影院| 亚洲全国av大片| 天堂动漫精品| 最近最新免费中文字幕在线| 夜夜夜夜夜久久久久| 国产免费视频播放在线视频| 建设人人有责人人尽责人人享有的| 精品一品国产午夜福利视频| 交换朋友夫妻互换小说| 亚洲成a人片在线一区二区| 黄色毛片三级朝国网站| 久久久久久免费高清国产稀缺| 国产免费av片在线观看野外av| 51午夜福利影视在线观看| 老司机午夜十八禁免费视频| 黄色怎么调成土黄色| 国产精品久久久久久精品电影小说| 91字幕亚洲| a级片在线免费高清观看视频| 免费女性裸体啪啪无遮挡网站| 两性夫妻黄色片| 高清av免费在线| 两性午夜刺激爽爽歪歪视频在线观看 | 50天的宝宝边吃奶边哭怎么回事| 老熟妇乱子伦视频在线观看| 久久久久久人人人人人| 一二三四社区在线视频社区8| 大香蕉久久成人网| 日韩中文字幕视频在线看片| 亚洲 欧美一区二区三区| 亚洲精品成人av观看孕妇| 99re在线观看精品视频| 国产欧美日韩精品亚洲av| 电影成人av| 免费久久久久久久精品成人欧美视频| 美女福利国产在线| 久久久久久久大尺度免费视频| 久久久精品免费免费高清| 性色av乱码一区二区三区2| 99香蕉大伊视频| 看免费av毛片| 久久国产精品影院| 丝瓜视频免费看黄片| 岛国毛片在线播放| 天天操日日干夜夜撸| 免费在线观看黄色视频的| 日日夜夜操网爽| 精品福利观看| 人人妻,人人澡人人爽秒播| 国产精品九九99| 日韩中文字幕视频在线看片| 日韩免费av在线播放| 男女下面插进去视频免费观看| 50天的宝宝边吃奶边哭怎么回事| 亚洲伊人色综图| 中亚洲国语对白在线视频| 日韩一卡2卡3卡4卡2021年| 怎么达到女性高潮| 在线观看66精品国产| 涩涩av久久男人的天堂| 日韩熟女老妇一区二区性免费视频| 亚洲色图 男人天堂 中文字幕| 淫妇啪啪啪对白视频| 亚洲熟女毛片儿| 久久亚洲精品不卡| 天天操日日干夜夜撸| 一级片'在线观看视频| 中文字幕精品免费在线观看视频| 无遮挡黄片免费观看| 老司机影院毛片| 桃红色精品国产亚洲av| 午夜成年电影在线免费观看| 黄色视频在线播放观看不卡| 国产精品久久久av美女十八| av有码第一页| 精品熟女少妇八av免费久了| 黄片播放在线免费| 水蜜桃什么品种好| 精品人妻在线不人妻| 69av精品久久久久久 | 欧美+亚洲+日韩+国产| av有码第一页| 亚洲天堂av无毛| 日日夜夜操网爽| 亚洲 国产 在线| 中文字幕人妻丝袜一区二区| 汤姆久久久久久久影院中文字幕| 成人永久免费在线观看视频 | 纵有疾风起免费观看全集完整版| 成人国语在线视频| 亚洲午夜理论影院| 国产野战对白在线观看| 精品国产一区二区三区久久久樱花| 久久久久久亚洲精品国产蜜桃av| 国产成+人综合+亚洲专区| 国产成人系列免费观看| 18禁美女被吸乳视频| 久久久久国产一级毛片高清牌| 亚洲中文日韩欧美视频| 久久人人97超碰香蕉20202| 午夜福利免费观看在线| 桃花免费在线播放| 曰老女人黄片| 日韩欧美三级三区| 日本一区二区免费在线视频| 亚洲精品av麻豆狂野| 亚洲伊人色综图| 狠狠婷婷综合久久久久久88av| 一区二区av电影网| 亚洲av成人一区二区三| 午夜福利视频在线观看免费| cao死你这个sao货| 国产成人欧美在线观看 | 咕卡用的链子| 亚洲国产毛片av蜜桃av| 欧美在线一区亚洲| 黑人猛操日本美女一级片| 一区二区三区激情视频| av有码第一页| av片东京热男人的天堂| 一区二区三区乱码不卡18| 丁香六月天网| 国产成人精品无人区| 国产男女内射视频| 国产精品1区2区在线观看. | 老司机靠b影院| 岛国毛片在线播放| 操美女的视频在线观看| 夜夜骑夜夜射夜夜干| h视频一区二区三区| 视频在线观看一区二区三区| 国产人伦9x9x在线观看| 黄色 视频免费看| 亚洲七黄色美女视频| svipshipincom国产片| 国产亚洲一区二区精品| 国产在线免费精品| 夜夜夜夜夜久久久久| 亚洲va日本ⅴa欧美va伊人久久| 在线观看免费视频网站a站| 欧美日韩成人在线一区二区| 国产成人av激情在线播放| 日韩制服丝袜自拍偷拍| 国产有黄有色有爽视频| www.精华液| 999久久久精品免费观看国产| 国产三级黄色录像| 色婷婷av一区二区三区视频| 欧美 亚洲 国产 日韩一| 国产不卡一卡二| 久久精品亚洲av国产电影网| 日日摸夜夜添夜夜添小说| 欧美日韩亚洲高清精品| 99国产精品免费福利视频| 午夜精品久久久久久毛片777| 少妇猛男粗大的猛烈进出视频| 国产男靠女视频免费网站| 久久久久久久精品吃奶| 中文字幕最新亚洲高清| 亚洲中文字幕日韩| 日韩视频一区二区在线观看| 国产亚洲午夜精品一区二区久久| 老汉色∧v一级毛片| 国产av精品麻豆| 国产精品 欧美亚洲| 久久精品国产a三级三级三级| 久久精品国产亚洲av高清一级| 最新美女视频免费是黄的| 嫩草影视91久久| 老鸭窝网址在线观看| 精品一区二区三区av网在线观看 | 亚洲中文av在线| 一本色道久久久久久精品综合| 不卡av一区二区三区| 热99久久久久精品小说推荐| 亚洲一卡2卡3卡4卡5卡精品中文| 丰满少妇做爰视频| h视频一区二区三区| 波多野结衣一区麻豆| 午夜91福利影院| av视频免费观看在线观看| 嫁个100分男人电影在线观看| 在线观看免费高清a一片| 国产精品久久久av美女十八| 国产成人影院久久av| 亚洲中文日韩欧美视频| 免费少妇av软件| 黄片大片在线免费观看| 精品卡一卡二卡四卡免费| 日韩欧美一区二区三区在线观看 | 国产免费福利视频在线观看| 淫妇啪啪啪对白视频| 欧美av亚洲av综合av国产av| 在线观看免费日韩欧美大片| 香蕉久久夜色| 欧美黑人欧美精品刺激| 在线av久久热| 午夜视频精品福利| 久久久久久久久久久久大奶| 午夜免费鲁丝| 精品国产一区二区三区四区第35| 香蕉国产在线看| 成人永久免费在线观看视频 | 法律面前人人平等表现在哪些方面| 999精品在线视频| 中文字幕另类日韩欧美亚洲嫩草| 国产日韩一区二区三区精品不卡| 999久久久国产精品视频| 69av精品久久久久久 | 99在线人妻在线中文字幕 | 香蕉国产在线看| 午夜免费鲁丝| 免费在线观看影片大全网站| 老司机影院毛片| 亚洲精品国产色婷婷电影| 亚洲精品国产区一区二| 久久精品国产亚洲av高清一级| 丰满迷人的少妇在线观看| 日本五十路高清| 欧美乱妇无乱码| 成人永久免费在线观看视频 | 69精品国产乱码久久久| 免费日韩欧美在线观看| 成人国产一区最新在线观看| 一级片免费观看大全| 国产精品电影一区二区三区 | 午夜福利,免费看| 两人在一起打扑克的视频| 丰满饥渴人妻一区二区三| 男女之事视频高清在线观看| 脱女人内裤的视频| 久久毛片免费看一区二区三区| 首页视频小说图片口味搜索| 激情视频va一区二区三区| 老司机午夜福利在线观看视频 | 国产精品久久久av美女十八| 国产黄色免费在线视频| netflix在线观看网站| 热99久久久久精品小说推荐| 日本撒尿小便嘘嘘汇集6| 国产精品1区2区在线观看. | 亚洲美女黄片视频| 在线观看免费日韩欧美大片| 我要看黄色一级片免费的| 男女床上黄色一级片免费看| 欧美一级毛片孕妇| 欧美日韩亚洲高清精品| av超薄肉色丝袜交足视频| 男男h啪啪无遮挡| 国产一卡二卡三卡精品| 成年女人毛片免费观看观看9 | 丁香六月欧美| 久久狼人影院| 18禁黄网站禁片午夜丰满| 女同久久另类99精品国产91| 国内毛片毛片毛片毛片毛片| 久久午夜综合久久蜜桃| 国产xxxxx性猛交| 精品国产一区二区久久| 成年版毛片免费区| 亚洲精品美女久久av网站| 亚洲天堂av无毛| 久久 成人 亚洲| 国产精品免费一区二区三区在线 | 午夜福利乱码中文字幕| 人人妻人人澡人人看| 一区二区三区激情视频| 国产福利在线免费观看视频| 热re99久久国产66热| 欧美午夜高清在线| 热99re8久久精品国产| 亚洲欧美激情在线| 狠狠狠狠99中文字幕| 国产av国产精品国产| 国产成人系列免费观看| 久久久国产成人免费| 久热爱精品视频在线9| 日韩欧美免费精品| 热re99久久国产66热| 人人妻人人爽人人添夜夜欢视频| 婷婷丁香在线五月| 国产欧美日韩一区二区三区在线| 色精品久久人妻99蜜桃| 高清欧美精品videossex| 成人免费观看视频高清| 久久影院123| 日韩视频在线欧美| 美女主播在线视频| 国产日韩欧美视频二区| 99国产精品一区二区蜜桃av | 一本大道久久a久久精品| 91成年电影在线观看| 9191精品国产免费久久| 亚洲一码二码三码区别大吗| 日韩一区二区三区影片| 久9热在线精品视频| 韩国精品一区二区三区| 在线av久久热| 精品一品国产午夜福利视频| 久久久久精品国产欧美久久久| 亚洲,欧美精品.| 精品高清国产在线一区| 国产伦人伦偷精品视频| 午夜激情av网站| 国产精品偷伦视频观看了| 伊人久久大香线蕉亚洲五| 久久久久视频综合| 在线永久观看黄色视频| 人人妻人人添人人爽欧美一区卜| 亚洲av电影在线进入| 777久久人妻少妇嫩草av网站| tocl精华| 精品亚洲成a人片在线观看| 高清av免费在线| 宅男免费午夜| 91精品国产国语对白视频| 国产精品av久久久久免费| 国产精品99久久99久久久不卡| 国产欧美日韩一区二区精品| 涩涩av久久男人的天堂| 人人妻人人澡人人看| 日韩免费av在线播放| 亚洲av日韩精品久久久久久密| 精品免费久久久久久久清纯 | 狂野欧美激情性xxxx| 亚洲熟女毛片儿| 国产精品 国内视频| 国产成人av激情在线播放| 精品人妻在线不人妻| av又黄又爽大尺度在线免费看| 欧美+亚洲+日韩+国产| 久久久久久久久久久久大奶| 久久人妻av系列| 黑人巨大精品欧美一区二区蜜桃| 啪啪无遮挡十八禁网站| 在线观看舔阴道视频| 午夜福利,免费看| 亚洲综合色网址| 精品人妻1区二区| 麻豆国产av国片精品| 亚洲色图av天堂| 99re6热这里在线精品视频| 国产麻豆69| 国产精品一区二区精品视频观看| 国产免费现黄频在线看| 色尼玛亚洲综合影院| 亚洲欧美色中文字幕在线| 亚洲色图 男人天堂 中文字幕| 老司机在亚洲福利影院| 视频区欧美日本亚洲| 啦啦啦视频在线资源免费观看| 中文字幕人妻丝袜一区二区| 国产精品免费大片| 国产精品久久久av美女十八| 99久久精品国产亚洲精品| 久久久久久久大尺度免费视频| 精品国产乱码久久久久久小说| 狠狠精品人妻久久久久久综合| 别揉我奶头~嗯~啊~动态视频| 伊人久久大香线蕉亚洲五| 亚洲国产av新网站| 国产亚洲精品第一综合不卡| 国产精品亚洲av一区麻豆| 国产日韩欧美在线精品| av网站在线播放免费| avwww免费| 久久久久精品国产欧美久久久| 18禁国产床啪视频网站| 制服人妻中文乱码| 99精品欧美一区二区三区四区| 精品国产乱子伦一区二区三区| 精品少妇黑人巨大在线播放| 国产av国产精品国产| videosex国产| 国产成人精品久久二区二区免费| 90打野战视频偷拍视频| 色婷婷久久久亚洲欧美| 69精品国产乱码久久久| 国产精品香港三级国产av潘金莲| 精品少妇内射三级| 丝袜人妻中文字幕| 精品亚洲成国产av| 啦啦啦中文免费视频观看日本| 纵有疾风起免费观看全集完整版| 999久久久国产精品视频| 高清在线国产一区| 国产av精品麻豆| 亚洲成人免费电影在线观看| 久久久久国产一级毛片高清牌| 老汉色av国产亚洲站长工具| 美女国产高潮福利片在线看| 国产麻豆69| 亚洲成人国产一区在线观看| 国产精品熟女久久久久浪| 午夜精品久久久久久毛片777| 欧美在线黄色| 91精品国产国语对白视频| 99riav亚洲国产免费| 免费看a级黄色片| 成人影院久久| 日韩视频一区二区在线观看| 国产视频一区二区在线看| e午夜精品久久久久久久| 一二三四社区在线视频社区8| 亚洲一区中文字幕在线| 99久久国产精品久久久| 两个人免费观看高清视频| 精品少妇内射三级| 嫁个100分男人电影在线观看| 国产精品麻豆人妻色哟哟久久| 欧美久久黑人一区二区| 免费观看av网站的网址| 欧美日韩亚洲高清精品| 亚洲国产中文字幕在线视频| 免费高清在线观看日韩| 一边摸一边做爽爽视频免费| 欧美成人免费av一区二区三区 | 久久精品国产a三级三级三级| 国产97色在线日韩免费| 亚洲美女黄片视频| 日韩中文字幕视频在线看片|