SlideShare a Scribd company logo
Building a 40+ real-phone test-automation lab for Firefox 
OS: 
Goals, Challenges, Accomplishments 
San Francisco Selenium Meetup Group 
November 19, 2014 
Stephen Donner 
sdonner@mozilla.com
Goals: 
● (much) greater capacity 
o keep up with b2g-inbound builds for UI + perf (esp. the latter), as much 
as possible 
● maximal use of resources (devices, limited personnel, etc.) 
● multi-node adb mapping/support 
● high[er|est] reliability 
● easier device troubleshooting/administration 
● break new ground and help inform the testing world
From this... 
(which itself is “test rig 3.0” -- if you can believe that!)
1st Buildout
To this...
2nd Buildout
Present day 
(Bam!)
Firefox OS real-phone automation lab: goals, challenges, and successes
Challenges: (1/4) 
● balancing aggressive buildout schedule and challenge with current-rig’s maintenance (a.k.a. 
“changing a plane’s engine at 30,000 feet”) 
● near-constant task (re)prioritization (a.k.a “new capabilities, new requests/demands”) 
● real carriers/networks (AT&T/T-Mobile), real problems: 
o spam calls/voicemail 
o Amber alerts 
o low signal strength/data-connection resets 
 slow throughput 
 DNS-lookup failures 
o logistics of provisioning 40 SIMs 
● phone flashing (en masse): 
o base (OEM/vendor/reference) build 
 non-engineering 
● vs. 
o daily builds (release candidates, nightlies, etc.) 
o aggressive power-management features
Challenges: (2/4) 
● multi-node adb mapping 
o solution had to work with both UI and perf tests 
o also required: 
 Jenkins-config changes (job/system) 
 physical reconfiguration 
● and powered hubs 
● active SIMs vs. inactive SIMs 
o reduce interference/cost/maintenance cost 
● DSDS (Dual SIM, Dual Standby) 
● SecOps/NetOps requirements 
o new office, new problems (new policies) 
 basically, new office == slackware of offices ;-) 
 port-by-port, host-by-host firewall pass-through 
o VPN/Jenkins (CI) access granted on a user-by-user basis
Challenges: (3/4) 
● RF (Radio Frequency) 
o Wi-Fi 
 ateam vs. Mozilla Mobile 
● capacity + speed + reach 
o channels, bands, new router vendor 
o FM tuner interference 
 requires cabling magic 
● ...and perhaps a low-power, local FM transmitter? 
o more devices, moar interference? 
● physical space/configuration 
o shelving space 
o power-strip capacity
Challenges: (4/4) 
● remote teams requested live Air Mozilla streams of the phones, i.e. “what in 
the world is the state of that phone in?” 
o prototype works, but doesn’t immediately scale bandwidth (# streams, 
codecs/encoders) 
 informs # of encoder boxes/# of channels 
o live (remote) demo 
● “keeping the light on” 
o camera test failures due to low light 
 ...but intermittent
