SlideShare uma empresa Scribd logo
1 de 80
Baixar para ler offline
Cross-Platform

Testing and Maintenance of

Web and Mobile Applications
PhD Thesis Defense
Shauvik Roy Choudhary
Advisor: Dr. Alessandro Orso
School of Computer Science, Georgia Tech

Committee: 

Dr. Mayur Naik, Dr. Milos Prvulovic 

Dr. Russ Clark, Dr. Mukul Prasad
1
Web and Mobile Apps
Web MobileWeb Mobile
2
Web Developer
3
Mobile Developer
Lollipop
Android 5.0
4
Cross-Platform
Testing and Maintenance
Issues
5
1.Identifying Inconsistencies
Google&Chrome+
Apple%Safari+
Mozilla'Firefox-
6
1.Identifying Inconsistencies
Mozilla'Firefox-
Internet&Explorer,
7
2. Finding Missing Features
Desktop Mobile
8
3. Automated Test Migration
App 1
Mobile
Platform 1
Mobile
Platform 2
App 2
Test
Suite
Test
Suite
9
Identifying Inconsistencies

Cross Browser Testing
Finding Missing Features
Feature Mapping
Test-suite Migration
(for mobile applications)
Problem Space
10
Thesis
• Key Insight: Analyze cross-platform application
behavior to address the problems
• Challenge: Significant difference in cross-
platform behavior. Match behavior despite
legitimate differences.
• Thesis: Approximate matching algorithms with
the right abstractions can be used to automate
cross-platform testing and maintenance.
11
Behavior
Capture
Behavior
Matching
Inconsistency
Detection
Test Migrationa1
a2
Cross-Platform
Inconsistencies
(e.g., XBIs)
Missing
Features on
one platform
Retargeted
Tests for
new platform
Feature
Analysis
1
2
3
a1.b
a2.b
Matched
Behavior
a1.b1 = a2.b1
a1.b3 = a2.b3
Unmatched
Behavior
a1.b2, a2.b2
Applications
on two platforms
Captured Behavior
of each application
Matching
Result
Cross-Platform
Applications
Overall Approach
12
Behavior
Capture
Behavior
Matchinga1
a2
a1.b
a2.b
Matched
Behavior
a1.b1 = a2.b1
a1.b3 = a2.b3
Unmatched
Behavior
a1.b2, a2.b2
Applications
on two platforms
Captured Behavior
of each application
Matching
Result
Overall Approach
13
Cross Browser Testing
WebDiff [ICSM’10],
CrossCheck [ICST’12], X-PERT [ICSE’13]
Feature Mapping
FMAP [ISSTA’14]
Test-suite Migration
Current work
Overview
14
X-PERT: Accurate Identification 

of Cross-Browser Issues 

in Web Applications

WebDiff [ICSM’ 10], CrossCheck [ICST’12], X-PERT [ICSE’13]
Tools [ICSM’10, ISSTA’14]
15
Overall approach
12
My Awesome Site
δ
δ
Web
Application
Error
Report
Model Generation Model Comparison
16
Model
Screen Model!
Screen image !
+ geometry!
DOM Tree!
body
header
menu
hr1
main
hr2
footer
link1
link2
subHeading
countText
paperList
paper1
paper2
paper3
paper4
button1
button2
above
above
above
above
above
leftOf
above
above
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
above
left-align
right-align
Alignment Graph!
17
Comprehensive 

Cross-Browser Issue Detection
Type Detection Technique
Behavioral Graph Isomorphism
Content
Text String Equality
Visual
Image Matching
(Computer Vision)
Structural
Alignment Graph
Matching
18
Evaluation Subjects
19
Name Type URL States Transitions
Organizer Productivity http://localhost/organizer 13 99
GrantaBooks Publisher http://grantabooks.com 9 8
DesignTrust Business http://designtrust.org 10 20
DivineLife Spiritual http://sivanandaonline.org 10 9
SaiBaba Religious http://shrisaibabasansthan.org 13 20
Breakaway Sport http://breakaway-adventures.com 19 18
Conference Information http://localhost/conference 3 12
Fisherman Restaurant http://fishermanslodge.co.uk 15 17
Valleyforge Lodge http://valleyforgeinn.net 4 12
UniMelb University http://www.economics.unimelb.edu.au/ACT/ 9 8
Konqueror Software http://www.konqueror.org 5 4
UBC Club http://www.ubcsororities.com 7 7
BMVBS Ministry http://m.bmvbs.de 5 20
StarWars Movie http://www.starwarsholidayspecial.com 10 9
Prior Art (6)
Example & Survey (4)
Random (4)
Evaluation
• RQ1: Can X-PERT find Cross-Browser
Issues in real web applications?
• RQ2: How does X-PERT compare to the
state-of-art?
45%↑ Precision and 14%↑ Recall
Yes!

