SlideShare a Scribd company logo
1 of 69
Download to read offline
© mutualmobile
SYSTEMTESTING WITH ROBOTIUM
Why,What,When,Where and How
© mutualmobile
WHO AM I?
Elliott Chenger

Android Engineer @ Mutual Mobile	

@echenger erchenger
• Likes
• Long walks on the
beach	

• Everything Android	

• Ice Hockey	

• Auburn	

• Cars
• Dislikes
• the F word
(fragmentation)	

• when carriers delay
software updates	

• King Joffery from
GOT	

• I-35 traffic
© mutualmobile
AGENDA
• Brief overview of different types
ofTesting	

• What value does system testing
add?	

• Different tools for system testing	

• What we chose and why.	

• Do’s and Don’ts to system
testing	

• How to write system tests	

• Live Demo	

• Q&A
© mutualmobile
DIFFERENTTYPES OFTESTING
White Box
• Tests code for precision and
correctness	

• Tester understands and is testing
internal structure and design of
software	

• Generally Unit and Integration testing
Black Box
• Software internal structure is not
known to the tester	

• Mainly done through acceptance and
system testing	

• Tests are based on requirements
© mutualmobile
WHAT IS SYSTEMTESTING?
© mutualmobile
SYSTEMTESTING	

• Subset of Black BoxTesting	

• Tests software as a whole to make
sure it meets specified requirements	

• Defined by acceptance criteria	

• Mimics the human
© mutualmobile
WHY SHOULD A DEVELOPER WRITE
SYSTEMTESTS?
© mutualmobile
© mutualmobile
SYSTEMTESTINGTOOLS
• Robotium	

• Espresso	

• MonkeyTalk	

• UIAutomator
© mutualmobile
WHY WE CHOSE ROBOTIUM?
• Written in Java and structured like JUnit
tests	

• Bootstrapping was easy	

• Allows us to write tests that mimic
what a human does	

• Strong community support
© mutualmobile
PROCESS/ACTIVITIES
• The project kicks off and a full audit of all current system testing tools is performed.	

• After a month of reviewing various tools Robotium becomes the clear selection among all of the
stakeholders.	

• A machine was purchased to be used as our testing server.	

• The script and boiler plate for testing was created.	

• Through trial and error our script and the server became more stable.	

• We switched from emulators to physical devices and we decided that Flow testing will be more
beneficial instead of screen testing.
© mutualmobile
• Worked with QA to identify how we are going to capture tests and
communicate what should and shouldn’t be tested. 	

• We started a pilot program for Robotium on two major projects.	

• Much was learned about how we actually write these tests.	

• Now we are going through the process of educating and advocating our
department to add system testing into our normal development process
© mutualmobile
LESSONS LEARNED
© mutualmobile
AUTOMATE
Let Continuous Integration systems do
the heavy lifting for you.This will help you
catch issues before it gets into QA’s
hands.
© mutualmobile
USE PHYSICAL
DEVICES
We have found through testing that
Android emulators are simply slow and
unreliable.Another benefit is being able
to test on different device subsets.
© mutualmobile
WRITETESTSTHAT
MIMIC A HUMAN
Put yourself in the user’s shoes, don’t get
hung up testing pieces of the UI directly.
Thinking this way makes your tests more
stable and more valuable to QA and your
customer.
© mutualmobile
DON’T STRIVE FOR
100% COVERAGE
Strive for good tests, not a certain
quantity of test coverage. Beware of
writing tests just to have tests. Like most
things SystemTesting has a time and a
place.
© mutualmobile
SCREENTESTING 	

VS 	

FLOWTESTING
© mutualmobile
SCREENTESTING
© mutualmobile
FLOWTESTING
© mutualmobile
CODE
The fun part
© mutualmobile
OUR EXAMPLE APP
© mutualmobile
AGENDA
• Setting up Robotium in a project	

• Organizing your tests	

• Boilerplate code	

• Writing tests	

• RunningTests	

• Live Demo
© mutualmobile
SETTING UP ROBOTIUM WITH ECLIPSE
• Download jar

https://code.google.com/p/robotium/
© mutualmobile
SETTING UP ROBOTIUM GENERIC
• Download jar

