Figure 1: Overview of the CROSSCHECK Approach.
havior in the form of two navigation models, M1 and M2, one for
each browser. The crawling is performed in an identical fashion
under each browser, so as to exercise precisely the same set of userinteraction
sequences within the web application in both cases. The
second phase compares models M1 and M2 to check whether they
are equivalent and extract a set of model differences, which may
represent one or more potential XBIs. The third phase analyzes
this set of model differences and collates them into a set of XBIs,
which are then presented to the end-user.
The following sections present further details of these three phases.
3.1 Crawling and Model Capture
This phase explores the state-space of the web application under
test using an approach broadly based on CRAWLJAX [8, 10].
CRAWLJAX is a crawler capable of exercising client-side code, detecting
and executing doorways (clickables) to various dynamic
states of modern (AJAX -based) web applications. By firing events
on the user interface elements, and analyzing the effects on the dynamic
DOM tree in a real browser before and after the event, the
crawler incrementally builds a state machine capturing the states
of the user interface and the possible event-based transitions between
them. CRAWLJAX is fully configurable in terms of the type
of elements that should be examined or ignored during the crawling
process. (For more details about the architecture, algorithms, and
capabilities of CRAWLJAX , see Reference [8, 10].)
CROSSCHECK implements an observer module on top of the
core crawler. The observer captures and stores a finite-state navigation
model, M, of the behavior observed during the crawling.
The navigation model is comprised of a state graph, G, representing
the top-level structure of the navigation performed during the
crawling, as well as several pieces of data for each state of the state
graph. The state graph is a labelled directed graph in which a state
corresponds to an actual page that could be observed by an enduser
in a browser, and an edge represents an observed transition
between two states. Each edge is labelled by the user action (typically,
a click) and the element that caused the transition. For each
observed state s, and corresponding page p, the model records (1) a
screenshot of p, as observed in the web browser, (2) the underlying
DOM representation for p, and (3) the co-ordinates of the visual
representation of each DOM element of p within the browser. This
crawling and model capture is performed, on the target web application,
for each of the two browsers (Br1 and Br2), and the
corresponding navigation models (M1 and M2) are stored for subsequent
analysis.
3.2 Model Comparison
This phase compares models M1 and M2, captured in the previous
phase, for equality and records the observed differences between
them. These differences represent potential manifestations
of XBIs in the web application’s behavior and are used in the final
phase of the algorithm to identify a set of XBIs. The comparison
is performed in three steps, representing analyses at three different
levels of abstraction of the model.
3.2.1 Trace-level Comparison
This step compares state graphs G1 and G2 (of models M1 and
M2) for equivalence. To do so, it uses the graph isomorphism algorithm
for labelled directed graphs proposed in [9], which finds a
one-to-one mapping between both nodes and edges of G1 and G2.
The comparison produces two items: T and ScreenMatchList. T
is a list of those edges from G1 or G2 that could not be matched
to a corresponding edge in the other state graph—edges that denote
trace-level differences. ScreenMatchList is a list of matched screen
pairs (S
1
i
, S2
i ) (from G1 and G2, respectively) that is used in the
next step.
3.2.2 DOM Comparison of Matched Screen Pairs
This step iterates through the pairs of matched screens in ScreenMatchList
(previous step) and, for each such pair (S
1
i
, S2
i ), compares
the DOMs of the two screens for equality and produces
DomMatchListi as its output. DomMatchListi is a set of
pairs of matched DOM nodes, one for each pair of screens. Our
DOM matching algorithm largely follows the one proposed by us
in WEBDIFF (see Algorithm 1 in Reference [18] for details). The
key difference between the two algorithms is the computation of
the match index metric—a number between 0 and 1 that quanti-
fies the similarity between two DOM nodes. The higher the match
index, the higher the likelihood that the two DOM elements represent
the same element in the context of their respective screens.
Currently, we use the following formula for computing the match
index: Given two DOM nodes a and b,
MatchIndex = 0.7 × ∆X + 0.2 × ∆A + 0.1 × ∆P
where ∆X stands for XPath Distance, ∆A measures the difference
in attributes, and ∆P measures the difference in dynamic
properties queried from the DOM. The coeffic
รูปที่ 1: ภาพรวมของวิธีการ CROSSCHECKhavior ในรูปของสองรุ่นนำ M1 และ M2 สำหรับแต่ละเบราว์เซอร์ รวบรวมข้อมูลการดำเนินการในแฟชั่นเหมือนกันภายใต้แต่ละเบราว์เซอร์ เพื่อออกกำลังกายได้อย่างแม่นยำชุดเดียวกัน userinteractionลำดับภายในโปรแกรมประยุกต์เว็บในทั้งสองกรณี การระยะที่สองเปรียบเทียบรุ่น M1 และ M2 เพื่อตรวจสอบว่าพวกเขาจะเทียบเท่าและสารสกัดจากชุดของแบบจำลองความแตกต่าง ซึ่งอาจแสดงมากกว่า หนึ่ง XBIs อาจเกิดขึ้น วิเคราะห์ระยะที่สามชุดนี้ของรุ่นที่แตกต่าง และมติของที่ประชุมพวกเขาลงในชุดของ XBIsที่นำเสนอนั้นไปยังผู้ใช้ส่วนต่อไปปัจจุบันเพิ่มเติมรายละเอียดของขั้นตอนที่สามเหล่านี้3.1 จับภาพตระเวน และแบบขั้นตอนสำรวจพื้นที่สถานะของโปรแกรมประยุกต์เว็บภายใต้ทดสอบโดยใช้วิธีการอย่างกว้าง ๆ อิง CRAWLJAX [8, 10]CRAWLJAX เป็นตีนตะขาบที่สามารถออกกำลังกายด้านไคลเอ็นต์รหัส การตรวจจับและดำเนินการประตู (clickables) แบบต่าง ๆรัฐสมัยใหม่ (AJAX-คะแนน) เว็บแอปพลิเคชัน โดย firing กิจกรรมองค์ประกอบส่วนติดต่อผู้ใช้ และการวิเคราะห์ผลกระทบในแบบไดนามิกต้นไม้ DOM ในเบราว์เซอร์จริงก่อน และ หลัง เหตุการณ์ การตีนตะขาบแบบเพิ่มหน่วยสร้างเครื่องรัฐจับรัฐส่วนติดต่อผู้ใช้และเปลี่ยนตามเหตุการณ์ที่เป็นไปได้ระหว่างพวกเขา CRAWLJAX จะครบกำหนดในแง่ของชนิดองค์ประกอบที่ควรตรวจสอบ หรือถูกละเว้นในระหว่างการตระเวนกระบวนการ (รายละเอียดเพิ่มเติมเกี่ยวกับสถาปัตยกรรม อัลกอริทึม และความสามารถของ CRAWLJAX ดูอ้างอิง [8, 10])CROSSCHECK ใช้โมดูลการสังเกตการณ์จากการตีนตะขาบหลัก ผู้สังเกตจับ และเก็บนำเครื่องสถานะจำกัดนางแบบ M พฤติกรรมที่สังเกตในระหว่างการตระเวนแบบจำลองการนำทางประกอบด้วยรัฐกราฟ G แทนโครงสร้างระดับสูงสุดของการนำทางที่ดำเนินการในระหว่างการรวบรวมข้อมูล รวมทั้งชิ้นส่วนต่าง ๆ ของข้อมูลสำหรับแต่ละรัฐของรัฐกราฟ กราฟสถานะเป็นกราฟโดยตรงคำว่าที่รัฐสอดคล้องกับหน้าเป็นจริงที่สามารถสังเกตได้ โดยผู้ใช้ปลายทางในเบราว์เซอร์ ขอบแสดงการเปลี่ยนแปลงที่สังเกตได้ระหว่างสองสถานะ ขอบระบุว่า โดยการกระทำของผู้ใช้ (โดยทั่วไปคลิ) และองค์ประกอบที่เกิดจากการเปลี่ยนแปลง สำหรับแต่ละสังเกตสถานะ s และหน้าตรงกัน p ระเบียนแบบ (1) การภาพหน้าจอของ p เป็นที่สังเกตในเว็บเบราเซอร์, (2) ต้นแบบแสดงค่า p และ (3) จรรยาบรรณของร่างการแสดงของแต่ละองค์ประกอบ DOM ของ p ในเบราว์เซอร์ นี้เก็บรวบรวมข้อมูล และแบบจำลองจะทำการ ในโปรแกรมประยุกต์เว็บของเป้าหมายสำหรับแต่ละเบราว์เซอร์สอง (Br1 และ Br2), และนำทางตรงรุ่น (M1 และ M2) จะถูกเก็บไว้สำหรับการการวิเคราะห์3.2 เปรียบเทียบรุ่นขั้นตอนนี้เปรียบเทียบรุ่น M1 และ M2 บันทึกก่อนหน้าระยะ สำหรับความเสมอภาค และความแตกต่างที่สังเกตได้ระหว่างบันทึกพวกเขา ความแตกต่างเหล่านี้แสดงถึงอาการที่อาจเกิดขึ้นของ XBIs ในโปรแกรมประยุกต์เว็บลักษณะการทำงานและมีใช้ในรอบสุดท้ายขั้นตอนของอัลกอริทึมเพื่อระบุชุดของ XBIs การเปรียบเทียบดำเนินการในขั้นตอนที่สาม แสดงถึงการวิเคราะห์ที่แตกต่างกันสามระดับของนามธรรมของรูปแบบ3.2.1 เปรียบเทียบระดับการติดตามของขั้นตอนนี้เปรียบเทียบสถานะกราฟ G1 และ G2 (รุ่น M1 และM2) สำหรับเทียบเท่า การทำงาน จะใช้อัลกอริทึม isomorphism กราฟสำหรับคำว่ากราฟโดยตรงเสนอ [9], ซึ่งพบในการแมปแบบหนึ่งต่อหนึ่งระหว่างโหนและขอบของ G1 และ G2การเปรียบเทียบผลิตสินค้าสอง: T และ ScreenMatchList Tคือรายการของขอบที่จาก G1 G2 ที่ไม่ตรงขอบสอดคล้องในสถานะกราฟอื่น ๆ — ขอบที่ denoteความแตกต่างของระดับการติดตาม ScreenMatchList คือ รายการของหน้าจอตรงกันคู่ (S1ผม, S2i) (จาก G1 และ G2 ตามลำดับ) ที่ใช้ในการขั้นตอนต่อไปนี้3.2.2 เปรียบเทียบคู่ตรงหน้าจอ DOMขั้นตอนนี้มีการคำนวณซ้ำผ่านคู่ของหน้าจอตรงกันใน ScreenMatchList(ขั้นตอนก่อนหน้า) และ สำหรับแต่ละดังกล่าวคู่ (S1ผม, S2i) เปรียบเทียบDOMs ของหน้าจอสองสำหรับความเสมอภาคและการผลิตDomMatchListi เป็นผลลัพธ์ DomMatchListi เป็นชุดของคู่ของโหน DOM ตรงกัน หนึ่งสำหรับแต่ละคู่ของหน้าจอ ของเราอัลกอริทึมตรง DOM ดังนี้หนึ่งเสนอ โดยเราส่วนใหญ่ใน WEBDIFF (ดู 1 อัลกอริทึมในการอ้างอิง [18] สำหรับรายละเอียด) การความแตกต่างสำคัญระหว่างขั้นตอนวิธีที่สองคือ การคำนวณการวัดดัชนีการแข่งขัน — ตัวเลขระหว่าง 0 และ 1 ที่ quanti -fies ความเหมือนระหว่างสองโหน DOM การแข่งขันสูงดัชนี โอกาสที่แสดงองค์ประกอบ DOM สองสูงองค์ประกอบเดียวกันในบริบทของแต่ละหน้าจอเราใช้สูตรต่อไปนี้สำหรับการแข่งขันคอมพิวเตอร์ในปัจจุบันดัชนี: กำหนดโหน DOM สองตัว และ bMatchIndex = 0.7 × ∆X + 0.2 × ∆A + 0.1 ∆Pที่ ∆X ยืนระยะ XPath, ∆A วัดความแตกต่างแอตทริบิวต์ และ ∆P วัดความแตกต่างในแบบไดนามิกสอบถามจากในประเทศพัก Coeffic การ
การแปล กรุณารอสักครู่..