77% Precision and 95% Recall
20
Feature Mapping
Across Platforms
(for web applications)
FMAP [ISSTA’14]
ss-Platform Feature Matching
for Web Applications21
Problem
Finding Missing Features
Desktop version Mobile version
22
Desktop version Mobile version
Missing Feature on Mobile
Missing Feature
on Desktop
Problem
Finding Missing Features
23
Overall Approach
Platforms
Trace
Extraction
Traces
1 1. REQUEST: GET /index.php
2. RESPONSE: 200 OK, 'text/html'
3. REQUEST: GET /style.css
4. REPONSE: 200 OK, 'text/css'
5. REQUEST: GET /logo.png
6. REPONSE: 200 OK, 'image/png'
7. REQUEST: GET /script.js
8. REPONSE: 200 OK, 'text/javascript'
9. REQUEST: POST /login.php
user=user1&pass=..&sid=w2s31
10. RESPONSE: 200 OK, 'text/html'
....
11. REQUEST: POST /create_blog.php
title=..&content=..
12. RESPONSE: 200 OK, 'text/html'
24
Overall Approach
Platforms
Trace
Extraction
Traces
1
Action
Recognition
A
X
B
Y
C
D
A
B
C
D
A
Q
R
S
A
Q
R
Q
R
S
M
N
O
P
U
V
W
Labeled Actions
A
B
C
D
A
Q
R
S
2 1. REQUEST: GET /index.php
2. RESPONSE: 200 OK, 'text/html'
3. REQUEST: GET /style.css
4. REPONSE: 200 OK, 'text/css'
5. REQUEST: GET /logo.png
6. REPONSE: 200 OK, 'image/png'
7. REQUEST: GET /script.js
8. REPONSE: 200 OK, 'text/javascript'
9. REQUEST: POST /login.php
user=user1&pass=..&sid=w2s31
10. RESPONSE: 200 OK, 'text/html'
....
11. REQUEST: POST /create_blog.php
title=..&content=..
12. RESPONSE: 200 OK, 'text/html'
Domain specific
vocabulary to identify
keywords in requests
Ignore requests
to stylistic resources
25
1. REQUEST: GET /index.php
2. RESPONSE: 200 OK, 'text/html'
3. REQUEST: GET /style.css
4. REPONSE: 200 OK, 'text/css'
5. REQUEST: GET /logo.png
6. REPONSE: 200 OK, 'image/png'
7. REQUEST: GET /script.js
8. REPONSE: 200 OK, 'text/javascript'
9. REQUEST: POST /login.php
user=user1&pass=..&sid=w2s31
10. RESPONSE: 200 OK, 'text/html'
....
11. REQUEST: POST /create_blog.php
title=..&content=..
12. RESPONSE: 200 OK, 'text/html'
Overall Approach
Platforms
Trace
Extraction
Traces
1
Action
Recognition
A
X
B
Y
C
D
A
B
C
D
A
Q
R
S
A
Q
R
Q
R
S
M
N
O
P
U
V
W
Labeled Actions
A
B
C
D
A
Q
R
S
2 1. REQUEST: GET /index.php
2. RESPONSE: 200 OK, 'text/html'
3. REQUEST: GET /style.css
4. REPONSE: 200 OK, 'text/css'
5. REQUEST: GET /logo.png
6. REPONSE: 200 OK, 'image/png'
7. REQUEST: GET /script.js
8. REPONSE: 200 OK, 'text/javascript'
9. REQUEST: POST /login.php
user=user1&pass=..&sid=w2s31
10. RESPONSE: 200 OK, 'text/html'
....
11. REQUEST: POST /create_blog.php
title=..&content=..
12. RESPONSE: 200 OK, 'text/html'
(‘index’),
(‘script’),
(‘login’,‘user’,‘pass’,‘sid’),
(‘create’,‘blog’,‘title’,‘content’)
Keywords
26
Overall Approach
Platforms
Trace
Extraction
Traces
1
Action
Recognition
A
X
B
Y
C
D
A
B
C
D
A
Q
R
S
A
Q
R
Q
R
S
M
N
O
P
U
V
W
Labeled Actions
A
B
C
D
A
Q
R
S
2
index
login, ..
create, ..
script
27
Overall Approach
Platforms
Trace
Extraction
Traces
1
Action
Recognition
A
X
B
Y
C
D
A
B
C
D
A
Q
R
S
A
Q
R
Q
R
S
M
N
O
P
U
V
W
Labeled Actions
A
B
C
D
A
Q
R
S
2
Features
Trace Set
Canonicalization
A
X
B
Y
C
D
A
B
C
D
A
Q
R
S
A
Q
R
Q
R
S
M
N
O
P
U
V
W
A
B
C
D
A
Q
R
S
3 login
create
post
preview
post
publish
post
create
post
preview
post
login
create
post
preview
post
publish
post
28
Overall Approach
Platforms
Trace
Extraction
Traces
1
Action
Recognition
A
X
B
Y
C
D
A
B
C
D
A
Q
R
S
A
Q
R
Q
R
S
M
N
O
P
U
V
W
Labeled Actions
A
B
C
D
A
Q
R
S
2
Features
Trace Set
Canonicalization
A
X
B
Y
C
D
A
B
C
D
A
Q
R
S
A
Q
R
Q
R
S
M
N
O
P
U
V
W
A
B
C
D
A
Q
R
S
3
Feature
Matching
A
X
B
Y
C
D
A
B
C
D
A
Q
R
S
A
Q
R
S
M
N
O
P
U
V
W
Matched
Features
Unmatched
Features
4
29
Feature Matching
Maximum Weighted Bipartite Matching (MWBM) problem

Hungarian Algorithm [Kuhn 1955]
1
2
3
4
5
1
2
3
4
Fd Fm
0.9
0.2
0.8
0.3
0.7
0.2
0.3
0.7
1
2
3
4
5
1
2
3
4
Fd Fm
0.9
0.8
0.7
0.7
30
Evaluation
• Tool: FMAP (Feature Mapping Across Platforms)
• Subjects: Popular web apps (6 open source + 3 public)
Subject Type Mobile plug-in
wordpress Blogging wordpress mobile pack
drupal Content Management nokia mobile theme
phpbb Forum artodia mobile style
roundcube Email mobilecube theme
elgg Social Networking elgg mobile module
gallery Photo Management imobile theme
wikipedia.org Wiki -
stackoverflow.com Q&A -
twitter.com Social Networking -
31
Evaluation
• RQ1: How effective is FMAP in recognizing
web application actions?
• RQ2: How effective is FMAP in matching
features between the desktop and mobile
versions of real web applications?
Accuracy: 86.3% (FMAP)

51.5% (Baseline)
Accuracy: 97.8% (Desktop)

99.6% (Mobile)
32
Evaluation
• RQ1: How effective is FMAP in recognizing
web application actions?
• RQ2: How effective is FMAP in matching
features between the desktop and mobile
versions of real web applications?
Accuracy: 86.3% (FMAP)

51.5% (Baseline)
Accuracy: 97.8% (Desktop)

99.6% (Mobile)
40

50
Missing features reported by FMAP

confirmed from user reports & software fixes
33
Cross-Platform
Test Migration
(for mobile applications)
Current Work
34
35
Mobile Test
<action1, action2, …, actionn, Oracle>
{actionType, element, actionParams}
{assertionType, element, expectedValue}
TAP “Submit”
TYPE “Name” “Shauvik”
AssertExists “Success”
AssertText cell[0] “Alex”
GUI
^
36
MyList App - Platform 1
MyList Item >
MyList +
TAP “MyList Item”
MyList Item
MyList +
Delete ItemStar Item
TAP “Star Item”
MyList Item >
MyList +
AssertExists “Star”
37
MyList App - Platform 2
View Items
Add Item
MyList
38
MyList App - Platform 2
View Items
Add Item
MyList
Items
MyList Item
MyList
TAP “MyList Item”TAP “View Items”
Items
Delete
MyList Item
Star
MyList
TAP “Star”
Items
MyList Item
MyList
AssertExists “Star”
39
MyList App - Test Migration
View Items
Add Item
MyList
Items
MyList Item
MyList
TAP “MyList Item”TAP “View Items”
Items
Delete
MyList Item
Star
MyList
TAP “Star”
Items
MyList Item
MyList
AssertExists “Star”
MyList Item >
MyList +
TAP “MyList Item”
MyList Item
MyList +
Delete ItemStar Item
TAP “Star Item”
MyList Item >
MyList +
AssertExists “Star”
40
Challenges
Independently
developed
(In different languages
& frameworks)
Posts
tap
"New Post"
tap
"Refresh"
tap
"More Options"
tap
"Hello World!"
Menu
tap "Open drawer"
tap "Posts"
tap "Comments"
tap "Media"
tap "Pages"
tap
tap "Navigate up"
tap "Upload"
type "Title"
tap "Content"
tap
"Post Settings"
type "Content"
BACK button
tap
"Navigate up"
tap
"Navigate up"
tap "Delete Post"
tap
"Preview"
tap "Preview Post"
tap "Share URL"
tap "Add Comment"
tap "Edit Post"
tap "Sign out"
tap "Settings"
Automated
Behavior
Exploration
Same actions
Different Widgets
No structural
similarity
Partial
Consider all
possibilities
41
Assumptions
• Action correspondence: 