https://code.google.com/p/robotium/	

• Add the jar to your classpath
© mutualmobile
SETTING UPTHE MANIFEST
© mutualmobile
BOILER PLATE
© mutualmobile
WRITINGYOU FIRSTTEST
© mutualmobile
BEFORE WE START DO’S AND DON’TS
• DO write tests that mimic a human.	

• DO write your tests to encompass the overall acceptance criteria	

• Assert DO NOT assume (also follow assertions with detailed error
messages)	

• DO NOT depend on time.

Example: Don’t assume a REST call will always take 2 seconds.
© mutualmobile
LET’STEST A STORY
• User Story:As a user I would like to be able to login to the app, so that I can see the next
screen	

• Acceptance Criteria	

• Button for logging in	

• A place for the user to enter their name for logging in.	

• Once they enter their name and click the log in button they go to the next screen. 	

• If they don’t enter a name they get an error dialog
© mutualmobile
SO FAR
• We have written tests for the happy
path for testing login.	

• We have an Activity that has visuals but
nothing else in it.
© mutualmobile
LET’S NOW RUNTHETESTS
© mutualmobile
NOW CODEYOUR FEATURETO MAKE
THETESTS GO GREEN
© mutualmobile
NOW WE CAN WRITE SOME SAD PATH
TESTS
© mutualmobile
NOW
• We have written happy path tests and
they are successful.	

• We just finished writing our sad path
tests and they should not pass.	

• We have an Activity that has visuals and
some of our interactions but we still
need to code the rest of the sad path
test.
© mutualmobile
NOW CODEYOURTESTSTO GO GREEN
ANDYOU ARE DONE!
© mutualmobile
LIVE DEMO
© mutualmobile
WHATS NEXT?
• Go explore: https://code.google.com/p/robotium/	

• Download the example app code for this presentation: 

http://goo.gl/WPkwNE	

• Have questions or feedback? 

elliott.chenger@mutualmobile.com or @echenger
© mutualmobile
Q&A

More Related Content

Viewers also liked

System Testing of Timing Requirements based on Use Cases and Timed Automata
System Testing of Timing Requirements based on Use Cases and Timed AutomataSystem Testing of Timing Requirements based on Use Cases and Timed Automata
System Testing of Timing Requirements based on Use Cases and Timed Automata
Lionel Briand
 
Regression testing
Regression testingRegression testing
Regression testing
Mohua Amin
 

Viewers also liked (13)

How to configure monkey talk android agent
How to configure monkey talk android agentHow to configure monkey talk android agent
How to configure monkey talk android agent
 
Exploiting the Testing System
Exploiting the Testing SystemExploiting the Testing System
Exploiting the Testing System
 
MonkeyTalk Documentation
MonkeyTalk DocumentationMonkeyTalk Documentation
MonkeyTalk Documentation
 
Visual Regression Testing
Visual Regression TestingVisual Regression Testing
Visual Regression Testing
 
System Testing of Timing Requirements based on Use Cases and Timed Automata
System Testing of Timing Requirements based on Use Cases and Timed AutomataSystem Testing of Timing Requirements based on Use Cases and Timed Automata
System Testing of Timing Requirements based on Use Cases and Timed Automata
 
Ielts -International English Language Testing System
Ielts -International English Language Testing SystemIelts -International English Language Testing System
Ielts -International English Language Testing System
 
Regression testing
Regression testingRegression testing
Regression testing
 
Sergii Puzankov «UI Regression Testing with "Gemini"»
Sergii Puzankov «UI Regression Testing with "Gemini"»Sergii Puzankov «UI Regression Testing with "Gemini"»
Sergii Puzankov «UI Regression Testing with "Gemini"»
 
presentation on Virus
presentation on Viruspresentation on Virus
presentation on Virus
 
System testing
System testingSystem testing
System testing
 
Software testing definition
Software testing definitionSoftware testing definition
Software testing definition
 
Scalable Software Testing and Verification of Non-Functional Properties throu...
Scalable Software Testing and Verification of Non-Functional Properties throu...Scalable Software Testing and Verification of Non-Functional Properties throu...
Scalable Software Testing and Verification of Non-Functional Properties throu...
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

System Testing with Robotium