SlideShare a Scribd company logo
1 of 82
Download to read offline
ICSME’17
Shanghai, China
Wednesday, September 20th, 2017
Mario Linares-Vásquez,
Kevin Moran,
& Denys Poshyvanyk
Continuous, Evolutionary and
Large-Scale: A New Perspective for
Automated Mobile AppTesting
AUTOMATED MOBILE TESTING
Study FindingsStudies on Mobile
Testing Practices
Automated Input Generation for
Android Apps:Are We ThereYet?
Shauvik Roy Choudhary,Alessandra Gorla,
Alessandro Orso
Understanding the Test
Automation Culture of App
Developers
Pavneet Singh Kochhar, FerdianThung,
Nachiappan Nagappan,Thomas Zimmermann,
and David Lo
How Do Developers Test
Android Applications?
Mario Linares-Vasquez, Carlos Bernal-Cárdenas,
Kevin Moran, and Denys Poshyvanyk
AUTOMATED MOBILE TESTING
Study Findings
• Lack of Debugging Support
• Lack of Reproducible Test Cases
Studies on Mobile
Testing Practices
Automated Input Generation for
Android Apps:Are We ThereYet?
Shauvik Roy Choudhary,Alessandra Gorla,
Alessandro Orso
Understanding the Test
Automation Culture of App
Developers
Pavneet Singh Kochhar, FerdianThung,
Nachiappan Nagappan,Thomas Zimmermann,
and David Lo
How Do Developers Test
Android Applications?
Mario Linares-Vasquez, Carlos Bernal-Cárdenas,
Kevin Moran, and Denys Poshyvanyk
AUTOMATED MOBILE TESTING
Study Findings
• Lack of Debugging Support
• Lack of Reproducible Test Cases
Studies on Mobile
Testing Practices
Automated Input Generation for
Android Apps:Are We ThereYet?
Shauvik Roy Choudhary,Alessandra Gorla,
Alessandro Orso
Understanding the Test
Automation Culture of App
Developers
Pavneet Singh Kochhar, FerdianThung,
Nachiappan Nagappan,Thomas Zimmermann,
and David Lo
How Do Developers Test
Android Applications?
Mario Linares-Vasquez, Carlos Bernal-Cárdenas,
Kevin Moran, and Denys Poshyvanyk
• Mobile Apps Tend to be Poorly
Tested
• Testing is Done Mostly Manually
AUTOMATED MOBILE TESTING
Study Findings
• Lack of Debugging Support
• Lack of Reproducible Test Cases
Studies on Mobile
Testing Practices
Automated Input Generation for
Android Apps:Are We ThereYet?
Shauvik Roy Choudhary,Alessandra Gorla,
Alessandro Orso
Understanding the Test
Automation Culture of App
Developers
Pavneet Singh Kochhar, FerdianThung,
Nachiappan Nagappan,Thomas Zimmermann,
and David Lo
How Do Developers Test
Android Applications?
Mario Linares-Vasquez, Carlos Bernal-Cárdenas,
Kevin Moran, and Denys Poshyvanyk
• Mobile Apps Tend to be Poorly
Tested
• Testing is Done Mostly Manually
• Developers Prefer Use-Case
based Testing
• Test Quality Metrics need to be
rethought
AUTOMATED MOBILE TESTING
Study Findings
• Lack of Debugging Support
• Lack of Reproducible Test Cases
Studies on Mobile
Testing Practices
Automated Input Generation for
Android Apps:Are We ThereYet?
Shauvik Roy Choudhary,Alessandra Gorla,
Alessandro Orso
Understanding the Test
Automation Culture of App
Developers
Pavneet Singh Kochhar, FerdianThung,
Nachiappan Nagappan,Thomas Zimmermann,
and David Lo
How Do Developers Test
Android Applications?
Mario Linares-Vasquez, Carlos Bernal-Cárdenas,
Kevin Moran, and Denys Poshyvanyk
• Mobile Apps Tend to be Poorly
Tested
• Testing is Done Mostly Manually
• Developers Prefer Use-Case
based Testing
• Test Quality Metrics need to be
rethought
OUR VISION:
OUR VISION:
EASY TO USE & EFFECTIVE MOBILE TESTING BASED
ON THREE CORE PRINCIPLES:
CONTINUOUS, EVOLUTIONARY, & LARGE SCALE (CEL)
HOW DO WE GET THERE?
• Part 0: State of the Art & Practice
• Part 1: Existing Problems in Mobile App Testing
• Part2: Continuous, Evolutionary, & Large Scale
Mobile Testing
STATE OF THE ART & PRACTICE
OVERVIEW OF TOOLS & SERVICES
OVERVIEW OF TOOLS & SERVICES
• Automation Frameworks & APIs
• Record & Replay Tools
• Automated Input Generation
Tools
• Bug & Error Reporting
• Crowdsourced Testing
• Cloud Testing Services
• Device Streaming Tools
}
}
Traditional Android Test
Case Generation
Bug Reporting,
Crowdsourcing and Services
ANDROID TEST CASE GENERATION
AUTOMATION FRAMEWORKS & APIS
TESTS
JUnit, Espresso, UI Automator, Robotium
Monkey
AUTOMATION FRAMEWORKS & APIS
UI Automator
RECORD & REPLAY (R&R)
AUT/SUT
UI Events
Recorder Script
Scripts
UI Events
Monkey AUT/SUT
UI Events
AUTOMATED INPUT GENERATION TECHNIQUES (AIG)
AUTOMATED INPUT GENERATION TECHNIQUES (AIG)
• Differing Goals:
• Code Coverage
• Crashes
• Test Sequence Length
AUTOMATED INPUT GENERATION TECHNIQUES (AIG)
• Differing Goals:
• Code Coverage
• Crashes
• Test Sequence Length
• Three Main Types:
• Random-Based
• Systematic
• Model-Based
RANDOM/FUZZ TESTING
Monkey
X or Y ?
AUT/SUT
RANDOM/FUZZ TESTING
Monkey
X or Y ?
AUT/SUT
Event x
Invalid
EventY
Valid
GUI-RIPPING
Ripper/Extractor ModelAUT/SUT Monkey
GUI-RIPPING
Ripper/Extractor ModelAUT/SUT Monkey
A or B ?
GUI-RIPPING
Ripper/Extractor ModelAUT/SUT Monkey
Snapshot 1
Snapshot 1
GUI State 1
A or B ?
GUI-RIPPING
Ripper/Extractor ModelAUT/SUT Monkey
Snapshot 1
Snapshot 1
GUI State 1
Event 1
A or B ?
GUI-RIPPING
Ripper/Extractor ModelAUT/SUT Monkey
Snapshot 1
Snapshot 1
GUI State 1
Event 1
Snapshot 2
Snapshot 2
GUI State 2
A or B ?
SYSTEMATIC EXPLORATION
Monkey
A or B ?
Breadth-First (BF)Depth-First (DF)
Random (Uniform) Random (A-priori distr.)
Other options (online decision)
MODEL-BASED TESTING
UI Events
Model Monkey AUT/SUT
- Manually generated
- Automatically generated (source code)
- Ripped at runtime (upfront)
- Ripped at runtime (interactive)
EMERGING AIG APPROACHES
• Recently Introduced Approaches for AIG:
• Search-Based Approaches1
• Symbolic/Concolic Execution2
1Ke Mao, Mark Harman, andYue Jia. 2016. Sapienz: multi-objective automated testing for Android applications.
In Proceedings of the 25th International Symposium on SoftwareTesting and Analysis (ISSTA 2016)
2Nariman Mirzaei, Joshua Garcia, Hamid Bagheri,Alireza Sadeghi, and Sam Malek. 2016. Reducing
combinatorics in GUI testing of android applications. In Proceedings of the 38th International Conference on
Software Engineering (ICSE '16)
EMERGING AIG APPROACHES
Automation
Frameworks
✓ Easy reproduction
✓ High level syntax
✓ Black box testing
- Learning curve
- User-defined oracles
- Expensive maintenance
Record &
Replay
✓ Easy reproduction
- Expensive collection and
maintenance
- Coupled to locations
AIG: Random
Based
✓ Fast execution
✓ Good at finding crashes
- Invalid events
- Lack of expressiveness
AIG:
Systematic
✓ Achieves Reasonable Coverage
✓ May miss crashes
- Can be time consuming
- Typically cannot
exercise complex
features
AIG: Model
Based
✓ Event sequences
✓ Automatic exploration
- Some Invalid sequences
- State Explosion
- Incomplete models
BUG REPORTING AND CROWDSOURCED TESTING
BUG REPORTING SERVICES
AUT/SUTThird Party Library
Web Service
BUG REPORTING SERVICES
BUG REPORTING SERVICES
• Features of Bug
Reporting Services:
• Video Recording
• App Analytics
• Automated Crash
Reporting
BUG REPORTING SERVICES
• Features of Bug
Reporting Services:
• Video Recording
• App Analytics
• Automated Crash
Reporting
CROWDSOURCED TESTING SERVICES
AUT/SUTThird Party Service
CROWDSOURCED TESTING SERVICES
CROWDSOURCED TESTING SERVICES
• Types of Crowdsourced Testing Services:
• Expert Testing
• Functional Testing
• UX Testing
• Security Testing
• Localization Testing
DEVICE STREAMING SERVICES
Third Party Service
Third Party Service
TESTING SERVICES PROS & CONS
Bug Reporting
Services
✓ Allows for more details
about field failures
✓ App Analytics can help
with UI/UX design
- Can be expensive
- Requires integrating
library
- Typically do report GUI-
traces
TESTING SERVICES PROS & CONS
Crowdsourcing
Services
✓ Low effort required from
developers
✓ Expert tester might
uncover unexpected bugs
- Can be expensive
- May not fit within Agile
workflows
- Quality of Reports can
vary
Bug Reporting
Services
✓ Allows for more details
about field failures
✓ App Analytics can help
with UI/UX design
- Can be expensive
- Requires integrating
library
- Typically do report GUI-
traces
TESTING SERVICES PROS & CONS
Crowdsourcing
Services
✓ Low effort required from
developers
✓ Expert tester might
uncover unexpected bugs
- Can be expensive
- May not fit within Agile
workflows
- Quality of Reports can
vary
Bug Reporting
Services
✓ Allows for more details
about field failures
✓ App Analytics can help
with UI/UX design
- Can be expensive
- Requires integrating
library
- Typically do report GUI-
traces
Device
Streaming
✓ Allows remote users
access to controlled
devices
✓ Allows for collection of
detailed user
information
- Can be difficult to
configure
- Relies on strong network
connection
- Cannot simulate mobile
specific contexts like
sensors
CHALLENGES IN MOBILE APP TESTING
OVERVIEW OF CHALLENGES
• Fragmentation
• Test Flakiness
• Lack Mobile-Specific Fault Model
• Lack of Intelligent Test Case Generation
• Absence of Mobile Testing Oracles
• Lack of Support for Multiple Testing Goals
FRAGMENTATION
Credit: https://thenextweb.com/
TEST-FLAKINESS
GUITest Suite #1
TEST-FLAKINESS
GUITest Suite #1
TEST-FLAKINESS
GUITest Suite #1
TEST-FLAKINESS
GUITest Suite #1
GUITest Suite #1
TEST-FLAKINESS
GUITest Suite #1
GUITest Suite #1
TEST-FLAKINESS
GUITest Suite #1
GUITest Suite #1
MOBILE SPECIFIC FAULT MODEL
Issues
Documentation
User Reviews
Coding and
Categorization
Mobile Specific
Fault Taxonomy
& Model
Repository Mining
MOBILE SPECIFIC FAULT MODEL
Issues
Documentation
User Reviews
Coding and
Categorization
Mobile Specific
Fault Taxonomy
& Model
Repository Mining
Linares-Vásquez, M., Bavota, G.,Tufano, M., Moran, K.,
Di Penta, M.,Vendome, C., M., Bernal-Cárdenas,
C. and Poshyvanyk, D.,
“Enabling Mutation Testing for Android Apps”, 
in FSE’17
INTELLIGENT TEST CASE GENERATION
AIG Tool
INTELLIGENT TEST CASE GENERATION
AIG Tool
1)Tap on the
“CreateTask” Button
INTELLIGENT TEST CASE GENERATION
AIG Tool
1)Tap on the
“CreateTask” Button
2)Type “Get Milk” into
the “Task” EditText
INTELLIGENT TEST CASE GENERATION
AIG Tool
1)Tap on the
“CreateTask” Button
2)Type “Get Milk” into
the “Task” EditText
3)Tap on the “Done”
Button
INTELLIGENT TEST CASE GENERATION
AIG Tool
1)Tap on the
“CreateTask” Button
2)Type “Get Milk” into
the “Task” EditText
3)Tap on the “Done”
Button
3) ????
ABSENCE OF MOBILE TESTING ORACLES
AIG Tool
ABSENCE OF MOBILE TESTING ORACLES
AIG Tool
????
ABSENCE OF MOBILE TESTING ORACLES
AIG Tool
????
????
ABSENCE OF MOBILE TESTING ORACLES
AIG Tool
????
????
Reyhaneh Jabbarvand and Sam Malek,
“μDroid: An Energy-Aware Mutation Testing
Framework for Android”, 
in FSE’17
MULTIPLE TESTING GOALS
MULTIPLE TESTING GOALS
Test Specific Use Cases
SecurityTesting
Fuzz/StressTesting
EnergyTesting
PerformanceTesting
PlayTesting
MULTIPLE TESTING GOALS
Test Specific Use Cases
SecurityTesting
Fuzz/StressTesting
EnergyTesting
PerformanceTesting
PlayTesting
AutomatedTesting Approaches have mainly been
concerned with Destructive Testing
Developers need automated support for diverse
testing Goals!
OUR VISION: CONTINUOUS, EVOLUTIONARY
& LARGE SCALE MOBILE TESTING
CEL MOBILE TESTING PRINCIPLES
• Continuous
• Following the trends of CI/CD, Mobile testing for different
goals should happen in a continuous manner
• Evolutionary
• Testing should automatically adapt as an app evolves,
according to code, usage, or hardware/platform changes
• Large-Scale
• Parallelization of tests across different device
configurations
CEL ARCHITECTURE
APIs evolution
monitor
Changes Monitoring Subsystem
Developers
User reviews
APIs
Users
On-device
usages monitor
Source code
changes
monitor
Markets monitor
Source code
Impact analyzer
Execution
traces+ logs
analyzer
API
changes
analyzer
User reviews +
ratings analyzer
Models
repository
Models
generator
Test cases
generator
Large Execution Engine
Containers
Manager
Reports
repository
Reports
generator
Test cases
runner
Testing Artifacts Generation
Artifacts
repository
Multi-model
generator
Multi-model
repository
Test cases + oracles
Domain, GUI,
Usage, Contextual,
Faults models
Multi-model
CEL ARCHITECTURE
APIs evolution
monitor
Changes Monitoring Subsystem
Developers
User reviews
APIs
Users
On-device
usages monitor
Source code
changes
monitor
Markets monitor
Source code
Impact analyzer
Execution
traces+ logs
analyzer
API
changes
analyzer
User reviews +
ratings analyzer
Models
repository
Models
generator
Test cases
generator
Large Execution Engine
Containers
Manager
Reports
repository
Reports
generator
Test cases
runner
Testing Artifacts Generation
Artifacts
repository
Multi-model
generator
Multi-model
repository
Test cases + oracles
Domain, GUI,
Usage, Contextual,
Faults models
Multi-model
CEL ARCHITECTURE
APIs evolution
monitor
Changes Monitoring Subsystem
Developers
User reviews
APIs
Users
On-device
usages monitor
Source code
changes
monitor
Markets monitor
Source code
Impact analyzer
Execution
traces+ logs
analyzer
API
changes
analyzer
User reviews +
ratings analyzer
Models
repository
Models
generator
Test cases
generator
Large Execution Engine
Containers
Manager
Reports
repository
Reports
generator
Test cases
runner
Testing Artifacts Generation
Artifacts
repository
Multi-model
generator
Multi-model
repository
Test cases + oracles
Domain, GUI,
Usage, Contextual,
Faults models
Multi-model
CEL ARCHITECTURE
APIs evolution
monitor
Changes Monitoring Subsystem
Developers
User reviews
APIs
Users
On-device
usages monitor
Source code
changes
monitor
Markets monitor
Source code
Impact analyzer
Execution
traces+ logs
analyzer
API
changes
analyzer
User reviews +
ratings analyzer
Models
repository
Models
generator
Test cases
generator
Large Execution Engine
Containers
Manager
Reports
repository
Reports
generator
Test cases
runner
Testing Artifacts Generation
Artifacts
repository
Multi-model
generator
Multi-model
repository
Test cases + oracles
Domain, GUI,
Usage, Contextual,
Faults models
Multi-model
DIRECTIONS FOR THE SE RESEARCH COMMUNITY
DIRECTIONS FOR THE SE RESEARCH COMMUNITY
• Improved Model-Based Representations of Mobile Apps
DIRECTIONS FOR THE SE RESEARCH COMMUNITY
• Improved Model-Based Representations of Mobile Apps
• Goal-Oriented Automated Test Case Generation
DIRECTIONS FOR THE SE RESEARCH COMMUNITY
• Improved Model-Based Representations of Mobile Apps
• Goal-Oriented Automated Test Case Generation
• Flexible Open Source Solutions for Large Scale/
Crowdsourced Testing
DIRECTIONS FOR THE SE RESEARCH COMMUNITY
• Improved Model-Based Representations of Mobile Apps
• Goal-Oriented Automated Test Case Generation
• Flexible Open Source Solutions for Large Scale/
Crowdsourced Testing
• Derivation of Oracles
DIRECTIONS FOR THE SE RESEARCH COMMUNITY
• Improved Model-Based Representations of Mobile Apps
• Goal-Oriented Automated Test Case Generation
• Flexible Open Source Solutions for Large Scale/
Crowdsourced Testing
• Derivation of Oracles
• MSR Support for Mobile Testing
DIRECTIONS FOR THE SE RESEARCH COMMUNITY
• Improved Model-Based Representations of Mobile Apps
• Goal-Oriented Automated Test Case Generation
• Flexible Open Source Solutions for Large Scale/
Crowdsourced Testing
• Derivation of Oracles
• MSR Support for Mobile Testing
• Developer Feedback Mechanisms
Any Questions?
Thank you!
Kevin Moran
Ph.D. candidate
kpmoran@cs.wm.edu
www.kpmoran.com
Denys Poshyvanyk
Associate Professor
denys@cs.wm.edu
cs.wm.edu/~denys
Mario LinaresVasquez
Assistant Professor
m.linaresv@uniandes.edu.co
sistemas.uniandes.edu.co/~mlinaresv