1-1 correspondence between actions
• Action ordering: 

Is preserved in matched use cases
• Functionality under test: 

present on both platforms
42
Intuition
Test Case Model Generation
Init
State
State
A
State
B
State
C
Action 1
Action 2
Action 3
Oracle
Init
State
State
1
State
5
State
6
State
2
State
3
State
4
State
7
Init
State
State
1
State
5
State
6
State
2
State
3
State
4
State
7
PLATFORM 1 PLATFORM 2
43
Model Definition
Labeled Transition System (LTS)
(S, s0, A, δ)
Transition
Function
Initial state
Actions
States
δ(scurrent,a) = snext
44
View Items
Add Item
MyList
Items
MyList Item
MyList
Solving for maximizing matching
Given:
Constraint:
Where:
•
•
Subject to:
•
Model for Platform 2:
Test Trace for Platform 1:
a & b are from
platforms p1 & p2
45
Solving for maximizing matching
Given:
Constraint:
Subject to:
•
•
•
a & b are from
platforms p1 & p2
Model for Platform 2:
Test Trace for Platform 1:Ordering Constraint
on matched actions
ai aj
bx by
46
Solving for maximizing matching
Given:
Constraint:
Subject to:
•
•
•
a & b are from
platforms p1 & p2
Model for Platform 2:
Test Trace for Platform 1:No Invalid Ordering
between matched actions
ai aj
bx bybz
ak
47
Solving for maximizing matching
Given:
Constraint:
Where:
•
•
Subject to:
•
Model for Platform 2:
Test Trace for Platform 1:
a & b are from
platforms p1 & p2
48
Technique Overview
Platform 1
App
Platform 2
App
Test Trace
Generation
Platform 1
Tests
Incremental
Model
Generation
Platform 1
Test Trace
Test
Generation
Platform 2
Tests
Model-Trace
Mapping
1 2 3
49
Technique Overview
Platform 1
App
Platform 2
App
Test Trace
Generation
Platform 1
Tests
Incremental
Model
Generation
Platform 1
Test Trace
Mod
M
1 2
50
Technique Overview
Platform 1
App
Platform 2
App
Test Trace
Generation
Platform 1
Tests
Incremental
Model
Generation
Platform 1
Test Trace
Test
Generation
Platform 2
Tests
Model-Trace
Mapping
1 2 3
51
1. Trace Generation
MyList Item >
MyList +
TAP “MyList Item”
TAP
<“cell”, “”, “”, “MyList Item”, 0>
Action Widget Information:
• Class Name
• ID
• Name
• Value
• Position in Parent
52
1. Trace Generation
TAP “MyList Item”
TAP “Star Item”
AssertExists “Star”
Test
TAP <“cell”, “”, “”, “MyList Item”, 0>
TAP <“button”, “”, “btn1”, “Star Item”, 0>
AssertExists <“icon”, “Star”, “”, “”, 0>
Test Trace
53
2. Incremental Model
Generation
App 2
Test
Traces
Crawler Matcher
Controller
Mapping
Model
54
General Model Exploration
INPUT:
Application under Test
ALGO:
Model ← (S, s0, A, δ) | S = {s0}, A=ϵ, δ=ϵ
Worklist ← s0.actions()
While (Worklist.size > 0) and time() < TIMEOUT
(s, a) ← getNextAction(Worklist)
snext ← doAction(s, a)
if snext ∉ S
Worklist ← snext.actions()
Model.add(s, a, snext)
Return Model
View Items
Add Item
MyList
Items
MyList Item
MyList
55
MigraTest Model Exploration
INPUT:
Application under Test
Test Traceset = {<a1, a2, …, an>, …}
ALGO:
Model ← (S, s0, A, δ) | S = {s0}, A=ϵ, δ=ϵ
Worklist ← s0.actions()
While (Worklist.size > 0) and time() < TIMEOUT
Sol ← MaxMatchSolve(Model, Traceset)
(s, a) ← Sol.getNextAction(Worklist)
snext ← doAction(s, a)
if snext ∉ S
Worklist ← snext.actions()
Model.add(s, a, snext)
Return Model, Sol.Map
MigraTest decides
what to explore
56
getNextAction
• Intuition: Prioritize clicks based on action similarity
and scope of new potential assignments
Cross-platform action similarity
(widget similarity & action compatibility)
Number of unassigned
dependent actions
57
Solving for Matching
a1
a2
a3
b1 b2
∼
∼
∼ ∼
∼
∼
TAP “MyList Item”
TAP “Star Item”
TAP “Delete Item”
TAP
“View
Item
s”
TAP
“Add
Item
”
?
?✔
TAP
"View Items"
View Items
Add Item
MyList
TAP
"Add Item"
b1
b2
58
TAP
"View Items"
View Items
Add Item
MyList
TAP
"Add Item"
b1
b2
TAP
"View Items"
View Items
Add Item
MyList
TAP
"Add Item"
b1
b2
Items
MyList Item
MyList
Add Item
MyList
Item Name
Add
TAP
"MyList Item"
TAP
"Add"
Type
"Item Name"
b3
b4
b5
59
Solving for Matching
a1
a2
a3
b1 b2 b3 b4 b5
=
∼
∼
∼
∼ ∼
∼
∼ ∼
TAP “MyList Item”
TAP “Star Item”
TAP “Delete Item”
TAP
“M
yListItem
”
TAP
“View
Item
s”
TAP
“Add
Item
”
TYPE
“Item
Nam
e”
TAP
“Add”
✔
TAP
"View Items"
View Items
Add Item
MyList
TAP
"Add Item"
b1
b2
Items
MyList Item
MyList
Add Item
MyList
Item Name
Add
TAP
"MyList Item"
TAP
"Add"
Type
"Item Name"
b3
b4
b5
60
? ?
? ?
TAP
"View Items"
View Items
Add Item
MyList
TAP
"Add Item"
b1
b2
Items
MyList Item
MyList
Add Item
MyList
Item Name
Add
TAP
"Add"
Type
"Item Name"
b3
b4
b5
Items
Delete
MyList Item
Star
MyList
TAP
"MyList Item"
TAP
"Star"
TAP
"Delete"
b6 b7
TAP
"View Items"
View Items
Add Item
MyList
TAP
"Add Item"
b1
b2
Items
MyList Item
MyList
Add Item
MyList
Item Name
Add
TAP
"MyList Item"
TAP
"Add"
Type
"Item Name"
b3
b4
b5
61
Solving for Matching
a1
a2
a3
b1 b2 b3 b4 b5 b6 b7
=
∼ ∼
∼
∼
∼
∼ ∼
∼
∼ ∼
✔
✔
TAP “MyList Item”
TAP “Star Item”
TAP “Delete Item”
TAP
“M
yListItem
”
TAP
“View
Item
s”
TAP
“Add
Item
”
TYPE
“Item
Nam
e”
TAP
“Add”TAP
“Star”
TAP
“Delete”
✔
62
? ?
? ?
Trace
Action
Model
Action
a1 b3
a2 b6
a3 b7
Trace-Model
Action Mapping
3. Test Generation
Model
TAP
"View Items"
View Items
Add Item
MyList
TAP
"Add Item"
b1
b2
Items
MyList Item
MyList
Add Item
MyList
Item Name
Add
TAP
"Add"
Type
"Item Name"
b3
b4
b5
Items
Delete
MyList Item
Star
MyList
TAP
"MyList Item"
TAP
"Star"
TAP
"Delete"
b6 b7
Trace
a2a1
a1 a3
Trace
Action
Model
Action
a1 b3
a2 b6
a3 b7
Trace-Model
Action Mapping63
3. Test Generation
Trace
a2a1
a1 a3
Model
TAP
"View Items"
View Items
Add Item
MyList
TAP
"Add Item"
b1
b2
Items
MyList Item
MyList
Add Item
MyList
Item Name
Add
TAP
"Add"
Type
"Item Name"
b3
b4
b5
Items
Delete
MyList Item
Star
MyList
TAP
"MyList Item"
TAP
"Star"
TAP
"Delete"
b6 b7
b3b1 b6
b3b1 b7
Trace
Action
Model
Action
a1 b3
a2 b6
a3 b7
Trace-Model
Action Mapping64
3. Test Generation
Model
TAP
"View Items"
View Items
Add Item
MyList
TAP
"Add Item"
b1
b2
Items
MyList Item
MyList
Add Item
MyList
Item Name
Add
TAP
"Add"
Type
"Item Name"
b3
b4
b5
Items
Delete
MyList Item
Star
MyList
TAP
"MyList Item"
TAP
"Star"
TAP
"Delete"
b6 b7
b3b1 b6
b3b1 b7
Tap “View Items”
Tap “MyList Item”
Tap “Star”
Tap “View Items”
Tap “MyList Item”
Tap “Delete”
65
3. Test Generation
(Oracle Migration)
AssertExists
selector
AssertText 