รูปที่ 1: ภาพรวมของวิธีการ crosscheck ได้.
havior ในรูปแบบของสองรุ่นนำทาง, M1 และ M2 หนึ่งสำหรับ
แต่ละเบราว์เซอร์ การรวบรวมข้อมูลที่จะดำเนินการในแฟชั่นเหมือนกัน
ในแต่ละเบราว์เซอร์เพื่อให้เป็นไปออกกำลังกายได้อย่างแม่นยำชุดเดียวกันของ userinteraction
ลำดับภายในโปรแกรมเว็บในทั้งสองกรณี
ระยะที่สองเปรียบเทียบรุ่น M1 และ M2 เพื่อตรวจสอบว่าพวกเขา
จะมีความเท่าเทียมและสารสกัดจากชุดของความแตกต่างของรูปแบบซึ่งอาจ
เป็นตัวแทนหนึ่งหรือมากกว่า XBIs ศักยภาพ ขั้นตอนที่สามการวิเคราะห์
ชุดของความแตกต่างของรูปแบบนี้และ collates พวกเขาเข้าไปในชุดของ XBIs ที่
ซึ่งจะถูกนำเสนอไปแล้วผู้ใช้ปลายทาง.
ส่วนต่อไปนี้รายละเอียดเพิ่มเติมในปัจจุบันของทั้งสามขั้นตอน.
3.1 การรวบรวมข้อมูลและรุ่นจับภาพ
ขั้นตอนนี้เป็นการศึกษาภาครัฐ พื้นที่ของโปรแกรมเว็บที่อยู่ภายใต้
การทดสอบโดยใช้วิธีการโดยกว้าง ๆ ตาม CRAWLJAX [8, 10].
CRAWLJAX เป็นโปรแกรมรวบรวมข้อมูลความสามารถในการออกกำลังกายรหัสฝั่งไคลเอ็นต์การตรวจสอบ
และดำเนินการประตู (clickables) แบบไดนามิกต่างๆ
รัฐสมัยใหม่ (อาแจ๊กเบส) การใช้งานเว็บ โดยการยิงเหตุการณ์
ในองค์ประกอบอินเตอร์เฟซผู้ใช้และการวิเคราะห์ผลกระทบต่อแบบไดนามิก
ต้นไม้ DOM ในเบราว์เซอร์ที่แท้จริงก่อนและหลังเหตุการณ์ที่
รวบรวมข้อมูลเพิ่มขึ้นสร้างเครื่องรัฐจับรัฐ
ของอินเตอร์เฟซผู้ใช้และที่เป็นไปได้เปลี่ยนเหตุการณ์ตามระหว่าง
พวกเขา CRAWLJAX กำหนดอย่างเต็มที่ในแง่ของชนิด
ขององค์ประกอบที่ควรจะตรวจสอบหรือละเว้นในระหว่างการรวบรวมข้อมูล
กระบวนการ (สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับสถาปัตยกรรมขั้นตอนวิธีการและ
ความสามารถของ CRAWLJAX โปรดดูข้อมูลอ้างอิง [8, 10].)
crosscheck ดำเนินโมดูลสังเกตการณ์อยู่ด้านบนของ
โปรแกรมรวบรวมข้อมูลหลัก ดังกล่าวจะรวบรวมสังเกตการณ์และร้านค้าการนำ finite-state
รุ่น, M, ของพฤติกรรมที่สังเกตได้ในระหว่างการรวบรวมข้อมูล.
โมเดลการนำประกอบด้วยกราฟรัฐ, G, ตัวแทน
โครงสร้างระดับบนสุดของการเดินเรือดำเนินการในระหว่างการ
รวบรวมข้อมูลเป็นอย่างดี เป็นหลายชิ้นของข้อมูลสำหรับรัฐของรัฐแต่ละ
กราฟ กราฟรัฐเป็นกราฟที่มีป้ายกำกับซึ่งเป็นรัฐที่
สอดคล้องกับหน้าเว็บจริงที่สามารถสังเกตได้โดย enduser
ในเบราว์เซอร์และขอบแสดงให้เห็นถึงการเปลี่ยนแปลงที่สังเกต
ระหว่างสองรัฐ แต่ละคนจะมีป้ายขอบโดยกระทำของผู้ใช้ (โดยทั่วไป
คลิก) และองค์ประกอบที่ทำให้เกิดการเปลี่ยนแปลง สำหรับแต่ละ
s สังเกตของรัฐและ P หน้าที่เกี่ยวข้องบันทึกรูปแบบ (1)
ภาพหน้าจอของ P เป็นที่สังเกตได้ในเว็บเบราว์เซอร์ (2) ที่อยู่ภายใต้
การเป็นตัวแทน DOM สำหรับ P, และ (3) พิกัดของภาพ
เป็นตัวแทนของแต่ละองค์ประกอบ DOM ของ P ภายในเบราว์เซอร์ นี้
การรวบรวมข้อมูลและรูปแบบการจับจะดำเนินการบนโปรแกรมเว็บเป้าหมาย
สำหรับแต่ละของทั้งสองเบราว์เซอร์ (BR1 และ BR2) และ
ใช้แบบจำลองระบบนำทาง (M1 และ M2) จะถูกเก็บไว้ที่ตามมา
วิเคราะห์.
3.2 เปรียบเทียบรูปแบบ
ขั้นตอนนี้จะเปรียบเทียบรุ่น M1 และ M2, บันทึกในก่อนหน้า
เฟสเพื่อความเท่าเทียมกันและมีการบันทึกการสังเกตความแตกต่างระหว่าง
พวกเขา ความแตกต่างเหล่านี้เป็นตัวแทนสำแดงศักยภาพ
ของ XBIs ในพฤติกรรมการใช้เว็บของและถูกนำมาใช้ในขั้นสุดท้าย
ขั้นตอนของอัลกอริทึมในการระบุชุดของ XBIs การเปรียบเทียบ
จะดำเนินการในขั้นตอนที่สามเป็นตัวแทนของการวิเคราะห์ที่แตกต่างกันสาม
ระดับของนามธรรมของรูปแบบ.
3.2.1 ระดับการติดตามการเปรียบเทียบ
ขั้นตอนนี้เปรียบเทียบกราฟรัฐ G1 และ G2 (จากรุ่น M1 และ
M2) เพื่อความเท่าเทียมกัน การทำเช่นนั้นจะใช้อัลกอริทึมมอร์ฟกราฟ
สำหรับกราฟที่มีข้อความกำกับเสนอใน [9] ซึ่งพบว่า
การทำแผนที่หนึ่งต่อหนึ่งระหว่างทั้งสองโหนดและขอบของ G1 และ G2.
การเปรียบเทียบการผลิตสองรายการ: T และ ScreenMatchList T
คือรายการของผู้ที่มาจากขอบ G1 หรือ G2 ที่ไม่สามารถจับคู่
กับขอบที่สอดคล้องกันในรัฐกราฟขอบอื่น ๆ ที่แสดงให้เห็นถึง
ความแตกต่างของระดับการติดตาม ScreenMatchList คือรายการของหน้าจอตรงกับ
คู่ (S
1
ผม
, S2
I) (จาก G1 และ G2 ตามลำดับ) ที่ใช้ใน
ขั้นตอนต่อไป.
3.2.2 DOM เปรียบเทียบตรงกันคู่หน้าจอ
ขั้นตอนนี้ iterates ผ่านหน้าจอคู่ที่ตรงกัน ใน ScreenMatchList
(ขั้นตอนก่อนหน้า) และสำหรับแต่ละคู่ดังกล่าว (S
1
ผม
, S2
I) เปรียบเทียบ
ถุงยางของทั้งสองหน้าจอเพื่อความเท่าเทียมกันและผลิต
DomMatchListi เป็นเอาท์พุท DomMatchListi เป็นชุดของ
คู่ของโหนด DOM จับคู่หนึ่งสำหรับคู่ของหน้าจอแต่ละ ของเรา
ขั้นตอนวิธีการจับคู่ DOM ส่วนใหญ่ต่อไปนี้อย่างใดอย่างหนึ่งที่เสนอโดยเรา
ใน WEBDIFF (ดูอัลกอริทึมที่ 1 ในการอ้างอิง [18] สำหรับรายละเอียด)
แตกต่างที่สำคัญระหว่างสองขั้นตอนวิธีการคือการคำนวณของ
ดัชนีชี้วัดการแข่งขัน-ตัวเลขระหว่าง 0 และ 1 ที่ quanti-
fies ความคล้ายคลึงกันระหว่างสองโหนด DOM สูงกว่าการแข่งขัน
ดัชนีที่สูงกว่าความเป็นไปได้ว่าทั้งสององค์ประกอบ DOM แทน
องค์ประกอบเดียวกันในบริบทของหน้าจอของตน.
ในปัจจุบันเราใช้สูตรต่อไปนี้สำหรับการคำนวณการแข่งขัน
ดัชนี: รับสองโหนด DOM A และ B
MatchIndex = 0.7 ×ΔX + 0.2 ×ΔA + 0.1 ×ΔP
ที่ΔXยืนสำหรับ XPath ระยะทางΔAมีขนาดแตกต่างกัน
ในลักษณะและขนาดΔPความแตกต่างในแบบไดนามิก
คุณสมบัติสอบถามจาก DOM coeffic
การแปล กรุณารอสักครู่..