More Related Content

What's hot

Machine Learning-Based Prototyping of Graphical User Interfaces for Mobile Apps
Machine Learning-Based Prototyping of Graphical User Interfaces for Mobile AppsMachine Learning-Based Prototyping of Graphical User Interfaces for Mobile Apps
Machine Learning-Based Prototyping of Graphical User Interfaces for Mobile Apps
Kevin Moran
 
Baris sarialioglu testing on the move, mobile testing
Baris sarialioglu   testing on the move, mobile testingBaris sarialioglu   testing on the move, mobile testing
Baris sarialioglu testing on the move, mobile testing
Romania Testing
 

What's hot (20)

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...
 
Machine Learning-Based Prototyping of Graphical User Interfaces for Mobile Apps
Machine Learning-Based Prototyping of Graphical User Interfaces for Mobile AppsMachine Learning-Based Prototyping of Graphical User Interfaces for Mobile Apps
Machine Learning-Based Prototyping of Graphical User Interfaces for Mobile Apps
 
Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous Testing
 
Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...
Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...
Эвристики, мнемоники и другие греческие слова в исследовательском тестировани...
 
Adam carmi
Adam carmiAdam carmi
Adam carmi
 
When & How to Successfully use Test Automation for Mobile Applications
When & How to Successfully use Test Automation for Mobile ApplicationsWhen & How to Successfully use Test Automation for Mobile Applications
When & How to Successfully use Test Automation for Mobile Applications
 