selector
ExpectedValue
AssertText 

new_selector
ExpectedValue
AssertExists
new_selector
new_selector :=
best_of(class, label, name, value, position)
66
3. Test Generation
(Oracle Migration)
AssertExists
selector
AssertText 

selector ExpectedValue
AssertText 

new_selector ExpectedValue
AssertExists
new_selector
new_selector :=
best_of(class, label, name, value, position)
Extra Checks
to catch potential migration issues
assertExists✔
Multiple elements exist
Element doesn’t exist yet (Flaky?)
Element exists but with different value
67
Case Study: wikiHow
68
Case Study: wikiHow
69
Case Study: wikiHow
70
wikiHow: Test Cases
TEST CASE DESCRIPTION
Items loaded
When user selects category,
check if items in category are loaded
Page title
When user selects category,
check if page title matches category name
Back button
When user selects category & item, & presses button with
label “Back”, check if page title matches category name
Pop-up shown
When user selects category & item, & presses button with
label “Add”, check if pop-up is displayed to user
WebView loaded
When user selects category & item,
check if a WebView is added on the screen
71
wikiHow: Test Migration
TEST CASE MIGRATED CHALLENGE ISSUES FOUND
Items loaded Yes
Page title Yes Duplicates found
Back button Partial
Platform specific
functionality
Pop-up shown Partial
Missing
functionality
Missing
functionality
WebView loaded Yes
72
Case Study: WhiteHouse
73
Case Study: WhiteHouse
74
Case Study: WhiteHouse
75
iOS
Test cases
Android
Model
Generation
WhiteHouse.govNetwork
Capture-Replay
Proxy
WhiteHouse: Test Cases
76
TEST CASE DESCRIPTION
Menu Loaded When the user taps on Menu, check if “BLOG” is present
Photo Loaded
When the user taps on Menu, and selects “PHOTOS”
check if the first photo is loaded
Video Loaded
When the user taps on Menu, and selects “VIDEOS” check
if the first photo is loaded
Search
When the user taps on Menu, and enters “A” in the search
bar, check if page contains “No Results”
WhiteHouse: Test Migration
77
TEST CASE MIGRATED CHALLENGE
POTENTIAL
ISSUES FOUND
Menu Loaded Yes
Photo Loaded Yes
Empty label on
Android
Video Loaded Yes
Empty label on
Android
Search Yes Text Input
Future Work
Platform-specific
Functionality
AssertTrue
AssertNotExists
Complex or Null
Oracle Migration
Sand-boxing
(Mocking, Reset)
78
Plans
• Submit unpublished work to ISSTA’15
• Capture-Replay project for “Testing Everywhere”
• NSF i-Corps Program to Commercialize Capture-
Replay technology for Business Intelligence
79
Summary
80

Mais conteúdo relacionado

Semelhante a PhD Dissertation Defense (April 2015)

Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdfFront-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdfApplitools
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentMatthew Farina
 
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...Kevin Moran
 
JavaScript: The Machine Language of the Ambient Computing Era
JavaScript: The Machine Language of the Ambient Computing EraJavaScript: The Machine Language of the Ambient Computing Era
JavaScript: The Machine Language of the Ambient Computing EraAllen Wirfs-Brock
 
Exposed! A case study on the vulnerability-proneness of Google Play Apps
Exposed! A case study on the vulnerability-proneness of Google Play AppsExposed! A case study on the vulnerability-proneness of Google Play Apps
Exposed! A case study on the vulnerability-proneness of Google Play AppsSebastiano Panichella
 
Scaling mobile dev teams
Scaling mobile dev teams Scaling mobile dev teams
Scaling mobile dev teams Priyank Gupta
 
C# Cookware - presented at CukeUp! 2014
C# Cookware - presented at CukeUp! 2014C# Cookware - presented at CukeUp! 2014
C# Cookware - presented at CukeUp! 2014Manuel Pais
 
Kaiser Permanente CSUN 2018
Kaiser Permanente CSUN 2018Kaiser Permanente CSUN 2018
Kaiser Permanente CSUN 2018Mark Stimson
 
Finding Concurrency Errors in Event-Driven Applications - Strangeloop'14
Finding Concurrency Errors in Event-Driven Applications - Strangeloop'14Finding Concurrency Errors in Event-Driven Applications - Strangeloop'14
Finding Concurrency Errors in Event-Driven Applications - Strangeloop'14Pavol Bielik
 
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...Kevin Moran
 