Firefox OS real-phone automation lab: goals, challenges, and successes
Multi-node adb Mapping 
Background: 
● Jenkins allows many "nodes" to run on 1 host 
● ‘node’ meaning ‘agent’ 
● ADB permits multiple sessions on 1 host 
● $ adb -s <serial_num> <command> 
Problems: 
● Some vendors don't provide a unique serial 
● Sometimes OEM (base build) may have same serial number hard-coded in all devices! 
o You might not have any control over this :-( 
o There are tools for unpacking Android base images and rewriting those serial numbers: 
https://github.com/AndroidRoot/BootTools 
Solution: 
● Create 1 unique node per mobile device 
● This = 4 devices to one slave host, 1 per USB port 
● Manage scripts - modify our scripts to pass in device serial numbers (to all adb commands)
Currently*, we have: 
● ~30 active Flame nodes (phones) 
o 15 dedicated to UI / 12 perf 
o 26 potentially 
● attached to 13 active Mac Minis
Firefox OS real-phone automation lab: goals, challenges, and successes
Firefox OS real-phone automation lab: goals, challenges, and successes
Firefox OS real-phone automation lab: goals, challenges, and successes
Firefox OS real-phone automation lab: goals, challenges, and successes
What (was?) is Left? 
● MozPool[1] for managing devices, including: 
o taking devices offline 
o power measurement through in-house, custom-3D-printed ammeters 
o remote-reboot capability through power harness 
● Puppetization for managing node configurations 
[1] https://github.com/mozilla/mozpool
Firefox OS real-phone automation lab: goals, challenges, and successes
Credit Where Credit is Due 
● Malini Das 
● Raymond Etornam 
● Jonathan Griffin 
● Andrew Halberstadt 
● Dave Hunt 
● Johan Lorenzo 
● Richard Milewski 
● Richard Pappalardo 
● Clint Talbert 
● Dylan Wong 
● Rob Wood 
o … and everyone else I forgot!
Contact 
● Mailing list: mozwebqa@mozilla.org 
● Team page: https://quality.mozilla.org/teams/web-qa/ 
● IRC: #mozwebqa on irc.mozilla.org

More Related Content

PDF
Computer architecture short note (version 8)
PDF
BiTteRsweet FS
PDF
Current State and the Future of Firefox OS
PDF
How Can HTML Compete with Native?
PDF
How to use OpenData, Firefox OS and a Raspberry Pi to build a better Washing ...
PPT
Firefox OS: bringing the Open Web to mobile devices
PDF
B2G QA-automation lab presentation
PDF
Scaling mobile testing on AWS: Emulators all the way down
Computer architecture short note (version 8)
BiTteRsweet FS
Current State and the Future of Firefox OS
How Can HTML Compete with Native?
How to use OpenData, Firefox OS and a Raspberry Pi to build a better Washing ...
Firefox OS: bringing the Open Web to mobile devices
B2G QA-automation lab presentation
Scaling mobile testing on AWS: Emulators all the way down

Similar to Firefox OS real-phone automation lab: goals, challenges, and successes (20)

PDF
Firefox OS and the Internet of Things - NDC London 2014
PDF
Webapi
PPTX
Firefox os
PDF
Fixing the mobile web - Internet World Romania
KEY
Mobeers waterloo-2011
PPTX
ДМИТРО БУДИМ «Mobile Automation Infrastructure from scratch» Online QADay 202...
PDF
How to stuff a 900 pound gorilla into a smartphone
PDF
Selenium Israel Meetup
PDF
Abusing phones to make the internet of things - JSConf EU 2014
PDF
Empowering the Mobile Web - Mills
PDF
Empowering the "mobile web"
PDF
Empowering the “Mobile Web” with Chris Mills
PPTX
Firefox operating system
PPTX
SaaS Digital Assurance Lab
PDF
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
PPT
Firefox os-introduction
PPT
What is Firefox OS
KEY
Phonegap 2.x
PDF
Øredev2013 - FirefoxOS - the platform HTML5 deserves
KEY
2012 09-04 smart devcon - boot to the web, boot 2 gecko
Firefox OS and the Internet of Things - NDC London 2014
Webapi
Firefox os
Fixing the mobile web - Internet World Romania
Mobeers waterloo-2011
ДМИТРО БУДИМ «Mobile Automation Infrastructure from scratch» Online QADay 202...
How to stuff a 900 pound gorilla into a smartphone
Selenium Israel Meetup
Abusing phones to make the internet of things - JSConf EU 2014
Empowering the Mobile Web - Mills
Empowering the "mobile web"
Empowering the “Mobile Web” with Chris Mills
Firefox operating system
SaaS Digital Assurance Lab
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox os-introduction
What is Firefox OS
Phonegap 2.x
Øredev2013 - FirefoxOS - the platform HTML5 deserves
2012 09-04 smart devcon - boot to the web, boot 2 gecko
Ad

More from Stephen Donner (11)

PDF
Firefox and web performance testing, all hands sf 2018
PDF
Web-Performance Testing @ Mozilla: present...and future?
PPTX
Mozilla Web QA: Who, What, Why, How
ODP
Selenium at Mozilla: An Essential Element to our Success
ODP
Web QA Gaia/B2G/Firefox OS front-end automation
ODP
How WebQA Reponds to, Plans For, and Executes on, New Projects
PPT
Continuous deployment
PPT
Selenium lightning-talk
PDF
"How Mozilla Uses Selenium"
KEY
Towards a More Secure, Reliable, and Performant Web: Tools / Approaches to Help
PPT
Testing Mozilla Web Properties
Firefox and web performance testing, all hands sf 2018
Web-Performance Testing @ Mozilla: present...and future?
Mozilla Web QA: Who, What, Why, How
Selenium at Mozilla: An Essential Element to our Success
Web QA Gaia/B2G/Firefox OS front-end automation
How WebQA Reponds to, Plans For, and Executes on, New Projects
Continuous deployment
Selenium lightning-talk
"How Mozilla Uses Selenium"
Towards a More Secure, Reliable, and Performant Web: Tools / Approaches to Help
Testing Mozilla Web Properties
Ad

Recently uploaded (20)

PDF
PPT on Performance Review to get promotions
PPTX
UNIT 4 Total Quality Management .pptx
PPTX
Safety Seminar civil to be ensured for safe working.
PDF
COURSE DESCRIPTOR OF SURVEYING R24 SYLLABUS
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPTX
introduction to high performance computing
PPT
A5_DistSysCh1.ppt_INTRODUCTION TO DISTRIBUTED SYSTEMS
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PDF
Exploratory_Data_Analysis_Fundamentals.pdf
PDF
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PDF
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
PPTX
Artificial Intelligence
PDF
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
PDF
Visual Aids for Exploratory Data Analysis.pdf
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PDF
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
PPT
Occupational Health and Safety Management System
PDF
Human-AI Collaboration: Balancing Agentic AI and Autonomy in Hybrid Systems
PPT on Performance Review to get promotions
UNIT 4 Total Quality Management .pptx
Safety Seminar civil to be ensured for safe working.
COURSE DESCRIPTOR OF SURVEYING R24 SYLLABUS
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
introduction to high performance computing
A5_DistSysCh1.ppt_INTRODUCTION TO DISTRIBUTED SYSTEMS
R24 SURVEYING LAB MANUAL for civil enggi
Exploratory_Data_Analysis_Fundamentals.pdf
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Automation-in-Manufacturing-Chapter-Introduction.pdf
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
Artificial Intelligence
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
Visual Aids for Exploratory Data Analysis.pdf
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
Occupational Health and Safety Management System
Human-AI Collaboration: Balancing Agentic AI and Autonomy in Hybrid Systems

Firefox OS real-phone automation lab: goals, challenges, and successes

  • 1. Building a 40+ real-phone test-automation lab for Firefox OS: Goals, Challenges, Accomplishments San Francisco Selenium Meetup Group November 19, 2014 Stephen Donner sdonner@mozilla.com
  • 2. Goals: ● (much) greater capacity o keep up with b2g-inbound builds for UI + perf (esp. the latter), as much as possible ● maximal use of resources (devices, limited personnel, etc.) ● multi-node adb mapping/support ● high[er|est] reliability ● easier device troubleshooting/administration ● break new ground and help inform the testing world
  • 3. From this... (which itself is “test rig 3.0” -- if you can believe that!)
  • 9. Challenges: (1/4) ● balancing aggressive buildout schedule and challenge with current-rig’s maintenance (a.k.a. “changing a plane’s engine at 30,000 feet”) ● near-constant task (re)prioritization (a.k.a “new capabilities, new requests/demands”) ● real carriers/networks (AT&T/T-Mobile), real problems: o spam calls/voicemail o Amber alerts o low signal strength/data-connection resets  slow throughput  DNS-lookup failures o logistics of provisioning 40 SIMs ● phone flashing (en masse): o base (OEM/vendor/reference) build  non-engineering ● vs. o daily builds (release candidates, nightlies, etc.) o aggressive power-management features
  • 10. Challenges: (2/4) ● multi-node adb mapping o solution had to work with both UI and perf tests o also required:  Jenkins-config changes (job/system)  physical reconfiguration ● and powered hubs ● active SIMs vs. inactive SIMs o reduce interference/cost/maintenance cost ● DSDS (Dual SIM, Dual Standby) ● SecOps/NetOps requirements o new office, new problems (new policies)  basically, new office == slackware of offices ;-)  port-by-port, host-by-host firewall pass-through o VPN/Jenkins (CI) access granted on a user-by-user basis
  • 11. Challenges: (3/4) ● RF (Radio Frequency) o Wi-Fi  ateam vs. Mozilla Mobile ● capacity + speed + reach o channels, bands, new router vendor o FM tuner interference  requires cabling magic ● ...and perhaps a low-power, local FM transmitter? o more devices, moar interference? ● physical space/configuration o shelving space o power-strip capacity
  • 12. Challenges: (4/4) ● remote teams requested live Air Mozilla streams of the phones, i.e. “what in the world is the state of that phone in?” o prototype works, but doesn’t immediately scale bandwidth (# streams, codecs/encoders)  informs # of encoder boxes/# of channels o live (remote) demo ● “keeping the light on” o camera test failures due to low light  ...but intermittent
  • 14. Multi-node adb Mapping Background: ● Jenkins allows many "nodes" to run on 1 host ● ‘node’ meaning ‘agent’ ● ADB permits multiple sessions on 1 host ● $ adb -s <serial_num> <command> Problems: ● Some vendors don't provide a unique serial ● Sometimes OEM (base build) may have same serial number hard-coded in all devices! o You might not have any control over this :-( o There are tools for unpacking Android base images and rewriting those serial numbers: https://github.com/AndroidRoot/BootTools Solution: ● Create 1 unique node per mobile device ● This = 4 devices to one slave host, 1 per USB port ● Manage scripts - modify our scripts to pass in device serial numbers (to all adb commands)
  • 15. Currently*, we have: ● ~30 active Flame nodes (phones) o 15 dedicated to UI / 12 perf o 26 potentially ● attached to 13 active Mac Minis
  • 20. What (was?) is Left? ● MozPool[1] for managing devices, including: o taking devices offline o power measurement through in-house, custom-3D-printed ammeters o remote-reboot capability through power harness ● Puppetization for managing node configurations [1] https://github.com/mozilla/mozpool
  • 22. Credit Where Credit is Due ● Malini Das ● Raymond Etornam ● Jonathan Griffin ● Andrew Halberstadt ● Dave Hunt ● Johan Lorenzo ● Richard Milewski ● Richard Pappalardo ● Clint Talbert ● Dylan Wong ● Rob Wood o … and everyone else I forgot!
  • 23. Contact ● Mailing list: mozwebqa@mozilla.org ● Team page: https://quality.mozilla.org/teams/web-qa/ ● IRC: #mozwebqa on irc.mozilla.org