Top Best Practices for Successful Mobile Test Automation
Top Best Practices for Successful Mobile Test AutomationTop Best Practices for Successful Mobile Test Automation
Top Best Practices for Successful Mobile Test Automation
 
Best Practices for DevOps in Mobile App Testing
Best Practices for DevOps in Mobile App TestingBest Practices for DevOps in Mobile App Testing
Best Practices for DevOps in Mobile App Testing
 
Android automation tools
Android automation toolsAndroid automation tools
Android automation tools
 
Uber Mobility Meetup: Mobile Testing
Uber Mobility Meetup:  Mobile TestingUber Mobility Meetup:  Mobile Testing
Uber Mobility Meetup: Mobile Testing
 
Baris sarialioglu testing on the move, mobile testing
Baris sarialioglu   testing on the move, mobile testingBaris sarialioglu   testing on the move, mobile testing
Baris sarialioglu testing on the move, mobile testing
 
Uber mobility - Build & Release
Uber mobility - Build & ReleaseUber mobility - Build & Release
Uber mobility - Build & Release
 
Career in Software Testing | Skills Required for Software Test Engineer | Edu...
Career in Software Testing | Skills Required for Software Test Engineer | Edu...Career in Software Testing | Skills Required for Software Test Engineer | Edu...
Career in Software Testing | Skills Required for Software Test Engineer | Edu...
 