Testing on Mobile Devices with Location Services
Testing on Mobile Devices with Location ServicesTesting on Mobile Devices with Location Services
Testing on Mobile Devices with Location ServicesSauce Labs
 
Runtime Behavior of JavaScript Programs
Runtime Behavior of JavaScript ProgramsRuntime Behavior of JavaScript Programs
Runtime Behavior of JavaScript ProgramsIRJET Journal
 
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...Riccardo Coppola
 
Selenium Testing Training in Bangalore
Selenium Testing Training in BangaloreSelenium Testing Training in Bangalore
Selenium Testing Training in Bangalorerajkamal560066
 
Software Architecture and Predictive Models in R
Software Architecture and Predictive Models in RSoftware Architecture and Predictive Models in R
Software Architecture and Predictive Models in RHarlan Harris
 
Pragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptPragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptdavejohnson
 
Agricultural robot sprayer: Evaluation of user interfaces in field experiments
Agricultural robot sprayer: Evaluation of user interfaces in field experimentsAgricultural robot sprayer: Evaluation of user interfaces in field experiments
Agricultural robot sprayer: Evaluation of user interfaces in field experimentsGeorge Adamides
 

Semelhante a PhD Dissertation Defense (April 2015) (20)

Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdfFront-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
 
Naresh Chirra
Naresh ChirraNaresh Chirra
Naresh Chirra
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application Development
 
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
ICSE17 - Tool Demonstration - CrashScope A Practical Tool for the Automated T...
 
JavaScript: The Machine Language of the Ambient Computing Era
JavaScript: The Machine Language of the Ambient Computing EraJavaScript: The Machine Language of the Ambient Computing Era
JavaScript: The Machine Language of the Ambient Computing Era
 
Exposed! A case study on the vulnerability-proneness of Google Play Apps
Exposed! A case study on the vulnerability-proneness of Google Play AppsExposed! A case study on the vulnerability-proneness of Google Play Apps
Exposed! A case study on the vulnerability-proneness of Google Play Apps
 
Scaling mobile dev teams
Scaling mobile dev teams Scaling mobile dev teams
Scaling mobile dev teams
 
C# Cookware - presented at CukeUp! 2014
C# Cookware - presented at CukeUp! 2014C# Cookware - presented at CukeUp! 2014
C# Cookware - presented at CukeUp! 2014
 
Kaiser Permanente CSUN 2018
Kaiser Permanente CSUN 2018Kaiser Permanente CSUN 2018
Kaiser Permanente CSUN 2018
 
Finding Concurrency Errors in Event-Driven Applications - Strangeloop'14
Finding Concurrency Errors in Event-Driven Applications - Strangeloop'14Finding Concurrency Errors in Event-Driven Applications - Strangeloop'14
Finding Concurrency Errors in Event-Driven Applications - Strangeloop'14
 
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mob...
 
Agrirobot presentation by George Adamides
Agrirobot presentation by George AdamidesAgrirobot presentation by George Adamides
Agrirobot presentation by George Adamides
 
Binding android piece by piece
Binding android piece by pieceBinding android piece by piece
Binding android piece by piece
 
Testing on Mobile Devices with Location Services
Testing on Mobile Devices with Location ServicesTesting on Mobile Devices with Location Services
Testing on Mobile Devices with Location Services
 
Runtime Behavior of JavaScript Programs
Runtime Behavior of JavaScript ProgramsRuntime Behavior of JavaScript Programs
Runtime Behavior of JavaScript Programs
 
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...
Automated Generation, Evolution and Maintenance: a perspective for mobile GUI...
 
Selenium Testing Training in Bangalore
Selenium Testing Training in BangaloreSelenium Testing Training in Bangalore
Selenium Testing Training in Bangalore
 
Software Architecture and Predictive Models in R
Software Architecture and Predictive Models in RSoftware Architecture and Predictive Models in R
Software Architecture and Predictive Models in R
 
Pragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptPragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScript
 
Agricultural robot sprayer: Evaluation of user interfaces in field experiments
Agricultural robot sprayer: Evaluation of user interfaces in field experimentsAgricultural robot sprayer: Evaluation of user interfaces in field experiments
Agricultural robot sprayer: Evaluation of user interfaces in field experiments
 

Último

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...RKavithamani
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 

Último (20)

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 

