網(wǎng)頁測試路徑的選擇方法和裝置制造方法
【專利摘要】本發(fā)明涉及網(wǎng)頁測試,其公開了一種網(wǎng)頁測試路徑的選擇方法和裝置,該方法包括:將當(dāng)前網(wǎng)頁分成塊;通過對用戶關(guān)注的塊中包含的代表性交互元素進(jìn)行操作進(jìn)入下一網(wǎng)頁;對下一網(wǎng)頁迭代執(zhí)行上述步驟,直到進(jìn)入結(jié)束網(wǎng)頁;記錄從起始網(wǎng)頁至結(jié)束網(wǎng)頁的網(wǎng)頁測試路徑;確定所述網(wǎng)頁測試路徑的重要程度并根據(jù)所述重要程度選擇要測試的網(wǎng)頁測試路徑。該方法和裝置能夠在有限的資源條件下使網(wǎng)頁測試人員高效地完成系統(tǒng)測試任務(wù)。
【專利說明】網(wǎng)頁測試路徑的選擇方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)頁測試,更具體地,涉及一種網(wǎng)頁測試路徑的選擇方法和裝置。
【背景技術(shù)】
[0002]隨著網(wǎng)頁技術(shù)的快速發(fā)展,越來越多的網(wǎng)頁應(yīng)用被開發(fā)和部署,其中應(yīng)用較為廣泛的技術(shù)是Web 2.0和HTML5,為了保證網(wǎng)頁應(yīng)用的正確性和準(zhǔn)確性,網(wǎng)頁的自動化測試技術(shù)越來越重要。為了提高測試效率,目前已經(jīng)出現(xiàn)了多種進(jìn)行自動化測試的工具,在使用這些自動化測試工具進(jìn)行網(wǎng)頁測試時,通常在自動化測試工具的錄制模式下,由測試者對被測試的網(wǎng)頁應(yīng)用執(zhí)行一系列的操作動作。在這個過程中,自動化測試工具將根據(jù)測試者執(zhí)行的動作自動地錄制測試腳本,測試者使用測試工具回放操作步驟。
[0003]然而,由于資源和時間的限制,網(wǎng)頁測試人員實際上不可能在每一次測試中都進(jìn)行全面測試,其結(jié)果很可能漏掉一些重大的系統(tǒng)漏洞(Test hole),嚴(yán)重影響網(wǎng)頁應(yīng)用的質(zhì)量,隨著ASP、JSP、CSS以及JavaScript應(yīng)用到Web技術(shù)中,Web網(wǎng)頁是動態(tài)變化的,窮舉測試(exhaustive test)是不可能的,測試覆蓋率(test coverage)通常依賴于網(wǎng)頁測試人員的經(jīng)驗和知識。增加測試覆蓋率需要耗費(fèi)大量的人力和時間,目前的工具不支持測試路徑識別和在有限的資源和時間條件下最大化測試覆蓋率。
[0004]因此,需要一種技術(shù)方案,能夠在有限的資源條件下使網(wǎng)頁測試人員高效地完成系統(tǒng)測試任務(wù)。
【發(fā)明內(nèi)容】
[0005]根據(jù)本發(fā)明的一個方面,提供了一種網(wǎng)頁測試路徑的選擇方法,包括:根將當(dāng)前網(wǎng)頁分成塊;通過對用戶關(guān)注的塊中包含的代表性交互元素進(jìn)行操作進(jìn)入下一網(wǎng)頁;對下一網(wǎng)頁迭代執(zhí)行上述步驟,直到進(jìn)入結(jié)束網(wǎng)頁;記錄從起始網(wǎng)頁至結(jié)束網(wǎng)頁的網(wǎng)頁測試路徑;確定所述網(wǎng)頁測試路徑的重要程度并根據(jù)所述重要程度選擇要測試的網(wǎng)頁測試路徑。
[0006]根據(jù)本發(fā)明的另一個方面,提供了一種網(wǎng)頁測試路徑的選擇裝置,包括:分塊模塊,被配置為將當(dāng)前網(wǎng)頁分成塊,對用戶關(guān)注的塊中包含的代表性交互元素進(jìn)行操作進(jìn)入下一網(wǎng)頁,對下一網(wǎng)頁迭代執(zhí)行上述步驟,直到進(jìn)入結(jié)束網(wǎng)頁;記錄模塊,被配置為記錄從起始網(wǎng)頁至結(jié)束網(wǎng)頁的網(wǎng)頁測試路徑;測試路徑選擇模塊,被配置為確定所述網(wǎng)頁測試路徑的重要程度并根據(jù)所述重要程度選擇要測試的網(wǎng)頁測試路徑。
[0007]根據(jù)本發(fā)明實施例的網(wǎng)頁測試路徑的選擇方法和裝置,能夠在有限的資源條件下使網(wǎng)頁測試人員高效地完成系統(tǒng)測試任務(wù)。
【專利附圖】
【附圖說明】
[0008]通過結(jié)合附圖對本公開示例性實施方式進(jìn)行更詳細(xì)的描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標(biāo)號通常代表相同部件。[0009]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機(jī)系統(tǒng)/服務(wù)器12的框圖。
[0010]圖2示出根據(jù)本發(fā)明實施例的網(wǎng)頁測試路徑的選擇方法;
[0011]圖3示出本發(fā)明的一個選擇網(wǎng)頁測試路徑的實施例;
[0012]圖4示出本發(fā)明實施例的網(wǎng)頁狀態(tài)遷移圖;以及
[0013]圖5示出根據(jù)本發(fā)明一個實施例的網(wǎng)頁測試路徑的選擇裝置500。
【具體實施方式】
[0014]下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0015]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機(jī)程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機(jī)可讀介質(zhì)中的計算機(jī)程序產(chǎn)品的形式,該計算機(jī)可讀介質(zhì)中包含計算機(jī)可讀的程序代碼。
[0016]可以采用一個或多個計算機(jī)可讀的介質(zhì)的任意組合。計算機(jī)可讀介質(zhì)可以是計算機(jī)可讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機(jī)磁盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0017]計算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機(jī)可讀的信號介質(zhì)還可以是計算機(jī)可讀存儲介質(zhì)以外的任何計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0018]計算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0019]可以以一種或多種程序設(shè)計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機(jī)程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設(shè)計語言諸如”C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機(jī)上執(zhí)行、部分地在用戶計算機(jī)上執(zhí)行、作為一個獨(dú)立的軟件包執(zhí)行、部分在用戶計算機(jī)上部分在遠(yuǎn)程計算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算機(jī)的情形中,遠(yuǎn)程計算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機(jī),或者,可以連接到外部計算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0020]下面將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機(jī)程序指令實現(xiàn)。這些計算機(jī)程序指令可以提供給通用計算機(jī)、專用計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,這些計算機(jī)程序指令通過計算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0021]也可以把這些計算機(jī)程序指令存儲在能使得計算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計算機(jī)可讀介質(zhì)中,這樣,存儲在計算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。
[0022]也可以把計算機(jī)程序指令加載到計算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機(jī)實現(xiàn)的過程,從而使得在計算機(jī)或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0023]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機(jī)系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計算機(jī)系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實施例的功能和使用范圍帶來任何限制。
[0024]如圖1所示,計算機(jī)系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0025]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0026]計算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計算機(jī)系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動的和不可移動的介質(zhì)。
[0027]系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲器(RAM)30和/或高速緩存存儲器32。計算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其它可移動/不可移動的、易失性/非易失性計算機(jī)系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施例的功能。
[0028]具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實施例中的功能和/或方法。
[0029]計算機(jī)系統(tǒng)/服務(wù)器12也可以與一個或多個外部設(shè)備14 (例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機(jī)系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計算機(jī)系統(tǒng)/服務(wù)器12能與一個或多個其它計算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22進(jìn)行。并且,計算機(jī)系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與計算機(jī)系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合計算機(jī)系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。
[0030]圖2示出根據(jù)本發(fā)明實施例的網(wǎng)頁測試路徑的選擇方法,包括:在步驟S201,將當(dāng)前網(wǎng)頁分成塊,例如,根據(jù)當(dāng)前網(wǎng)頁的可視化特征進(jìn)行分塊;在步驟S202,通過對用戶關(guān)注的塊中包含的代表性交互元素進(jìn)行操作進(jìn)入下一網(wǎng)頁;在步驟S203,對下一網(wǎng)頁迭代執(zhí)行上述步驟,直到進(jìn)入結(jié)束網(wǎng)頁;在步驟S204,記錄從起始網(wǎng)頁至結(jié)束網(wǎng)頁的網(wǎng)頁測試路徑;在步驟S205,確定所述網(wǎng)頁測試路徑的重要程度并根據(jù)所述重要程度選擇要測試的網(wǎng)頁測試路徑。
[0031]在步驟S201,將當(dāng)前網(wǎng)頁分成塊,可以根據(jù)當(dāng)前網(wǎng)頁的DOM樹的結(jié)構(gòu)進(jìn)行分塊,目前應(yīng)用比較廣泛的是微軟提出的一種基于視覺特征的Web網(wǎng)頁分塊算法VIPS (Vision-based Page Segmentation Algorithm),它利用 Web 網(wǎng)頁的視覺特征如背景顏色、字體顏色和大小、邊框、邏輯塊和邏輯塊之間的距離等,結(jié)合DOM樹進(jìn)行網(wǎng)頁語義分塊,VIPS算法主要包含三個步驟:網(wǎng)頁塊提取,分隔條提取以及語義塊重構(gòu),它首先從DOM樹中提取出所有的合適的網(wǎng)頁塊,然后根據(jù)這些網(wǎng)頁塊檢測出它們之間的所有的分割條,包括水平方向和垂直方向的分割條,最后基于這些分割條,Web網(wǎng)頁的語義結(jié)構(gòu)將被重新構(gòu)建。對于每一個語義塊又可以使用VIPS算法繼續(xù)分割為更小的語義塊。
[0032]網(wǎng)頁首先被分割為幾個比較大的語義塊,同時記錄這幾個語義塊所組成的層次結(jié)構(gòu)。對于檢測出來的每一個大的語義塊又可以繼續(xù)分塊,直到語義塊的相干度DOCXDegreeof Coherence)值達(dá)到預(yù)先設(shè)定的允許相干度 F1DOC (Permitted Degree of coherence)值為止。在每次迭代循環(huán)中,當(dāng)前邏輯塊的DOM樹結(jié)構(gòu)以及它的視覺信息都將被獲取。然后,從DOM樹的根節(jié)點(diǎn)開始,邏輯塊檢測過程將基于視覺信息開始從DOM樹中開始檢測網(wǎng)頁塊。每一個DOM節(jié)點(diǎn)都會被檢查它能夠構(gòu)成一個單獨(dú)的網(wǎng)頁塊。如果不能,那么它的子節(jié)點(diǎn)將被執(zhí)行同樣的檢查。對于每一個提取出來的網(wǎng)頁塊,都會根據(jù)當(dāng)前網(wǎng)頁塊的內(nèi)部可視屬性賦予一個DOC值。當(dāng)本次迭代過程中所有的網(wǎng)頁塊都被檢測出來之后,它們將被保存到網(wǎng)頁池中。基于這些網(wǎng)頁塊,分隔條檢測過程將開始工作。這些網(wǎng)頁塊之間的所有水平分隔條和垂直分隔條最終將被識別出來并且賦予一定的寬度和高度?;谶@些分隔條,重新構(gòu)建網(wǎng)頁的布局層次,一些網(wǎng)頁塊將被合并,形成語義塊。最終,本次迭代過程中的所有語義塊都將被檢測出來。
[0033]迭代過程中是否需要繼續(xù)進(jìn)行取決于本層次的語義塊中是否存在DOC值小于rooc的語義塊。對于那些DOO=PDOC的語義塊,分隔過程將停止,否則分隔過程繼續(xù)。當(dāng)所有的語義塊被提取出來后,最終整個網(wǎng)頁的基于視覺特征的分塊過程完成。
[0034]本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,對當(dāng)前網(wǎng)頁進(jìn)行分塊可以有多種實現(xiàn)方式,本發(fā)明不對其作出任何限定,只要實現(xiàn)了對當(dāng)前網(wǎng)頁的分塊,即落入本發(fā)明的保護(hù)范圍。
[0035]在步驟S202,通過對用戶關(guān)注的塊中包含的代表性交互元素進(jìn)行操作進(jìn)入下一網(wǎng)頁,用戶可以在網(wǎng)頁的塊中根據(jù)需要選擇關(guān)注的塊,網(wǎng)頁的每個塊中包括至少一個交互元素,有的塊中甚至包括幾十個交互元素,交互元素包括超鏈接、交互表單、按鈕、用戶注冊表、文件上傳域以及文本域,根據(jù)本發(fā)明的實施例,進(jìn)一步包括:識別用戶關(guān)注的塊中包含的交互元素;根據(jù)交互元素的目標(biāo)對象對交互元素進(jìn)行分類;將目標(biāo)對象相似的交互元素視為同一類交互元素,例如,如果兩個或多個交互元素的目標(biāo)對象是相似的跳轉(zhuǎn)網(wǎng)頁,即跳轉(zhuǎn)網(wǎng)頁具有相似的網(wǎng)頁模板或網(wǎng)頁地址,則可以將兩個或多個交互元素歸為一類交互元素;從同一類交互元素中隨機(jī)選出至少一個交互元素作為代表性交互元素。根據(jù)本發(fā)明的實施例,進(jìn)一步包括:記錄對代表性交互元素進(jìn)行的操作;根據(jù)已記錄的操作生成網(wǎng)頁測試腳本,用于將來回放。
[0036]在步驟S203,對下一網(wǎng)頁迭代執(zhí)行上述步驟,直到進(jìn)入結(jié)束網(wǎng)頁,即對下一網(wǎng)頁繼續(xù)基于可視化的特征進(jìn)行分塊,并對塊中包含的代表性交互元素進(jìn)行操作,進(jìn)入下一網(wǎng)頁,如此循環(huán)往復(fù),直到進(jìn)入結(jié)束網(wǎng)頁。
[0037]在步驟S204,記錄從起始網(wǎng)頁至結(jié)束網(wǎng)頁的網(wǎng)頁測試路徑,用戶通過選擇網(wǎng)頁中關(guān)注的塊,最終獲得其關(guān)注的網(wǎng)頁測試路徑,根據(jù)本發(fā)明的實施例,用戶可以選擇網(wǎng)頁中全部的塊、部分的塊,也可以由系統(tǒng)自動選擇。根據(jù)本發(fā)明的實施例,進(jìn)一步包括:記錄所述網(wǎng)頁測試路徑的狀態(tài)遷移,并且將狀態(tài)遷移保存為狀態(tài)遷移圖。用戶可以通過手工修改狀態(tài)遷移圖來改變或移除一些測試路徑或者輸入數(shù)據(jù)。通過塊中的代表性交互元素訪問下一網(wǎng)頁,由于選取的代表性交互元素能夠代表目標(biāo)對象相似的一類交互元素,因此無需遍歷全部交互元素去查找網(wǎng)頁測試路徑,簡化了網(wǎng)頁測試路徑的查找過程,同時最大化網(wǎng)頁測試路徑的覆蓋率,不會遺漏選擇范圍內(nèi)的任何網(wǎng)絡(luò)測試路徑。
[0038]在步驟S205,確定所述網(wǎng)頁測試路徑的重要程度并根據(jù)所述重要程度選擇要測試的網(wǎng)頁測試路徑,根據(jù)本發(fā)明的實施例,確定網(wǎng)頁測試路徑中包括的網(wǎng)頁的重要程度,根據(jù)網(wǎng)頁測試路徑中包括的網(wǎng)頁的重要程度確定網(wǎng)頁測試路徑的重要程度,其中確定網(wǎng)頁測試路徑中包括的網(wǎng)頁的重要程度包括:確定用戶關(guān)注的塊的重要程度;根據(jù)用戶關(guān)注的塊的重要程度確定通過用戶關(guān)注的塊中包含的代表性交互元素訪問的網(wǎng)頁的重要程度。其中用戶關(guān)注的塊的重要程度與以下至少其中之一相關(guān):塊的大小、塊的位置、塊的功能、塊的訪問頻率以及塊的出錯頻率,根據(jù)以上因素設(shè)定權(quán)值計算規(guī)則,計算網(wǎng)頁中的每個塊的權(quán)值。在有限的資源條件下,可以優(yōu)先選擇重要程度高的網(wǎng)絡(luò)測試路徑進(jìn)行測試,從而提高網(wǎng)絡(luò)測試人員的測試效率。
[0039]圖3示出本發(fā)明的一個選擇網(wǎng)頁測試路徑的實施例,用戶通過URLl進(jìn)入網(wǎng)頁1,根據(jù)網(wǎng)頁I的可視化特征將網(wǎng)頁I分成5塊,用戶選擇塊2作為關(guān)注的塊,在塊2中識別出代表性交互元素為登錄框,輸入用戶ID和密碼進(jìn)行登錄,如果登錄失敗,則進(jìn)入網(wǎng)頁2,網(wǎng)頁2為結(jié)束網(wǎng)頁,如果登錄成功,則進(jìn)入網(wǎng)頁3,根據(jù)網(wǎng)頁3的可視化特征將網(wǎng)頁3分為4塊,用戶選擇塊3作為關(guān)注的塊,在塊3中識別出代表性交互元素為URL2和URL3,點(diǎn)擊URL2進(jìn)入網(wǎng)頁4,點(diǎn)擊URL3進(jìn)入網(wǎng)頁5,網(wǎng)頁4和網(wǎng)頁5均為結(jié)束網(wǎng)頁,圖4示出本發(fā)明實施例的網(wǎng)頁狀態(tài)遷移圖,識別出網(wǎng)頁測試路徑為:
[0040]網(wǎng)頁測試路徑1:網(wǎng)頁I一〉網(wǎng)頁2 ;
[0041 ] 網(wǎng)頁測試路徑2:網(wǎng)頁I一〉網(wǎng)頁3—〉網(wǎng)頁4 ;
[0042]網(wǎng)頁測試路徑3:網(wǎng)頁I —〉網(wǎng)頁3 —〉網(wǎng)頁5
[0043]根據(jù)本發(fā)明的實施例,為網(wǎng)頁I和網(wǎng)頁3中的塊的權(quán)重設(shè)定一個簡單的規(guī)則,Weight (塊)=塊的大小*W (塊的位置),其中塊的大小是指塊占整個網(wǎng)頁的比例,塊的大小可以通過DOM API獲得,塊越大,權(quán)值越大。W (塊的位置)是塊的位置的權(quán)重,把網(wǎng)頁分成不同的區(qū)域,不同區(qū)域賦予不同的權(quán)值,一個塊落在哪個區(qū)域,就取得相應(yīng)的權(quán)值。表1示出網(wǎng)頁I的塊的權(quán)值,表2示出網(wǎng)頁2的塊的權(quán)值。
[0044]表1網(wǎng)頁I的塊的權(quán)值
[0045]
【權(quán)利要求】
1.一種網(wǎng)頁測試路徑的選擇方法,包括: 將當(dāng)前網(wǎng)頁分成塊; 通過對用戶關(guān)注的塊中包含的代表性交互元素進(jìn)行操作進(jìn)入下一網(wǎng)頁; 對下一網(wǎng)頁迭代執(zhí)行上述步驟,直到進(jìn)入結(jié)束網(wǎng)頁; 記錄從起始網(wǎng)頁至結(jié)束網(wǎng)頁的網(wǎng)頁測試路徑; 確定所述網(wǎng)頁測試路徑的重要程度并根據(jù)所述重要程度選擇要測試的網(wǎng)頁測試路徑。
2.根據(jù)權(quán)利要求1所述的方法,其中對用戶關(guān)注的塊中包含的代表性交互元素進(jìn)行操作包括: 識別用戶關(guān)注的塊中包含的交互元素; 根據(jù)交互元素的目標(biāo)對象對交互元素進(jìn)行分類,將目標(biāo)對象相似的交互元素視為同一類交互元素; 從同一類交互元素中隨機(jī)選出至少一個交互元素作為代表性交互元素。
3.根據(jù)權(quán)利要求1或2所述的方法,其中確定所述網(wǎng)頁測試路徑的重要程度包括: 確定網(wǎng)頁測試路徑中包括的網(wǎng)頁的重要程度; 根據(jù)網(wǎng)頁測試路徑中包括的網(wǎng)頁的重要程度確定網(wǎng)頁測試路徑的重要程度。
4.根據(jù)權(quán)利要求3所述·的方法,其中確定網(wǎng)頁測試路徑中包括的網(wǎng)頁的重要程度包括: 確定用戶關(guān)注的塊的重要程度; 根據(jù)用戶關(guān)注的塊的重要程度確定通過用戶關(guān)注的塊中包含的代表性交互元素訪問的網(wǎng)頁的重要程度。
5.根據(jù)權(quán)利要求4所述的方法,其中用戶關(guān)注的塊的重要程度與至少以下其中之一相關(guān):塊的大小、塊的位置、塊的訪問頻率以及塊的出錯頻率。
6.根據(jù)權(quán)利要求1所述的方法,其中通過對用戶關(guān)注的塊中包含的代表性交互元素進(jìn)行操作來訪問下一網(wǎng)頁包括: 記錄對代表性交互元素進(jìn)行的操作; 根據(jù)已記錄的操作生成網(wǎng)頁測試腳本。
7.根據(jù)權(quán)利要求1所述的方法,其中記錄從起始網(wǎng)頁至結(jié)束網(wǎng)頁的網(wǎng)頁測試路徑進(jìn)一步包括:記錄所述網(wǎng)頁測試路徑的狀態(tài)遷移,并且將狀態(tài)遷移保存為狀態(tài)遷移圖。
8.一種網(wǎng)頁測試路徑的選擇裝置,包括: 分塊模塊,被配置為將當(dāng)前網(wǎng)頁分成塊,對用戶關(guān)注的塊中包含的代表性交互元素進(jìn)行操作進(jìn)入下一網(wǎng)頁,對下一網(wǎng)頁迭代執(zhí)行上述操作,直到進(jìn)入結(jié)束網(wǎng)頁; 記錄模塊,被配置為記錄從起始網(wǎng)頁至結(jié)束網(wǎng)頁的網(wǎng)頁測試路徑; 測試路徑選擇模塊,被配置為確定所述網(wǎng)頁測試路徑的重要程度并根據(jù)所述重要程度選擇要測試的網(wǎng)頁測試路徑。
9.根據(jù)權(quán)利要求1所述的選擇裝置,其中分塊模塊包括: 識別模塊,被配置為識別用戶關(guān)注的塊中包含的交互元素; 分類模塊,被配置為根據(jù)交互元素的目標(biāo)對象對交互元素進(jìn)行分類,將目標(biāo)對象相似的交互元素視為同一類交互元素; 選擇模塊,被配置為從同一類交互元素中隨機(jī)選出至少一個交互元素作為代表性交互元素。
10.根據(jù)權(quán)利要求8或9所述的選擇裝置,其中測試路徑選擇模塊進(jìn)一步被配置為: 確定網(wǎng)頁測試路徑中包括的網(wǎng)頁的重要程度; 根據(jù)網(wǎng)頁測試路徑中包括的網(wǎng)頁的重要程度確定網(wǎng)頁測試路徑的重要程度。
11.根據(jù)權(quán)利要求3所述的選擇裝置,其中測試路徑選擇模塊進(jìn)一步被配置為: 確定用戶關(guān)注的塊的重要程度; 根據(jù)用戶關(guān)注的塊的重要程度確定通過用戶關(guān)注的塊中包含的代表性交互元素訪問的網(wǎng)頁的重要程度。
12.根據(jù)權(quán)利要求11所述的選擇裝置,其中用戶關(guān)注的塊的重要程度與至少以下其中之一相關(guān):塊的大小、塊的位置、塊的訪問頻率以及塊的出錯頻率。
13.根據(jù)權(quán)利要求8所述的選擇裝置,其中分塊模塊還包括: 操作記錄模塊,被配置為記錄對代表性交互元素進(jìn)行的操作; 測試腳本生成模塊,被配置為根據(jù)已記錄的操作生成網(wǎng)頁測試腳本。
14.根據(jù)權(quán)利要求8所述的選擇裝置,其中記錄模塊進(jìn)一步被配置為:記錄所述網(wǎng)頁測試路徑的狀態(tài)遷移,并且將·狀態(tài)遷移保存為狀態(tài)遷移圖。
【文檔編號】G06F11/36GK103853654SQ201210505507
【公開日】2014年6月11日 申請日期:2012年11月30日 優(yōu)先權(quán)日:2012年11月30日
【發(fā)明者】趙石頑, 王俊華, 李嘉林, 鄧佰臣, 馮慶華 申請人:國際商業(yè)機(jī)器公司