Top 10 Automation Testing Tools in 2020
Top 10 Automation Testing Tools in 2020Top 10 Automation Testing Tools in 2020
Top 10 Automation Testing Tools in 2020
 
Fight back android fragmentation
Fight back android fragmentationFight back android fragmentation
Fight back android fragmentation
 
Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Best Practices in Mobile Game Testing
Best Practices in Mobile Game TestingBest Practices in Mobile Game Testing
Best Practices in Mobile Game Testing
 
Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Velocity Conference: Increasing Speed To Market In Mobile Development Through...Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Velocity Conference: Increasing Speed To Market In Mobile Development Through...
 
Continuous code quality_in_java
Continuous code quality_in_javaContinuous code quality_in_java
Continuous code quality_in_java
 

Similar to Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mobile App Testing

HienVo_Mobile Testing_v.1.2
HienVo_Mobile Testing_v.1.2HienVo_Mobile Testing_v.1.2
HienVo_Mobile Testing_v.1.2
Hien Vo
 
Stop guessing, start testing – mobile testing done right - Timo Euteneuer
Stop guessing, start testing – mobile testing done right - Timo EuteneuerStop guessing, start testing – mobile testing done right - Timo Euteneuer
Stop guessing, start testing – mobile testing done right - Timo Euteneuer
JAXLondon_Conference
 