PhD Dissertation Defense (April 2015)

  • 1. Cross-Platform
 Testing and Maintenance of
 Web and Mobile Applications PhD Thesis Defense Shauvik Roy Choudhary Advisor: Dr. Alessandro Orso School of Computer Science, Georgia Tech
 Committee: 
 Dr. Mayur Naik, Dr. Milos Prvulovic 
 Dr. Russ Clark, Dr. Mukul Prasad 1
  • 2. Web and Mobile Apps Web MobileWeb Mobile 2
  • 8. 2. Finding Missing Features Desktop Mobile 8
  • 9. 3. Automated Test Migration App 1 Mobile Platform 1 Mobile Platform 2 App 2 Test Suite Test Suite 9
  • 10. Identifying Inconsistencies
 Cross Browser Testing Finding Missing Features Feature Mapping Test-suite Migration (for mobile applications) Problem Space 10
  • 11. Thesis • Key Insight: Analyze cross-platform application behavior to address the problems • Challenge: Significant difference in cross- platform behavior. Match behavior despite legitimate differences. • Thesis: Approximate matching algorithms with the right abstractions can be used to automate cross-platform testing and maintenance. 11
  • 12. Behavior Capture Behavior Matching Inconsistency Detection Test Migrationa1 a2 Cross-Platform Inconsistencies (e.g., XBIs) Missing Features on one platform Retargeted Tests for new platform Feature Analysis 1 2 3 a1.b a2.b Matched Behavior a1.b1 = a2.b1 a1.b3 = a2.b3 Unmatched Behavior a1.b2, a2.b2 Applications on two platforms Captured Behavior of each application Matching Result Cross-Platform Applications Overall Approach 12
  • 13. Behavior Capture Behavior Matchinga1 a2 a1.b a2.b Matched Behavior a1.b1 = a2.b1 a1.b3 = a2.b3 Unmatched Behavior a1.b2, a2.b2 Applications on two platforms Captured Behavior of each application Matching Result Overall Approach 13
  • 14. Cross Browser Testing WebDiff [ICSM’10], CrossCheck [ICST’12], X-PERT [ICSE’13] Feature Mapping FMAP [ISSTA’14] Test-suite Migration Current work Overview 14
  • 15. X-PERT: Accurate Identification 
 of Cross-Browser Issues 
 in Web Applications
 WebDiff [ICSM’ 10], CrossCheck [ICST’12], X-PERT [ICSE’13] Tools [ICSM’10, ISSTA’14] 15
  • 16. Overall approach 12 My Awesome Site δ δ Web Application Error Report Model Generation Model Comparison 16
  • 17. Model Screen Model! Screen image ! + geometry! DOM Tree! body header menu hr1 main hr2 footer link1 link2 subHeading countText paperList paper1 paper2 paper3 paper4 button1 button2 above above above above above leftOf above above above left-align right-align above left-align right-align above left-align right-align above left-align right-align Alignment Graph! 17
  • 18. Comprehensive 
 Cross-Browser Issue Detection Type Detection Technique Behavioral Graph Isomorphism Content Text String Equality Visual Image Matching (Computer Vision) Structural Alignment Graph Matching 18
  • 19. Evaluation Subjects 19 Name Type URL States Transitions Organizer Productivity http://localhost/organizer 13 99 GrantaBooks Publisher http://grantabooks.com 9 8 DesignTrust Business http://designtrust.org 10 20 DivineLife Spiritual http://sivanandaonline.org 10 9 SaiBaba Religious http://shrisaibabasansthan.org 13 20 Breakaway Sport http://breakaway-adventures.com 19 18 Conference Information http://localhost/conference 3 12 Fisherman Restaurant http://fishermanslodge.co.uk 15 17 Valleyforge Lodge http://valleyforgeinn.net 4 12 UniMelb University http://www.economics.unimelb.edu.au/ACT/ 9 8 Konqueror Software http://www.konqueror.org 5 4 UBC Club http://www.ubcsororities.com 7 7 BMVBS Ministry http://m.bmvbs.de 5 20 StarWars Movie http://www.starwarsholidayspecial.com 10 9 Prior Art (6) Example & Survey (4) Random (4)
  • 20. Evaluation • RQ1: Can X-PERT find Cross-Browser Issues in real web applications? • RQ2: How does X-PERT compare to the state-of-art? 45%↑ Precision and 14%↑ Recall Yes!
 77% Precision and 95% Recall 20
  • 21. Feature Mapping Across Platforms (for web applications) FMAP [ISSTA’14] ss-Platform Feature Matching for Web Applications21
  • 22. Problem Finding Missing Features Desktop version Mobile version 22
  • 23. Desktop version Mobile version Missing Feature on Mobile Missing Feature on Desktop Problem Finding Missing Features 23
  • 24. Overall Approach Platforms Trace Extraction Traces 1 1. REQUEST: GET /index.php 2. RESPONSE: 200 OK, 'text/html' 3. REQUEST: GET /style.css 4. REPONSE: 200 OK, 'text/css' 5. REQUEST: GET /logo.png 6. REPONSE: 200 OK, 'image/png' 7. REQUEST: GET /script.js 8. REPONSE: 200 OK, 'text/javascript' 9. REQUEST: POST /login.php user=user1&pass=..&sid=w2s31 10. RESPONSE: 200 OK, 'text/html' .... 11. REQUEST: POST /create_blog.php title=..&content=.. 12. RESPONSE: 200 OK, 'text/html' 24
  • 25. Overall Approach Platforms Trace Extraction Traces 1 Action Recognition A X B Y C D A B C D A Q R S A Q R Q R S M N O P U V W Labeled Actions A B C D A Q R S 2 1. REQUEST: GET /index.php 2. RESPONSE: 200 OK, 'text/html' 3. REQUEST: GET /style.css 4. REPONSE: 200 OK, 'text/css' 5. REQUEST: GET /logo.png 6. REPONSE: 200 OK, 'image/png' 7. REQUEST: GET /script.js 8. REPONSE: 200 OK, 'text/javascript' 9. REQUEST: POST /login.php user=user1&pass=..&sid=w2s31 10. RESPONSE: 200 OK, 'text/html' .... 11. REQUEST: POST /create_blog.php title=..&content=.. 12. RESPONSE: 200 OK, 'text/html' Domain specific vocabulary to identify keywords in requests Ignore requests to stylistic resources 25
  • 26. 1. REQUEST: GET /index.php 2. RESPONSE: 200 OK, 'text/html' 3. REQUEST: GET /style.css 4. REPONSE: 200 OK, 'text/css' 5. REQUEST: GET /logo.png 6. REPONSE: 200 OK, 'image/png' 7. REQUEST: GET /script.js 8. REPONSE: 200 OK, 'text/javascript' 9. REQUEST: POST /login.php user=user1&pass=..&sid=w2s31 10. RESPONSE: 200 OK, 'text/html' .... 11. REQUEST: POST /create_blog.php title=..&content=.. 12. RESPONSE: 200 OK, 'text/html' Overall Approach Platforms Trace Extraction Traces 1 Action Recognition A X B Y C D A B C D A Q R S A Q R Q R S M N O P U V W Labeled Actions A B C D A Q R S 2 1. REQUEST: GET /index.php 2. RESPONSE: 200 OK, 'text/html' 3. REQUEST: GET /style.css 4. REPONSE: 200 OK, 'text/css' 5. REQUEST: GET /logo.png 6. REPONSE: 200 OK, 'image/png' 7. REQUEST: GET /script.js 8. REPONSE: 200 OK, 'text/javascript' 9. REQUEST: POST /login.php user=user1&pass=..&sid=w2s31 10. RESPONSE: 200 OK, 'text/html' .... 11. REQUEST: POST /create_blog.php title=..&content=.. 12. RESPONSE: 200 OK, 'text/html' (‘index’), (‘script’), (‘login’,‘user’,‘pass’,‘sid’), (‘create’,‘blog’,‘title’,‘content’) Keywords 26
  • 28. Overall Approach Platforms Trace Extraction Traces 1 Action Recognition A X B Y C D A B C D A Q R S A Q R Q R S M N O P U V W Labeled Actions A B C D A Q R S 2 Features Trace Set Canonicalization A X B Y C D A B C D A Q R S A Q R Q R S M N O P U V W A B C D A Q R S 3 login create post preview post publish post create post preview post login create post preview post publish post 28
  • 29. Overall Approach Platforms Trace Extraction Traces 1 Action Recognition A X B Y C D A B C D A Q R S A Q R Q R S M N O P U V W Labeled Actions A B C D A Q R S 2 Features Trace Set Canonicalization A X B Y C D A B C D A Q R S A Q R Q R S M N O P U V W A B C D A Q R S 3 Feature Matching A X B Y C D A B C D A Q R S A Q R S M N O P U V W Matched Features Unmatched Features 4 29
  • 30. Feature Matching Maximum Weighted Bipartite Matching (MWBM) problem
 Hungarian Algorithm [Kuhn 1955] 1 2 3 4 5 1 2 3 4 Fd Fm 0.9 0.2 0.8 0.3 0.7 0.2 0.3 0.7 1 2 3 4 5 1 2 3 4 Fd Fm 0.9 0.8 0.7 0.7 30
  • 31. Evaluation • Tool: FMAP (Feature Mapping Across Platforms) • Subjects: Popular web apps (6 open source + 3 public) Subject Type Mobile plug-in wordpress Blogging wordpress mobile pack drupal Content Management nokia mobile theme phpbb Forum artodia mobile style roundcube Email mobilecube theme elgg Social Networking elgg mobile module gallery Photo Management imobile theme wikipedia.org Wiki - stackoverflow.com Q&A - twitter.com Social Networking - 31
  • 32. Evaluation • RQ1: How effective is FMAP in recognizing web application actions? • RQ2: How effective is FMAP in matching features between the desktop and mobile versions of real web applications? Accuracy: 86.3% (FMAP)
 51.5% (Baseline) Accuracy: 97.8% (Desktop)
 99.6% (Mobile) 32
  • 33. Evaluation • RQ1: How effective is FMAP in recognizing web application actions? • RQ2: How effective is FMAP in matching features between the desktop and mobile versions of real web applications? Accuracy: 86.3% (FMAP)
 51.5% (Baseline) Accuracy: 97.8% (Desktop)
 99.6% (Mobile) 40
 50 Missing features reported by FMAP
 confirmed from user reports & software fixes 33
  • 34. Cross-Platform Test Migration (for mobile applications) Current Work 34
  • 35. 35
  • 36. Mobile Test <action1, action2, …, actionn, Oracle> {actionType, element, actionParams} {assertionType, element, expectedValue} TAP “Submit” TYPE “Name” “Shauvik” AssertExists “Success” AssertText cell[0] “Alex” GUI ^ 36
  • 37. MyList App - Platform 1 MyList Item > MyList + TAP “MyList Item” MyList Item MyList + Delete ItemStar Item TAP “Star Item” MyList Item > MyList + AssertExists “Star” 37
  • 38. MyList App - Platform 2 View Items Add Item MyList 38
  • 39. MyList App - Platform 2 View Items Add Item MyList Items MyList Item MyList TAP “MyList Item”TAP “View Items” Items Delete MyList Item Star MyList TAP “Star” Items MyList Item MyList AssertExists “Star” 39
  • 40. MyList App - Test Migration View Items Add Item MyList Items MyList Item MyList TAP “MyList Item”TAP “View Items” Items Delete MyList Item Star MyList TAP “Star” Items MyList Item MyList AssertExists “Star” MyList Item > MyList + TAP “MyList Item” MyList Item MyList + Delete ItemStar Item TAP “Star Item” MyList Item > MyList + AssertExists “Star” 40
  • 41. Challenges Independently developed (In different languages & frameworks) Posts tap "New Post" tap "Refresh" tap "More Options" tap "Hello World!" Menu tap "Open drawer" tap "Posts" tap "Comments" tap "Media" tap "Pages" tap tap "Navigate up" tap "Upload" type "Title" tap "Content" tap "Post Settings" type "Content" BACK button tap "Navigate up" tap "Navigate up" tap "Delete Post" tap "Preview" tap "Preview Post" tap "Share URL" tap "Add Comment" tap "Edit Post" tap "Sign out" tap "Settings" Automated Behavior Exploration Same actions Different Widgets No structural similarity Partial Consider all possibilities 41
  • 42. Assumptions • Action correspondence: 
 1-1 correspondence between actions • Action ordering: 
 Is preserved in matched use cases • Functionality under test: 
 present on both platforms 42
  • 43. Intuition Test Case Model Generation Init State State A State B State C Action 1 Action 2 Action 3 Oracle Init State State 1 State 5 State 6 State 2 State 3 State 4 State 7 Init State State 1 State 5 State 6 State 2 State 3 State 4 State 7 PLATFORM 1 PLATFORM 2 43
  • 44. Model Definition Labeled Transition System (LTS) (S, s0, A, δ) Transition Function Initial state Actions States δ(scurrent,a) = snext 44 View Items Add Item MyList Items MyList Item MyList
  • 45. Solving for maximizing matching Given: Constraint: Where: • • Subject to: • Model for Platform 2: Test Trace for Platform 1: a & b are from platforms p1 & p2 45
  • 46. Solving for maximizing matching Given: Constraint: Subject to: • • • a & b are from platforms p1 & p2 Model for Platform 2: Test Trace for Platform 1:Ordering Constraint on matched actions ai aj bx by 46
  • 47. Solving for maximizing matching Given: Constraint: Subject to: • • • a & b are from platforms p1 & p2 Model for Platform 2: Test Trace for Platform 1:No Invalid Ordering between matched actions ai aj bx bybz ak 47
  • 48. Solving for maximizing matching Given: Constraint: Where: • • Subject to: • Model for Platform 2: Test Trace for Platform 1: a & b are from platforms p1 & p2 48
  • 49. Technique Overview Platform 1 App Platform 2 App Test Trace Generation Platform 1 Tests Incremental Model Generation Platform 1 Test Trace Test Generation Platform 2 Tests Model-Trace Mapping 1 2 3 49
  • 50. Technique Overview Platform 1 App Platform 2 App Test Trace Generation Platform 1 Tests Incremental Model Generation Platform 1 Test Trace Mod M 1 2 50
  • 51. Technique Overview Platform 1 App Platform 2 App Test Trace Generation Platform 1 Tests Incremental Model Generation Platform 1 Test Trace Test Generation Platform 2 Tests Model-Trace Mapping 1 2 3 51
  • 52. 1. Trace Generation MyList Item > MyList + TAP “MyList Item” TAP <“cell”, “”, “”, “MyList Item”, 0> Action Widget Information: • Class Name • ID • Name • Value • Position in Parent 52
  • 53. 1. Trace Generation TAP “MyList Item” TAP “Star Item” AssertExists “Star” Test TAP <“cell”, “”, “”, “MyList Item”, 0> TAP <“button”, “”, “btn1”, “Star Item”, 0> AssertExists <“icon”, “Star”, “”, “”, 0> Test Trace 53
  • 54. 2. Incremental Model Generation App 2 Test Traces Crawler Matcher Controller Mapping Model 54
  • 55. General Model Exploration INPUT: Application under Test ALGO: Model ← (S, s0, A, δ) | S = {s0}, A=ϵ, δ=ϵ Worklist ← s0.actions() While (Worklist.size > 0) and time() < TIMEOUT (s, a) ← getNextAction(Worklist) snext ← doAction(s, a) if snext ∉ S Worklist ← snext.actions() Model.add(s, a, snext) Return Model View Items Add Item MyList Items MyList Item MyList 55
  • 56. MigraTest Model Exploration INPUT: Application under Test Test Traceset = {<a1, a2, …, an>, …} ALGO: Model ← (S, s0, A, δ) | S = {s0}, A=ϵ, δ=ϵ Worklist ← s0.actions() While (Worklist.size > 0) and time() < TIMEOUT Sol ← MaxMatchSolve(Model, Traceset) (s, a) ← Sol.getNextAction(Worklist) snext ← doAction(s, a) if snext ∉ S Worklist ← snext.actions() Model.add(s, a, snext) Return Model, Sol.Map MigraTest decides what to explore 56
  • 57. getNextAction • Intuition: Prioritize clicks based on action similarity and scope of new potential assignments Cross-platform action similarity (widget similarity & action compatibility) Number of unassigned dependent actions 57
  • 58. Solving for Matching a1 a2 a3 b1 b2 ∼ ∼ ∼ ∼ ∼ ∼ TAP “MyList Item” TAP “Star Item” TAP “Delete Item” TAP “View Item s” TAP “Add Item ” ? ?✔ TAP "View Items" View Items Add Item MyList TAP "Add Item" b1 b2 58
  • 59. TAP "View Items" View Items Add Item MyList TAP "Add Item" b1 b2 TAP "View Items" View Items Add Item MyList TAP "Add Item" b1 b2 Items MyList Item MyList Add Item MyList Item Name Add TAP "MyList Item" TAP "Add" Type "Item Name" b3 b4 b5 59
  • 60. Solving for Matching a1 a2 a3 b1 b2 b3 b4 b5 = ∼ ∼ ∼ ∼ ∼ ∼ ∼ ∼ TAP “MyList Item” TAP “Star Item” TAP “Delete Item” TAP “M yListItem ” TAP “View Item s” TAP “Add Item ” TYPE “Item Nam e” TAP “Add” ✔ TAP "View Items" View Items Add Item MyList TAP "Add Item" b1 b2 Items MyList Item MyList Add Item MyList Item Name Add TAP "MyList Item" TAP "Add" Type "Item Name" b3 b4 b5 60 ? ? ? ?
  • 61. TAP "View Items" View Items Add Item MyList TAP "Add Item" b1 b2 Items MyList Item MyList Add Item MyList Item Name Add TAP "Add" Type "Item Name" b3 b4 b5 Items Delete MyList Item Star MyList TAP "MyList Item" TAP "Star" TAP "Delete" b6 b7 TAP "View Items" View Items Add Item MyList TAP "Add Item" b1 b2 Items MyList Item MyList Add Item MyList Item Name Add TAP "MyList Item" TAP "Add" Type "Item Name" b3 b4 b5 61
  • 62. Solving for Matching a1 a2 a3 b1 b2 b3 b4 b5 b6 b7 = ∼ ∼ ∼ ∼ ∼ ∼ ∼ ∼ ∼ ∼ ✔ ✔ TAP “MyList Item” TAP “Star Item” TAP “Delete Item” TAP “M yListItem ” TAP “View Item s” TAP “Add Item ” TYPE “Item Nam e” TAP “Add”TAP “Star” TAP “Delete” ✔ 62 ? ? ? ? Trace Action Model Action a1 b3 a2 b6 a3 b7 Trace-Model Action Mapping
  • 63. 3. Test Generation Model TAP "View Items" View Items Add Item MyList TAP "Add Item" b1 b2 Items MyList Item MyList Add Item MyList Item Name Add TAP "Add" Type "Item Name" b3 b4 b5 Items Delete MyList Item Star MyList TAP "MyList Item" TAP "Star" TAP "Delete" b6 b7 Trace a2a1 a1 a3 Trace Action Model Action a1 b3 a2 b6 a3 b7 Trace-Model Action Mapping63
  • 64. 3. Test Generation Trace a2a1 a1 a3 Model TAP "View Items" View Items Add Item MyList TAP "Add Item" b1 b2 Items MyList Item MyList Add Item MyList Item Name Add TAP "Add" Type "Item Name" b3 b4 b5 Items Delete MyList Item Star MyList TAP "MyList Item" TAP "Star" TAP "Delete" b6 b7 b3b1 b6 b3b1 b7 Trace Action Model Action a1 b3 a2 b6 a3 b7 Trace-Model Action Mapping64
  • 65. 3. Test Generation Model TAP "View Items" View Items Add Item MyList TAP "Add Item" b1 b2 Items MyList Item MyList Add Item MyList Item Name Add TAP "Add" Type "Item Name" b3 b4 b5 Items Delete MyList Item Star MyList TAP "MyList Item" TAP "Star" TAP "Delete" b6 b7 b3b1 b6 b3b1 b7 Tap “View Items” Tap “MyList Item” Tap “Star” Tap “View Items” Tap “MyList Item” Tap “Delete” 65
  • 66. 3. Test Generation (Oracle Migration) AssertExists selector AssertText 
 selector ExpectedValue AssertText 
 new_selector ExpectedValue AssertExists new_selector new_selector := best_of(class, label, name, value, position) 66
  • 67. 3. Test Generation (Oracle Migration) AssertExists selector AssertText 
 selector ExpectedValue AssertText 
 new_selector ExpectedValue AssertExists new_selector new_selector := best_of(class, label, name, value, position) Extra Checks to catch potential migration issues assertExists✔ Multiple elements exist Element doesn’t exist yet (Flaky?) Element exists but with different value 67
  • 71. wikiHow: Test Cases TEST CASE DESCRIPTION Items loaded When user selects category, check if items in category are loaded Page title When user selects category, check if page title matches category name Back button When user selects category & item, & presses button with label “Back”, check if page title matches category name Pop-up shown When user selects category & item, & presses button with label “Add”, check if pop-up is displayed to user WebView loaded When user selects category & item, check if a WebView is added on the screen 71
  • 72. wikiHow: Test Migration TEST CASE MIGRATED CHALLENGE ISSUES FOUND Items loaded Yes Page title Yes Duplicates found Back button Partial Platform specific functionality Pop-up shown Partial Missing functionality Missing functionality WebView loaded Yes 72
  • 75. Case Study: WhiteHouse 75 iOS Test cases Android Model Generation WhiteHouse.govNetwork Capture-Replay Proxy
  • 76. WhiteHouse: Test Cases 76 TEST CASE DESCRIPTION Menu Loaded When the user taps on Menu, check if “BLOG” is present Photo Loaded When the user taps on Menu, and selects “PHOTOS” check if the first photo is loaded Video Loaded When the user taps on Menu, and selects “VIDEOS” check if the first photo is loaded Search When the user taps on Menu, and enters “A” in the search bar, check if page contains “No Results”
  • 77. WhiteHouse: Test Migration 77 TEST CASE MIGRATED CHALLENGE POTENTIAL ISSUES FOUND Menu Loaded Yes Photo Loaded Yes Empty label on Android Video Loaded Yes Empty label on Android Search Yes Text Input
  • 78. Future Work Platform-specific Functionality AssertTrue AssertNotExists Complex or Null Oracle Migration Sand-boxing (Mocking, Reset) 78
  • 79. Plans • Submit unpublished work to ISSTA’15 • Capture-Replay project for “Testing Everywhere” • NSF i-Corps Program to Commercialize Capture- Replay technology for Business Intelligence 79