automated concolic testing of smartphone apps saswat anand stanford univ. mayur naik georgia tech....
TRANSCRIPT
![Page 1: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/1.jpg)
Automated Concolic Testing
of Smartphone Apps
Saswat AnandStanford Univ.
Mayur NaikGeorgia Tech.
Hongseok YangUniv. of Oxford
Mary Jean HarroldGeorgia Tech.
![Page 2: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/2.jpg)
Motivation
![Page 3: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/3.jpg)
Motivation
Problems with Smartphone Apps
![Page 4: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/4.jpg)
Automatically generate test inputs for bounded exhaustive testing of
smartphone apps
Problem
![Page 5: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/5.jpg)
Test Inputs for Apps
• Whole-program testing• Test input is a sequence of events e1, e2…,
en
• Types of events: a tap on the screen, change in geo-location, arrival of a SMS message, etc.
![Page 6: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/6.jpg)
Bounded Exhaustive Testing of Apps
S, the set of all event sequences* s.t. each sequence
takes a unique path
*of bounded-length
Set of covered
branchesGoal: cover
these
![Page 7: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/7.jpg)
1. Generate individual events2. Generate sequences of events
Two subproblems
![Page 8: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/8.jpg)
Generating Individual Events
• An event is associated with datao X & Y coordinates of a tap evento geo-location of a change-in-geo-location evento content of an incoming SMS evento etc.
• Data determine which program path is taken
Challenge: Generate the “right” data for events
![Page 9: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/9.jpg)
Example: Music Player App
Play Pause
Stop Eject
Rewind Skip
![Page 10: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/10.jpg)
Example: Music Player App
public void onClick(View target) { if (target == play) startService(new Intent(ACTION_PLAY)); else if (target == pause) startService(new Intent(ACTION_PAUSE)); else if (target == skip) startService(new Intent(ACTION_SKIP)); else if (target == rewind) startService(new Intent(ACTION_REWIND)); else if (target == stop) startService(new Intent(ACTION_STOP)); else if (target == eject) showUrlDialog();}
tap(136, 351)
![Page 11: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/11.jpg)
Example: Music Player App
public void onClick(View target) { if (target == play) startService(new Intent(ACTION_PLAY)); else if (target == pause) startService(new Intent(ACTION_PAUSE)); else if (target == skip) startService(new Intent(ACTION_SKIP)); else if (target == rewind) startService(new Intent(ACTION_REWIND)); else if (target == stop) startService(new Intent(ACTION_STOP)); else if (target == eject) showUrlDialog();}
tap(248, 351)
![Page 12: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/12.jpg)
Example: Music Player App
public void onClick(View target) { if (target == play) startService(new Intent(ACTION_PLAY)); else if (target == pause) startService(new Intent(ACTION_PAUSE)); else if (target == skip) startService(new Intent(ACTION_SKIP)); else if (target == rewind) startService(new Intent(ACTION_REWIND)); else if (target == stop) startService(new Intent(ACTION_STOP)); else if (target == eject) showUrlDialog();}
tap(360, 351)
![Page 13: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/13.jpg)
Example: Music Player App
public void onClick(View target) { if (target == play) startService(new Intent(ACTION_PLAY)); else if (target == pause) startService(new Intent(ACTION_PAUSE)); else if (target == skip) startService(new Intent(ACTION_SKIP)); else if (target == rewind) startService(new Intent(ACTION_REWIND)); else if (target == stop) startService(new Intent(ACTION_STOP)); else if (target == eject) showUrlDialog();}
tap(24, 351)
![Page 14: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/14.jpg)
Example: Music Player App
public void onClick(View target) { if (target == play) startService(new Intent(ACTION_PLAY)); else if (target == pause) startService(new Intent(ACTION_PAUSE)); else if (target == skip) startService(new Intent(ACTION_SKIP)); else if (target == rewind) startService(new Intent(ACTION_REWIND)); else if (target == stop) startService(new Intent(ACTION_STOP)); else if (target == eject) showUrlDialog();}tap(136, 493)
![Page 15: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/15.jpg)
Example: Music Player App
public void onClick(View target) { if (target == play) startService(new Intent(ACTION_PLAY)); else if (target == pause) startService(new Intent(ACTION_PAUSE)); else if (target == skip) startService(new Intent(ACTION_SKIP)); else if (target == rewind) startService(new Intent(ACTION_REWIND)); else if (target == stop) startService(new Intent(ACTION_STOP)); else if (target == eject) showUrlDialog();}tap(305, 544)
![Page 16: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/16.jpg)
Existing alternatives• Random Testing
oCannot perform systematic/exhaustive testing
• Platform-specific tools (e.g., hierarchy viewer in Android)oLimited to GUI EventsoCannot handle third-party GUI widgets
Generating Individual Events
![Page 17: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/17.jpg)
Generating Individual Events
Our solutionUse concolic execution to generate data
associated with events
![Page 18: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/18.jpg)
FT
FT
tap(int x, int y){1 if (x>2 && x<4){2 if (y>1 && y<3)3 W1_clicked();4 else5 W2_clicked();6 }else7 W3_clicked(); }
Generating Individual Tap Events
1
72
3 5
x>2 && x<4
y>1 && y<3
![Page 19: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/19.jpg)
Generating Individual Tap Events
tap(1, 5)
FT
FT1
72
3 5
x>2 && x<4
y>1 && y<3
![Page 20: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/20.jpg)
Generating Individual Tap Events
tap(1, 5)
F1 !(x>2 && x<4)
W3_clicked()
FT
FT1
72
3 5
x>2 && x<4
y>1 && y<3
(x>2 && x<4)
tap(3, 5)
![Page 21: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/21.jpg)
(x>2 && x<4)
Generating Individual Tap Events
tap(1, 5)
T1 (x>2 && x<4)F2 !(y>1 && y<3) W2_clicked()
tap(3, 5)
FT
FT1
72
3 5
x>2 && x<4
y>1 && y<3
(x>2 && x<4)(y>1 && y<3)
tap(3, 2)
![Page 22: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/22.jpg)
Generating Individual Tap Events
tap(1, 5)
(x>2 && x<4)(y>1 && y<3)
tap(3, 5) tap(3, 2)
T1 (x>2 && x<4)T2 (y>1 && y<3) W1_clicked()
FT
FT1
72
3 5
x>2 && x<4
y>1 && y<3
![Page 23: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/23.jpg)
Example: Music Player App
❖
❖
❖
❖ ❖❖
❖ ❖
❖❖
❖
![Page 24: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/24.jpg)
1. Generate individual events2. Generate sequences of events
Two subproblems
![Page 25: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/25.jpg)
Generating Sequences of Events
Concatenate individual events generated by concolic execution.
![Page 26: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/26.jpg)
Baseline Algorithm
Set of covered
branches
S, Set of all event sequences s.t. each sequence takes a
unique pathBaseline
algorithm
Goal: cover these
![Page 27: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/27.jpg)
Number of sequences generated for Music Player app by baseline algorithm
Baseline Algorithm Suffers from Path Explosion
1 2 3 40
5000
10000
15000
20000
25000
![Page 28: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/28.jpg)
ACTEve Algorithm
ACTEve: Automated Concolic Testing of Event-driven programs
![Page 29: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/29.jpg)
ACTEve Algorithm
Set of covered
branches
R s.t. R S⊆
S, Set of all event sequences s.t. each sequence takes a
unique pathBaseline
algorithm
ACTEve algorithm
Goal: cover these
ACTEve is relatively sound
![Page 30: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/30.jpg)
Path Subsumption
¿ γ ,C>¿Maps memory location to values (symbolic or concrete)
Path constraint
Program state in concolic execution
![Page 31: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/31.jpg)
Program entry
Path Path
¿ γ1 ,𝐶1>¿ ¿ γ2 ,𝐶2>¿
subsumes
Path Subsumption
Note - memory map – path constraint
![Page 32: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/32.jpg)
Program entry
Path Path
¿ γ1 ,𝐶1>¿ ¿ γ2 ,𝐶2>¿
subsumes
Path Subsumption
Note - memory map – path constraint
- Don’t generate test corresponding to any path that is an extension of - Only generate tests corresponding to paths that are extension of
![Page 33: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/33.jpg)
• Checking path subsumption is very expensive in generalo Constraint implication checkoMatching memory map
• But, path subsumption can be checked cheaply in special caseso Read-only eventso Events whose mutual ordering does not mattero etc.
Path Subsumption
![Page 34: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/34.jpg)
event is does not write to any memory location.
Read-only Events
Program Entry
corresponds to
corresponds to
Path executed for event sequence
is subsumed by q
![Page 35: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/35.jpg)
❖
❖
❖
❖❖ ❖❖❖
❖ ❖❖
Read-only Events
Read-only events are represented as ❖
![Page 36: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/36.jpg)
ACTEve System Architecture
![Page 37: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/37.jpg)
Empirical Study
• Apply ACTEve and baseline algorithmso event sequences of length up to 4o 16 concurrently running emulators o time budget of 12 hours
• Measured three metricso running timeo number of feasible pathso number of satisfiability checks
![Page 38: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/38.jpg)
Empirical Results
![Page 39: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/39.jpg)
Future Work
Widget Explosion
![Page 40: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/40.jpg)
1. Concolic execution to generate individual events
2. ACTEve: an efficient algorithm for bounded exhaustive testing of event-driven programs o Requires only a small fraction (5-36%) of time
compared to baseline algorithm
3. Implementation for Android
Main Contributions
![Page 41: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/41.jpg)
Backup slides
![Page 42: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/42.jpg)
¿ γ 1 ,𝐶1>¿
¿ γ 2 ,𝐶1∧𝐶′>¿
1. because does not write to any memory location.
Read-only Events
Program Entry
corresponds to event sequence
corresponds to in
Path executed for input event sequence
![Page 43: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/43.jpg)
Output of Android’s “Hierarchy Viewer” tool
A Solution: Use Platform-specific Knowlege
![Page 44: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/44.jpg)
A Solution: Use Platform-specific Knowlege
void onTouchEvent(MotionEvent e) { int rawX = (int) e.getX(); int rawY = (int) e.getY(); int x = (rawX – MARGIN) / SIZE; int y = (rawY – MARGIN) / SIZE; if (x >= 0 && x < 3 && y >= 0 & y < 3) { int cell = x + 3 * y; … }
Output of Android’s “Hierarchy Viewer” tool
![Page 45: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/45.jpg)
Program Entry
Path
{is feasible} {is feasible}
Path
Program Entry
Covered branches
Covered branches
same program location
Path Subsumption
![Page 46: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/46.jpg)
Program Entry
Path
{is feasible} {is feasible}
Path
Program Entry
Covered branches
Covered branches
same program location
if we explore all paths that extends , then no need to explore any path that extends because no additional branch coverage will be obtained.
Path Subsumption
![Page 47: Automated Concolic Testing of Smartphone Apps Saswat Anand Stanford Univ. Mayur Naik Georgia Tech. Hongseok Yang Univ. of Oxford Mary Jean Harrold Georgia](https://reader036.vdocuments.mx/reader036/viewer/2022062417/551c0ab2550346a34f8b50c1/html5/thumbnails/47.jpg)
Path constraint when PAUSE button is tapped on
Example: Music Player App