Saravanan B_Testing
Saravanan B_TestingSaravanan B_Testing
Saravanan B_Testing
Saravanan B
 

Similar to Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mobile App Testing (20)

HienVo_Mobile Testing_v.1.2
HienVo_Mobile Testing_v.1.2HienVo_Mobile Testing_v.1.2
HienVo_Mobile Testing_v.1.2
 
Agile Mobile Testing Workshop
Agile Mobile Testing WorkshopAgile Mobile Testing Workshop
Agile Mobile Testing Workshop
 
Mastering the Art of Mobile Testing by Akshita Puram
Mastering the Art of Mobile Testing by Akshita PuramMastering the Art of Mobile Testing by Akshita Puram
Mastering the Art of Mobile Testing by Akshita Puram
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous IntegrationExperitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
 
Crowd Testing Framework : Mobile Application Testing
Crowd Testing Framework : Mobile Application TestingCrowd Testing Framework : Mobile Application Testing
Crowd Testing Framework : Mobile Application Testing
 
Mobile testing practices
Mobile testing practicesMobile testing practices
Mobile testing practices
 
Mobile Testing Tools 101
Mobile Testing Tools 101Mobile Testing Tools 101
Mobile Testing Tools 101
 
Mobile Application Testing by Javed Ansari
Mobile Application Testing by Javed AnsariMobile Application Testing by Javed Ansari
Mobile Application Testing by Javed Ansari
 
The Essentials of Mobile App Testing and Monitoring
The Essentials of Mobile App Testing and MonitoringThe Essentials of Mobile App Testing and Monitoring
The Essentials of Mobile App Testing and Monitoring
 
Fragility of Layout-based and Visual GUI test scripts: an assessment study on...
Fragility of Layout-based and Visual GUI test scripts: an assessment study on...Fragility of Layout-based and Visual GUI test scripts: an assessment study on...
Fragility of Layout-based and Visual GUI test scripts: an assessment study on...
 
Stop guessing, start testing – mobile testing done right - Timo Euteneuer
Stop guessing, start testing – mobile testing done right - Timo EuteneuerStop guessing, start testing – mobile testing done right - Timo Euteneuer
Stop guessing, start testing – mobile testing done right - Timo Euteneuer
 
Step by-step mobile testing approaches and strategies
Step by-step mobile testing approaches and strategiesStep by-step mobile testing approaches and strategies
Step by-step mobile testing approaches and strategies
 
[2015/2016] Mobile thinking
[2015/2016] Mobile thinking[2015/2016] Mobile thinking
[2015/2016] Mobile thinking
 
Mobile Testing in the Cloud
Mobile Testing in the CloudMobile Testing in the Cloud
Mobile Testing in the Cloud
 
Kalyani_Kavade(1)
Kalyani_Kavade(1)Kalyani_Kavade(1)
Kalyani_Kavade(1)
 
Saravanan B_Testing
Saravanan B_TestingSaravanan B_Testing
Saravanan B_Testing
 
The Future of Testing
The Future of TestingThe Future of Testing
The Future of Testing
 
Why Apps Succeed: 4 Keys to Winning the Digital Quality Game
Why Apps Succeed: 4 Keys to Winning the Digital Quality GameWhy Apps Succeed: 4 Keys to Winning the Digital Quality Game
Why Apps Succeed: 4 Keys to Winning the Digital Quality Game
 
Thorsignia - Custom software development services in india
Thorsignia - Custom software development services in indiaThorsignia - Custom software development services in india
Thorsignia - Custom software development services in india
 

Recently uploaded

Recently uploaded (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mobile App Testing

  • 1. ICSME’17 Shanghai, China Wednesday, September 20th, 2017 Mario Linares-Vásquez, Kevin Moran, & Denys Poshyvanyk Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mobile AppTesting
  • 2.
  • 3.
  • 4.
  • 5. AUTOMATED MOBILE TESTING Study FindingsStudies on Mobile Testing Practices Automated Input Generation for Android Apps:Are We ThereYet? Shauvik Roy Choudhary,Alessandra Gorla, Alessandro Orso Understanding the Test Automation Culture of App Developers Pavneet Singh Kochhar, FerdianThung, Nachiappan Nagappan,Thomas Zimmermann, and David Lo How Do Developers Test Android Applications? Mario Linares-Vasquez, Carlos Bernal-Cárdenas, Kevin Moran, and Denys Poshyvanyk
  • 6. AUTOMATED MOBILE TESTING Study Findings • Lack of Debugging Support • Lack of Reproducible Test Cases Studies on Mobile Testing Practices Automated Input Generation for Android Apps:Are We ThereYet? Shauvik Roy Choudhary,Alessandra Gorla, Alessandro Orso Understanding the Test Automation Culture of App Developers Pavneet Singh Kochhar, FerdianThung, Nachiappan Nagappan,Thomas Zimmermann, and David Lo How Do Developers Test Android Applications? Mario Linares-Vasquez, Carlos Bernal-Cárdenas, Kevin Moran, and Denys Poshyvanyk
  • 7. AUTOMATED MOBILE TESTING Study Findings • Lack of Debugging Support • Lack of Reproducible Test Cases Studies on Mobile Testing Practices Automated Input Generation for Android Apps:Are We ThereYet? Shauvik Roy Choudhary,Alessandra Gorla, Alessandro Orso Understanding the Test Automation Culture of App Developers Pavneet Singh Kochhar, FerdianThung, Nachiappan Nagappan,Thomas Zimmermann, and David Lo How Do Developers Test Android Applications? Mario Linares-Vasquez, Carlos Bernal-Cárdenas, Kevin Moran, and Denys Poshyvanyk • Mobile Apps Tend to be Poorly Tested • Testing is Done Mostly Manually
  • 8. AUTOMATED MOBILE TESTING Study Findings • Lack of Debugging Support • Lack of Reproducible Test Cases Studies on Mobile Testing Practices Automated Input Generation for Android Apps:Are We ThereYet? Shauvik Roy Choudhary,Alessandra Gorla, Alessandro Orso Understanding the Test Automation Culture of App Developers Pavneet Singh Kochhar, FerdianThung, Nachiappan Nagappan,Thomas Zimmermann, and David Lo How Do Developers Test Android Applications? Mario Linares-Vasquez, Carlos Bernal-Cárdenas, Kevin Moran, and Denys Poshyvanyk • Mobile Apps Tend to be Poorly Tested • Testing is Done Mostly Manually • Developers Prefer Use-Case based Testing • Test Quality Metrics need to be rethought
  • 9. AUTOMATED MOBILE TESTING Study Findings • Lack of Debugging Support • Lack of Reproducible Test Cases Studies on Mobile Testing Practices Automated Input Generation for Android Apps:Are We ThereYet? Shauvik Roy Choudhary,Alessandra Gorla, Alessandro Orso Understanding the Test Automation Culture of App Developers Pavneet Singh Kochhar, FerdianThung, Nachiappan Nagappan,Thomas Zimmermann, and David Lo How Do Developers Test Android Applications? Mario Linares-Vasquez, Carlos Bernal-Cárdenas, Kevin Moran, and Denys Poshyvanyk • Mobile Apps Tend to be Poorly Tested • Testing is Done Mostly Manually • Developers Prefer Use-Case based Testing • Test Quality Metrics need to be rethought
  • 11. OUR VISION: EASY TO USE & EFFECTIVE MOBILE TESTING BASED ON THREE CORE PRINCIPLES: CONTINUOUS, EVOLUTIONARY, & LARGE SCALE (CEL)
  • 12. HOW DO WE GET THERE? • Part 0: State of the Art & Practice • Part 1: Existing Problems in Mobile App Testing • Part2: Continuous, Evolutionary, & Large Scale Mobile Testing
  • 13. STATE OF THE ART & PRACTICE
  • 14. OVERVIEW OF TOOLS & SERVICES
  • 15. OVERVIEW OF TOOLS & SERVICES • Automation Frameworks & APIs • Record & Replay Tools • Automated Input Generation Tools • Bug & Error Reporting • Crowdsourced Testing • Cloud Testing Services • Device Streaming Tools } } Traditional Android Test Case Generation Bug Reporting, Crowdsourcing and Services
  • 16. ANDROID TEST CASE GENERATION
  • 17. AUTOMATION FRAMEWORKS & APIS TESTS JUnit, Espresso, UI Automator, Robotium Monkey
  • 18. AUTOMATION FRAMEWORKS & APIS UI Automator
  • 19. RECORD & REPLAY (R&R) AUT/SUT UI Events Recorder Script Scripts UI Events Monkey AUT/SUT UI Events
  • 20. AUTOMATED INPUT GENERATION TECHNIQUES (AIG)
  • 21. AUTOMATED INPUT GENERATION TECHNIQUES (AIG) • Differing Goals: • Code Coverage • Crashes • Test Sequence Length
  • 22. AUTOMATED INPUT GENERATION TECHNIQUES (AIG) • Differing Goals: • Code Coverage • Crashes • Test Sequence Length • Three Main Types: • Random-Based • Systematic • Model-Based
  • 24. RANDOM/FUZZ TESTING Monkey X or Y ? AUT/SUT Event x Invalid EventY Valid
  • 28. GUI-RIPPING Ripper/Extractor ModelAUT/SUT Monkey Snapshot 1 Snapshot 1 GUI State 1 Event 1 A or B ?
  • 29. GUI-RIPPING Ripper/Extractor ModelAUT/SUT Monkey Snapshot 1 Snapshot 1 GUI State 1 Event 1 Snapshot 2 Snapshot 2 GUI State 2 A or B ?
  • 30. SYSTEMATIC EXPLORATION Monkey A or B ? Breadth-First (BF)Depth-First (DF) Random (Uniform) Random (A-priori distr.) Other options (online decision)
  • 31. MODEL-BASED TESTING UI Events Model Monkey AUT/SUT - Manually generated - Automatically generated (source code) - Ripped at runtime (upfront) - Ripped at runtime (interactive)
  • 32. EMERGING AIG APPROACHES • Recently Introduced Approaches for AIG: • Search-Based Approaches1 • Symbolic/Concolic Execution2 1Ke Mao, Mark Harman, andYue Jia. 2016. Sapienz: multi-objective automated testing for Android applications. In Proceedings of the 25th International Symposium on SoftwareTesting and Analysis (ISSTA 2016) 2Nariman Mirzaei, Joshua Garcia, Hamid Bagheri,Alireza Sadeghi, and Sam Malek. 2016. Reducing combinatorics in GUI testing of android applications. In Proceedings of the 38th International Conference on Software Engineering (ICSE '16)
  • 33. EMERGING AIG APPROACHES Automation Frameworks ✓ Easy reproduction ✓ High level syntax ✓ Black box testing - Learning curve - User-defined oracles - Expensive maintenance Record & Replay ✓ Easy reproduction - Expensive collection and maintenance - Coupled to locations AIG: Random Based ✓ Fast execution ✓ Good at finding crashes - Invalid events - Lack of expressiveness AIG: Systematic ✓ Achieves Reasonable Coverage ✓ May miss crashes - Can be time consuming - Typically cannot exercise complex features AIG: Model Based ✓ Event sequences ✓ Automatic exploration - Some Invalid sequences - State Explosion - Incomplete models
  • 34. BUG REPORTING AND CROWDSOURCED TESTING
  • 35. BUG REPORTING SERVICES AUT/SUTThird Party Library Web Service
  • 37. BUG REPORTING SERVICES • Features of Bug Reporting Services: • Video Recording • App Analytics • Automated Crash Reporting
  • 38. BUG REPORTING SERVICES • Features of Bug Reporting Services: • Video Recording • App Analytics • Automated Crash Reporting
  • 41. CROWDSOURCED TESTING SERVICES • Types of Crowdsourced Testing Services: • Expert Testing • Functional Testing • UX Testing • Security Testing • Localization Testing
  • 42. DEVICE STREAMING SERVICES Third Party Service Third Party Service
  • 43. TESTING SERVICES PROS & CONS Bug Reporting Services ✓ Allows for more details about field failures ✓ App Analytics can help with UI/UX design - Can be expensive - Requires integrating library - Typically do report GUI- traces
  • 44. TESTING SERVICES PROS & CONS Crowdsourcing Services ✓ Low effort required from developers ✓ Expert tester might uncover unexpected bugs - Can be expensive - May not fit within Agile workflows - Quality of Reports can vary Bug Reporting Services ✓ Allows for more details about field failures ✓ App Analytics can help with UI/UX design - Can be expensive - Requires integrating library - Typically do report GUI- traces
  • 45. TESTING SERVICES PROS & CONS Crowdsourcing Services ✓ Low effort required from developers ✓ Expert tester might uncover unexpected bugs - Can be expensive - May not fit within Agile workflows - Quality of Reports can vary Bug Reporting Services ✓ Allows for more details about field failures ✓ App Analytics can help with UI/UX design - Can be expensive - Requires integrating library - Typically do report GUI- traces Device Streaming ✓ Allows remote users access to controlled devices ✓ Allows for collection of detailed user information - Can be difficult to configure - Relies on strong network connection - Cannot simulate mobile specific contexts like sensors
  • 46. CHALLENGES IN MOBILE APP TESTING
  • 47. OVERVIEW OF CHALLENGES • Fragmentation • Test Flakiness • Lack Mobile-Specific Fault Model • Lack of Intelligent Test Case Generation • Absence of Mobile Testing Oracles • Lack of Support for Multiple Testing Goals
  • 55. MOBILE SPECIFIC FAULT MODEL Issues Documentation User Reviews Coding and Categorization Mobile Specific Fault Taxonomy & Model Repository Mining
  • 56. MOBILE SPECIFIC FAULT MODEL Issues Documentation User Reviews Coding and Categorization Mobile Specific Fault Taxonomy & Model Repository Mining Linares-Vásquez, M., Bavota, G.,Tufano, M., Moran, K., Di Penta, M.,Vendome, C., M., Bernal-Cárdenas, C. and Poshyvanyk, D., “Enabling Mutation Testing for Android Apps”,  in FSE’17
  • 57. INTELLIGENT TEST CASE GENERATION AIG Tool
  • 58. INTELLIGENT TEST CASE GENERATION AIG Tool 1)Tap on the “CreateTask” Button
  • 59. INTELLIGENT TEST CASE GENERATION AIG Tool 1)Tap on the “CreateTask” Button 2)Type “Get Milk” into the “Task” EditText
  • 60. INTELLIGENT TEST CASE GENERATION AIG Tool 1)Tap on the “CreateTask” Button 2)Type “Get Milk” into the “Task” EditText 3)Tap on the “Done” Button
  • 61. INTELLIGENT TEST CASE GENERATION AIG Tool 1)Tap on the “CreateTask” Button 2)Type “Get Milk” into the “Task” EditText 3)Tap on the “Done” Button 3) ????
  • 62. ABSENCE OF MOBILE TESTING ORACLES AIG Tool
  • 63. ABSENCE OF MOBILE TESTING ORACLES AIG Tool ????
  • 64. ABSENCE OF MOBILE TESTING ORACLES AIG Tool ???? ????
  • 65. ABSENCE OF MOBILE TESTING ORACLES AIG Tool ???? ???? Reyhaneh Jabbarvand and Sam Malek, “μDroid: An Energy-Aware Mutation Testing Framework for Android”,  in FSE’17
  • 67. MULTIPLE TESTING GOALS Test Specific Use Cases SecurityTesting Fuzz/StressTesting EnergyTesting PerformanceTesting PlayTesting
  • 68. MULTIPLE TESTING GOALS Test Specific Use Cases SecurityTesting Fuzz/StressTesting EnergyTesting PerformanceTesting PlayTesting AutomatedTesting Approaches have mainly been concerned with Destructive Testing Developers need automated support for diverse testing Goals!
  • 69. OUR VISION: CONTINUOUS, EVOLUTIONARY & LARGE SCALE MOBILE TESTING
  • 70. CEL MOBILE TESTING PRINCIPLES • Continuous • Following the trends of CI/CD, Mobile testing for different goals should happen in a continuous manner • Evolutionary • Testing should automatically adapt as an app evolves, according to code, usage, or hardware/platform changes • Large-Scale • Parallelization of tests across different device configurations
  • 71. CEL ARCHITECTURE APIs evolution monitor Changes Monitoring Subsystem Developers User reviews APIs Users On-device usages monitor Source code changes monitor Markets monitor Source code Impact analyzer Execution traces+ logs analyzer API changes analyzer User reviews + ratings analyzer Models repository Models generator Test cases generator Large Execution Engine Containers Manager Reports repository Reports generator Test cases runner Testing Artifacts Generation Artifacts repository Multi-model generator Multi-model repository Test cases + oracles Domain, GUI, Usage, Contextual, Faults models Multi-model
  • 72. CEL ARCHITECTURE APIs evolution monitor Changes Monitoring Subsystem Developers User reviews APIs Users On-device usages monitor Source code changes monitor Markets monitor Source code Impact analyzer Execution traces+ logs analyzer API changes analyzer User reviews + ratings analyzer Models repository Models generator Test cases generator Large Execution Engine Containers Manager Reports repository Reports generator Test cases runner Testing Artifacts Generation Artifacts repository Multi-model generator Multi-model repository Test cases + oracles Domain, GUI, Usage, Contextual, Faults models Multi-model
  • 73. CEL ARCHITECTURE APIs evolution monitor Changes Monitoring Subsystem Developers User reviews APIs Users On-device usages monitor Source code changes monitor Markets monitor Source code Impact analyzer Execution traces+ logs analyzer API changes analyzer User reviews + ratings analyzer Models repository Models generator Test cases generator Large Execution Engine Containers Manager Reports repository Reports generator Test cases runner Testing Artifacts Generation Artifacts repository Multi-model generator Multi-model repository Test cases + oracles Domain, GUI, Usage, Contextual, Faults models Multi-model
  • 74. CEL ARCHITECTURE APIs evolution monitor Changes Monitoring Subsystem Developers User reviews APIs Users On-device usages monitor Source code changes monitor Markets monitor Source code Impact analyzer Execution traces+ logs analyzer API changes analyzer User reviews + ratings analyzer Models repository Models generator Test cases generator Large Execution Engine Containers Manager Reports repository Reports generator Test cases runner Testing Artifacts Generation Artifacts repository Multi-model generator Multi-model repository Test cases + oracles Domain, GUI, Usage, Contextual, Faults models Multi-model
  • 75. DIRECTIONS FOR THE SE RESEARCH COMMUNITY
  • 76. DIRECTIONS FOR THE SE RESEARCH COMMUNITY • Improved Model-Based Representations of Mobile Apps
  • 77. DIRECTIONS FOR THE SE RESEARCH COMMUNITY • Improved Model-Based Representations of Mobile Apps • Goal-Oriented Automated Test Case Generation
  • 78. DIRECTIONS FOR THE SE RESEARCH COMMUNITY • Improved Model-Based Representations of Mobile Apps • Goal-Oriented Automated Test Case Generation • Flexible Open Source Solutions for Large Scale/ Crowdsourced Testing
  • 79. DIRECTIONS FOR THE SE RESEARCH COMMUNITY • Improved Model-Based Representations of Mobile Apps • Goal-Oriented Automated Test Case Generation • Flexible Open Source Solutions for Large Scale/ Crowdsourced Testing • Derivation of Oracles
  • 80. DIRECTIONS FOR THE SE RESEARCH COMMUNITY • Improved Model-Based Representations of Mobile Apps • Goal-Oriented Automated Test Case Generation • Flexible Open Source Solutions for Large Scale/ Crowdsourced Testing • Derivation of Oracles • MSR Support for Mobile Testing
  • 81. DIRECTIONS FOR THE SE RESEARCH COMMUNITY • Improved Model-Based Representations of Mobile Apps • Goal-Oriented Automated Test Case Generation • Flexible Open Source Solutions for Large Scale/ Crowdsourced Testing • Derivation of Oracles • MSR Support for Mobile Testing • Developer Feedback Mechanisms
  • 82. Any Questions? Thank you! Kevin Moran Ph.D. candidate kpmoran@cs.wm.edu www.kpmoran.com Denys Poshyvanyk Associate Professor denys@cs.wm.edu cs.wm.edu/~denys Mario LinaresVasquez Assistant Professor m.linaresv@uniandes.edu.co sistemas.uniandes.edu.co/~mlinaresv