SlideShare a Scribd company logo
1 of 14
Confidential




                  Lessons Learned in Implementing
                 Test-on-Commit for Mobile Devices
                    Going from vision to reality is often not trivial



       Rev PA1                  2011-10-26   1
Introduction
   Test-on-commit, integration test, or testing each software upload
    before merging to the software main branch, is a key enabler to
    continuous integration

   For mobile devices it is often more difficult than for web services or
    applications because of dependencies towards hardware

   A vision to having thousands of test being executed on each commit
    for all different variants and configurations is easy to set in power
    point, but very complex to realize in practice

   This presentation presents some of the lessons learned when
    implementing test-on-commit for mobile devices
Integration Test Overview


      Developer




 Upload           Reports
                                                  Test System


                                       Triggers                     Reports




                            Triggers




  Code Repository            Reports
                                                     Build System
Lessons Learned Overview


                          Test Execution
         Build Capacity
                               Time



          Test Case           Test
          Ownership       Environment



                           Test Case
          Test Result
                          Repository &
           Analysis
                           Ownership
Build Capacity
   Building applications can go quite fast, but if there are hardware and
    software dependencies that require a rebuild of the entire
    system, the build time will increase drastically

   With that in mind, adding the fact that test-on-commit requires the
    build system to be able to handle hundreds or thousands of commits
    each day, this puts a heavy requirement on the capacity of the build
    cluster

   Even worse, if each commit has to be built in several variants, this
    further increases the capacity requirements
Build Capacity Solution

   One recommendation can be to start small; don’t build for all
    commits, select the most important areas and only build for commits
    to those areas

   Perhaps select the highest priority variants and test the rest after
    merge to the software main branch

   Look at possibilities to increase build cluster capacity while starting
    out small with the integration test

   Google has solved this by building in the cloud [2]
Test Execution Time
   It is possible to execute thousands of test cases in a very short time, but
    only a specific sort of test cases

   Testing functionality and throughput over Wi-Fi will take much longer
    than a fraction of a second

   Testing a file systems functionality can take a long time, depending on
    how much reading and writing to the file system that is necessary

   If the test execution time is too long this will put heavy requirements on
    the test system’s capacity

   The test execution time should not be longer than the code review
    time, as the test should be input to the merge decision and not delay
    merge to the software main branch – if it takes to long it is an obstacle to
    continuous integration
Test Execution Time Solution
   Design integration test cases with the time aspect in mind, don’t just
    take existing test cases and try to squeeze them into the test scope

   If it is possible – have a dynamic integration scope that selects only
    test cases relevant for the specific commit – if the commit changes
    something in network signalling, run test cases in this areas, and in
    areas with dependencies to network signalling

   If this dynamic scope is not possible, make sure to at least touch
    each area, and then focus on adding more test cases to the high
    priority/high risk areas

   Understand your scope – don’t try to test everything before merge to
    the software main branch
Test Case Robustness

   If a test case is going to be executed hundreds of times each day, it
    is critical that the test case does not generate inaccurate results

   Try to have as few dependencies towards the external environment
    as possible, and try to limit the ways that the test case can give false
    positives or negatives

   Creating robust test cases that are complex and add value is one of
    the major challenges

   If the test cases are not robust, no one will believe and take actions
    in the results of the tests, thus making them practically useless
Test Environment
   In the same way as the test cases have to be robust, the test
    environment has to be robust – it can not generate false positives or
    negatives for the same reasons as the test cases

   The test environment will be under a heavy load – make sure to
    invest in good equipment, as it must be able to handle a lot more
    than under normal circumstances

   Take a Wi-Fi access point for example – the cheaper once will most
    likely fail to establish connection maybe 1 time out of 10 when being
    accessed by several phones simultaneously – this is not good
    enough, invest in a more expensive Wi-Fi access point to make the
    test environment more robust
Test Results Analysis
   Executing test cases is useless without proper analysis of the results

   Remember to allocate resources for maintaining and monitoring the
    integration test after it has been implemented

   Analysis must be quick to not delay integration, so there must be
    dedicated resources available to handle this

   The more robust the test cases and the test environment is, the less
    time is spent on test results analysis

   The results of the analysis must be communicated to the right
    stakeholders

   Microsoft has implemented automatic test result analysis, which of
    course is an even better solution [3]
Test Case Repository & Ownership
   Usually unit tests and API tests are stored together with the code, but
    it is worth investigating if storing integration tests separately adds
    value

   There needs to be one clear owner of all the integration tests, as
    changes need to happen controlled and quickly

   This is often easier if the test cases are not stored together with code
    owned by someone else
Conclusion
   Creating a test-on-commit system that runs an integration test on all
    uploads before merging to the software main branch is difficult

   Google spent many years getting their system operational, but they
    have succeeded [1]

   Doing the same for mobile devices is even harder as it adds the
    complexity of the mobile device hardware, and complex
    dependencies

   It is not easy and requires a lot of dedicated time and resources to
    implement – but it is a key enable to continuous integration, and a
    problem everyone will have to tackle eventually
Reference
[1] Tools for Continuous Integration at Google Scale
http://www.youtube.com/watch?v=b52aXZ2yi08


[2] Build in the Cloud: Distribution Build Outputs
http://google-engtools.blogspot.com/#!/2011/10/build-in-cloud-distributing-build.html


[3] Test Innovation
http://angryweasel.com/blog/?p=362

More Related Content

What's hot

Monitoring microservice applications: An SRE’s perspective
Monitoring microservice applications: An SRE’s perspectiveMonitoring microservice applications: An SRE’s perspective
Monitoring microservice applications: An SRE’s perspectiveDevOpsProdigy
 
Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009sstolberg
 
Building Security in Using CI
Building Security in Using CIBuilding Security in Using CI
Building Security in Using CICoveros, Inc.
 
10 Things You Might Not Know: Continuous Integration
10 Things You Might Not Know: Continuous Integration10 Things You Might Not Know: Continuous Integration
10 Things You Might Not Know: Continuous IntegrationCoveros, Inc.
 
Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous DeliveryBetter Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous DeliveryGene Gotimer
 
Why can't developers be testers discussion
Why can't developers be testers discussionWhy can't developers be testers discussion
Why can't developers be testers discussionDave Longman
 
Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
Magenic-White-Paper-Continuous-Inegration-for-QA-TeamsMagenic-White-Paper-Continuous-Inegration-for-QA-Teams
Magenic-White-Paper-Continuous-Inegration-for-QA-TeamsAaron Humerickhouse
 
Service engineering
Service engineeringService engineering
Service engineeringQingsong Yao
 
DevOps Syllabus summer 2020
DevOps Syllabus summer 2020DevOps Syllabus summer 2020
DevOps Syllabus summer 2020Len Bass
 
Effektives Consulting - Performance Engineering
Effektives Consulting - Performance EngineeringEffektives Consulting - Performance Engineering
Effektives Consulting - Performance Engineeringhitdhits
 
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...Sauce Labs
 
Regression Testing with Symfony
Regression Testing with SymfonyRegression Testing with Symfony
Regression Testing with SymfonyJoachim Unger
 
Testing in agile is it easier said than done
Testing in agile   is it easier said than done Testing in agile   is it easier said than done
Testing in agile is it easier said than done Archana Joshi
 
Matt tesauro Lessons from DevOps: Taking DevOps practices into your AppSec Li...
Matt tesauro Lessons from DevOps: Taking DevOps practices into your AppSec Li...Matt tesauro Lessons from DevOps: Taking DevOps practices into your AppSec Li...
Matt tesauro Lessons from DevOps: Taking DevOps practices into your AppSec Li...Matt Tesauro
 
Cloud-enabled Performance Testing vis-à-vis On-premise- Impetus White Paper
Cloud-enabled Performance Testing vis-à-vis On-premise- Impetus White PaperCloud-enabled Performance Testing vis-à-vis On-premise- Impetus White Paper
Cloud-enabled Performance Testing vis-à-vis On-premise- Impetus White PaperImpetus Technologies
 
Automated Application Tests For Lotus Notes Uklug 2009
Automated Application Tests For Lotus Notes Uklug 2009Automated Application Tests For Lotus Notes Uklug 2009
Automated Application Tests For Lotus Notes Uklug 2009maxistar
 
TestingWhiz Webinar: Codeless Test Automation for Web & Cloud Apps
TestingWhiz Webinar: Codeless Test Automation for Web & Cloud AppsTestingWhiz Webinar: Codeless Test Automation for Web & Cloud Apps
TestingWhiz Webinar: Codeless Test Automation for Web & Cloud AppsPremal Dave
 
Strategies for agile software test automation
Strategies for agile software test automationStrategies for agile software test automation
Strategies for agile software test automationEliane Collins
 
The emergence of cloud computing and software testing
The emergence of cloud computing and software testingThe emergence of cloud computing and software testing
The emergence of cloud computing and software testingRIA RUI Society
 

What's hot (20)

Monitoring microservice applications: An SRE’s perspective
Monitoring microservice applications: An SRE’s perspectiveMonitoring microservice applications: An SRE’s perspective
Monitoring microservice applications: An SRE’s perspective
 
Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009
 
Building Security in Using CI
Building Security in Using CIBuilding Security in Using CI
Building Security in Using CI
 
10 Things You Might Not Know: Continuous Integration
10 Things You Might Not Know: Continuous Integration10 Things You Might Not Know: Continuous Integration
10 Things You Might Not Know: Continuous Integration
 
Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous DeliveryBetter Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous Delivery
 
Why can't developers be testers discussion
Why can't developers be testers discussionWhy can't developers be testers discussion
Why can't developers be testers discussion
 
Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
Magenic-White-Paper-Continuous-Inegration-for-QA-TeamsMagenic-White-Paper-Continuous-Inegration-for-QA-Teams
Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
 
Service engineering
Service engineeringService engineering
Service engineering
 
DevOps Syllabus summer 2020
DevOps Syllabus summer 2020DevOps Syllabus summer 2020
DevOps Syllabus summer 2020
 
Effektives Consulting - Performance Engineering
Effektives Consulting - Performance EngineeringEffektives Consulting - Performance Engineering
Effektives Consulting - Performance Engineering
 
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Regression Testing with Symfony
Regression Testing with SymfonyRegression Testing with Symfony
Regression Testing with Symfony
 
Testing in agile is it easier said than done
Testing in agile   is it easier said than done Testing in agile   is it easier said than done
Testing in agile is it easier said than done
 
Matt tesauro Lessons from DevOps: Taking DevOps practices into your AppSec Li...
Matt tesauro Lessons from DevOps: Taking DevOps practices into your AppSec Li...Matt tesauro Lessons from DevOps: Taking DevOps practices into your AppSec Li...
Matt tesauro Lessons from DevOps: Taking DevOps practices into your AppSec Li...
 
Cloud-enabled Performance Testing vis-à-vis On-premise- Impetus White Paper
Cloud-enabled Performance Testing vis-à-vis On-premise- Impetus White PaperCloud-enabled Performance Testing vis-à-vis On-premise- Impetus White Paper
Cloud-enabled Performance Testing vis-à-vis On-premise- Impetus White Paper
 
Automated Application Tests For Lotus Notes Uklug 2009
Automated Application Tests For Lotus Notes Uklug 2009Automated Application Tests For Lotus Notes Uklug 2009
Automated Application Tests For Lotus Notes Uklug 2009
 
TestingWhiz Webinar: Codeless Test Automation for Web & Cloud Apps
TestingWhiz Webinar: Codeless Test Automation for Web & Cloud AppsTestingWhiz Webinar: Codeless Test Automation for Web & Cloud Apps
TestingWhiz Webinar: Codeless Test Automation for Web & Cloud Apps
 
Strategies for agile software test automation
Strategies for agile software test automationStrategies for agile software test automation
Strategies for agile software test automation
 
The emergence of cloud computing and software testing
The emergence of cloud computing and software testingThe emergence of cloud computing and software testing
The emergence of cloud computing and software testing
 

Viewers also liked

Digital content the currency of the web
Digital content the currency of the webDigital content the currency of the web
Digital content the currency of the webGordon Diver
 
Marketing for success_p3
Marketing for success_p3Marketing for success_p3
Marketing for success_p3Gordon Diver
 
Kindergarten, driving, university, marriage it’s all the same to mother energy™
Kindergarten, driving, university, marriage it’s all the same to mother energy™Kindergarten, driving, university, marriage it’s all the same to mother energy™
Kindergarten, driving, university, marriage it’s all the same to mother energy™Crystal Andrus
 
How to use linked in to advance your business
How to use linked in to advance your businessHow to use linked in to advance your business
How to use linked in to advance your businessGordon Diver
 
Dossier presse -semainedu web v1
Dossier presse -semainedu web v1Dossier presse -semainedu web v1
Dossier presse -semainedu web v1Fadhila BRAHIMI
 
Marketing for success_p1
Marketing for success_p1Marketing for success_p1
Marketing for success_p1Gordon Diver
 
Marketing for success_p2
Marketing for success_p2Marketing for success_p2
Marketing for success_p2Gordon Diver
 
Codifying Knowledge in Tests
Codifying Knowledge in TestsCodifying Knowledge in Tests
Codifying Knowledge in TestsJohan Hoberg
 
The future of testing
The future of testingThe future of testing
The future of testingJohan Hoberg
 
SetUp A Facebook Page from Scratch
SetUp A Facebook Page from ScratchSetUp A Facebook Page from Scratch
SetUp A Facebook Page from ScratchGordon Diver
 
Linkde inwrscb apri14
Linkde inwrscb apri14Linkde inwrscb apri14
Linkde inwrscb apri14Gordon Diver
 
Marketing for Vietnamese Companies
Marketing for Vietnamese CompaniesMarketing for Vietnamese Companies
Marketing for Vietnamese CompaniesJesus Redondo Ivars
 
Pause Digitale et strategie de presence
Pause Digitale et strategie de presencePause Digitale et strategie de presence
Pause Digitale et strategie de presenceFadhila BRAHIMI
 
Twitter wrscb may14
Twitter wrscb may14Twitter wrscb may14
Twitter wrscb may14Gordon Diver
 
Adaptive software testing
Adaptive software testingAdaptive software testing
Adaptive software testingJohan Hoberg
 
Social media and you
Social media and youSocial media and you
Social media and youGordon Diver
 

Viewers also liked (20)

Digital content the currency of the web
Digital content the currency of the webDigital content the currency of the web
Digital content the currency of the web
 
Marketing for success_p3
Marketing for success_p3Marketing for success_p3
Marketing for success_p3
 
Quality in Games
Quality in GamesQuality in Games
Quality in Games
 
Kindergarten, driving, university, marriage it’s all the same to mother energy™
Kindergarten, driving, university, marriage it’s all the same to mother energy™Kindergarten, driving, university, marriage it’s all the same to mother energy™
Kindergarten, driving, university, marriage it’s all the same to mother energy™
 
How to use linked in to advance your business
How to use linked in to advance your businessHow to use linked in to advance your business
How to use linked in to advance your business
 
Dossier presse -semainedu web v1
Dossier presse -semainedu web v1Dossier presse -semainedu web v1
Dossier presse -semainedu web v1
 
Marketing for success_p1
Marketing for success_p1Marketing for success_p1
Marketing for success_p1
 
Marketing for success_p2
Marketing for success_p2Marketing for success_p2
Marketing for success_p2
 
Codifying Knowledge in Tests
Codifying Knowledge in TestsCodifying Knowledge in Tests
Codifying Knowledge in Tests
 
Testinnovation
Testinnovation Testinnovation
Testinnovation
 
The future of testing
The future of testingThe future of testing
The future of testing
 
SetUp A Facebook Page from Scratch
SetUp A Facebook Page from ScratchSetUp A Facebook Page from Scratch
SetUp A Facebook Page from Scratch
 
Linkde inwrscb apri14
Linkde inwrscb apri14Linkde inwrscb apri14
Linkde inwrscb apri14
 
Flash-рекрутинг. Конференция
Flash-рекрутинг. КонференцияFlash-рекрутинг. Конференция
Flash-рекрутинг. Конференция
 
Marketing for Vietnamese Companies
Marketing for Vietnamese CompaniesMarketing for Vietnamese Companies
Marketing for Vietnamese Companies
 
Brain fingerprinting
Brain fingerprintingBrain fingerprinting
Brain fingerprinting
 
Pause Digitale et strategie de presence
Pause Digitale et strategie de presencePause Digitale et strategie de presence
Pause Digitale et strategie de presence
 
Twitter wrscb may14
Twitter wrscb may14Twitter wrscb may14
Twitter wrscb may14
 
Adaptive software testing
Adaptive software testingAdaptive software testing
Adaptive software testing
 
Social media and you
Social media and youSocial media and you
Social media and you
 

Similar to Lessons learned in implementing test on-commit for mobile devices

DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build AutomationHeiswayi Nrird
 
Incorporating Performance Testing in Agile Development Process
Incorporating Performance Testing in Agile Development ProcessIncorporating Performance Testing in Agile Development Process
Incorporating Performance Testing in Agile Development ProcessMichael Vax
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsPrabhu Ramasamy
 
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
 Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S... Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...Skytap Cloud
 
Estimating test effort part 1 of 2
Estimating test effort part 1 of 2Estimating test effort part 1 of 2
Estimating test effort part 1 of 2Ian McDonald
 
Dev ops for mainframe innovate session 2402
Dev ops for mainframe innovate session 2402Dev ops for mainframe innovate session 2402
Dev ops for mainframe innovate session 2402Rosalind Radcliffe
 
Automated Testing Tutorial
Automated Testing TutorialAutomated Testing Tutorial
Automated Testing TutorialJohn Liebenau
 
Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++Hong Le Van
 
Test driven development
Test driven developmentTest driven development
Test driven developmentNascenia IT
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testingsonukalpana
 
Essential Test Management and Planning
Essential Test Management and PlanningEssential Test Management and Planning
Essential Test Management and PlanningTechWell
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build PipelineSamuel Brown
 
A Productive Method for Improving Test Effectiveness
A Productive Method for Improving Test EffectivenessA Productive Method for Improving Test Effectiveness
A Productive Method for Improving Test EffectivenessShradha Singh
 
Creating and managing test environments best practices for test infrastructur...
Creating and managing test environments best practices for test infrastructur...Creating and managing test environments best practices for test infrastructur...
Creating and managing test environments best practices for test infrastructur...Knoldus Inc.
 
03 test specification and execution
03   test specification and execution03   test specification and execution
03 test specification and executionClemens Reijnen
 
Performance Testing Cloud-Based Systems
Performance Testing Cloud-Based SystemsPerformance Testing Cloud-Based Systems
Performance Testing Cloud-Based SystemsTechWell
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test AutomationSauce Labs
 

Similar to Lessons learned in implementing test on-commit for mobile devices (20)

DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
Incorporating Performance Testing in Agile Development Process
Incorporating Performance Testing in Agile Development ProcessIncorporating Performance Testing in Agile Development Process
Incorporating Performance Testing in Agile Development Process
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database Objects
 
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
 Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S... Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
 
Estimating test effort part 1 of 2
Estimating test effort part 1 of 2Estimating test effort part 1 of 2
Estimating test effort part 1 of 2
 
Dev ops for mainframe innovate session 2402
Dev ops for mainframe innovate session 2402Dev ops for mainframe innovate session 2402
Dev ops for mainframe innovate session 2402
 
Automated Testing Tutorial
Automated Testing TutorialAutomated Testing Tutorial
Automated Testing Tutorial
 
Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++
 
TDD Presentation
TDD PresentationTDD Presentation
TDD Presentation
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
CLOUD TESTING MODEL – BENEFITS, LIMITATIONS AND CHALLENGES
CLOUD TESTING MODEL – BENEFITS, LIMITATIONS AND CHALLENGESCLOUD TESTING MODEL – BENEFITS, LIMITATIONS AND CHALLENGES
CLOUD TESTING MODEL – BENEFITS, LIMITATIONS AND CHALLENGES
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testing
 
Essential Test Management and Planning
Essential Test Management and PlanningEssential Test Management and Planning
Essential Test Management and Planning
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
 
A Productive Method for Improving Test Effectiveness
A Productive Method for Improving Test EffectivenessA Productive Method for Improving Test Effectiveness
A Productive Method for Improving Test Effectiveness
 
Cloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak KoyuncuCloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak Koyuncu
 
Creating and managing test environments best practices for test infrastructur...
Creating and managing test environments best practices for test infrastructur...Creating and managing test environments best practices for test infrastructur...
Creating and managing test environments best practices for test infrastructur...
 
03 test specification and execution
03   test specification and execution03   test specification and execution
03 test specification and execution
 
Performance Testing Cloud-Based Systems
Performance Testing Cloud-Based SystemsPerformance Testing Cloud-Based Systems
Performance Testing Cloud-Based Systems
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 

More from Johan Hoberg

Approaches to unraveling a complex test problem
Approaches to unraveling a complex test problemApproaches to unraveling a complex test problem
Approaches to unraveling a complex test problemJohan Hoberg
 
A business case for a modern QA organization
A business case for a modern QA organizationA business case for a modern QA organization
A business case for a modern QA organizationJohan Hoberg
 
Signing off on Quality
Signing off on QualitySigning off on Quality
Signing off on QualityJohan Hoberg
 
Quality Information Coverage - A QI Concept
Quality Information Coverage - A QI ConceptQuality Information Coverage - A QI Concept
Quality Information Coverage - A QI ConceptJohan Hoberg
 
The Bug Backlog - An Evergrowing Mountain
The Bug Backlog - An Evergrowing MountainThe Bug Backlog - An Evergrowing Mountain
The Bug Backlog - An Evergrowing MountainJohan Hoberg
 
Quality Intelligence: Transparency & Visibility
Quality Intelligence: Transparency & VisibilityQuality Intelligence: Transparency & Visibility
Quality Intelligence: Transparency & VisibilityJohan Hoberg
 
Building a QA Mindset
Building a QA Mindset Building a QA Mindset
Building a QA Mindset Johan Hoberg
 
Building High Quality Software
Building High Quality Software Building High Quality Software
Building High Quality Software Johan Hoberg
 
Testit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for EveryoneTestit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for EveryoneJohan Hoberg
 
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...Johan Hoberg
 
Moving from scripted regression testing to exploratory testing
Moving from scripted regression testing to exploratory testingMoving from scripted regression testing to exploratory testing
Moving from scripted regression testing to exploratory testingJohan Hoberg
 
Building High Quality Software
Building High Quality SoftwareBuilding High Quality Software
Building High Quality SoftwareJohan Hoberg
 
Quality, Testing & Agile Methodologies
Quality, Testing & Agile MethodologiesQuality, Testing & Agile Methodologies
Quality, Testing & Agile MethodologiesJohan Hoberg
 
Defining Test Competence
Defining Test CompetenceDefining Test Competence
Defining Test CompetenceJohan Hoberg
 
Why all deadlines are bad for quality
Why all deadlines are bad for qualityWhy all deadlines are bad for quality
Why all deadlines are bad for qualityJohan Hoberg
 
Do we really need game testers?
Do we really need game testers?Do we really need game testers?
Do we really need game testers?Johan Hoberg
 
Hardware/Software Integration Testing
Hardware/Software Integration TestingHardware/Software Integration Testing
Hardware/Software Integration TestingJohan Hoberg
 

More from Johan Hoberg (20)

Approaches to unraveling a complex test problem
Approaches to unraveling a complex test problemApproaches to unraveling a complex test problem
Approaches to unraveling a complex test problem
 
A business case for a modern QA organization
A business case for a modern QA organizationA business case for a modern QA organization
A business case for a modern QA organization
 
Signing off on Quality
Signing off on QualitySigning off on Quality
Signing off on Quality
 
Quality Information Coverage - A QI Concept
Quality Information Coverage - A QI ConceptQuality Information Coverage - A QI Concept
Quality Information Coverage - A QI Concept
 
The Bug Backlog - An Evergrowing Mountain
The Bug Backlog - An Evergrowing MountainThe Bug Backlog - An Evergrowing Mountain
The Bug Backlog - An Evergrowing Mountain
 
Quality Intelligence: Transparency & Visibility
Quality Intelligence: Transparency & VisibilityQuality Intelligence: Transparency & Visibility
Quality Intelligence: Transparency & Visibility
 
Building a QA Mindset
Building a QA Mindset Building a QA Mindset
Building a QA Mindset
 
What is QI?
What is QI?What is QI?
What is QI?
 
Building High Quality Software
Building High Quality Software Building High Quality Software
Building High Quality Software
 
Testit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for EveryoneTestit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for Everyone
 
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
 
Moving from scripted regression testing to exploratory testing
Moving from scripted regression testing to exploratory testingMoving from scripted regression testing to exploratory testing
Moving from scripted regression testing to exploratory testing
 
Building High Quality Software
Building High Quality SoftwareBuilding High Quality Software
Building High Quality Software
 
Quality, Testing & Agile Methodologies
Quality, Testing & Agile MethodologiesQuality, Testing & Agile Methodologies
Quality, Testing & Agile Methodologies
 
QI, not QA
QI, not QAQI, not QA
QI, not QA
 
Defining Test Competence
Defining Test CompetenceDefining Test Competence
Defining Test Competence
 
Why all deadlines are bad for quality
Why all deadlines are bad for qualityWhy all deadlines are bad for quality
Why all deadlines are bad for quality
 
QI, not QA
QI, not QAQI, not QA
QI, not QA
 
Do we really need game testers?
Do we really need game testers?Do we really need game testers?
Do we really need game testers?
 
Hardware/Software Integration Testing
Hardware/Software Integration TestingHardware/Software Integration Testing
Hardware/Software Integration Testing
 

Recently uploaded

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 Processorsdebabhi2
 
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...Martijn de Jong
 
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 SavingEdi Saputra
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
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 WorkerThousandEyes
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
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, Adobeapidays
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
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 2024The Digital Insurer
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
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].pdfOverkill Security
 
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 businesspanagenda
 

Recently uploaded (20)

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
 
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...
 
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
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
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
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
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
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
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
 
+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...
 
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
 

Lessons learned in implementing test on-commit for mobile devices

  • 1. Confidential Lessons Learned in Implementing Test-on-Commit for Mobile Devices Going from vision to reality is often not trivial Rev PA1 2011-10-26 1
  • 2. Introduction  Test-on-commit, integration test, or testing each software upload before merging to the software main branch, is a key enabler to continuous integration  For mobile devices it is often more difficult than for web services or applications because of dependencies towards hardware  A vision to having thousands of test being executed on each commit for all different variants and configurations is easy to set in power point, but very complex to realize in practice  This presentation presents some of the lessons learned when implementing test-on-commit for mobile devices
  • 3. Integration Test Overview Developer Upload Reports Test System Triggers Reports Triggers Code Repository Reports Build System
  • 4. Lessons Learned Overview Test Execution Build Capacity Time Test Case Test Ownership Environment Test Case Test Result Repository & Analysis Ownership
  • 5. Build Capacity  Building applications can go quite fast, but if there are hardware and software dependencies that require a rebuild of the entire system, the build time will increase drastically  With that in mind, adding the fact that test-on-commit requires the build system to be able to handle hundreds or thousands of commits each day, this puts a heavy requirement on the capacity of the build cluster  Even worse, if each commit has to be built in several variants, this further increases the capacity requirements
  • 6. Build Capacity Solution  One recommendation can be to start small; don’t build for all commits, select the most important areas and only build for commits to those areas  Perhaps select the highest priority variants and test the rest after merge to the software main branch  Look at possibilities to increase build cluster capacity while starting out small with the integration test  Google has solved this by building in the cloud [2]
  • 7. Test Execution Time  It is possible to execute thousands of test cases in a very short time, but only a specific sort of test cases  Testing functionality and throughput over Wi-Fi will take much longer than a fraction of a second  Testing a file systems functionality can take a long time, depending on how much reading and writing to the file system that is necessary  If the test execution time is too long this will put heavy requirements on the test system’s capacity  The test execution time should not be longer than the code review time, as the test should be input to the merge decision and not delay merge to the software main branch – if it takes to long it is an obstacle to continuous integration
  • 8. Test Execution Time Solution  Design integration test cases with the time aspect in mind, don’t just take existing test cases and try to squeeze them into the test scope  If it is possible – have a dynamic integration scope that selects only test cases relevant for the specific commit – if the commit changes something in network signalling, run test cases in this areas, and in areas with dependencies to network signalling  If this dynamic scope is not possible, make sure to at least touch each area, and then focus on adding more test cases to the high priority/high risk areas  Understand your scope – don’t try to test everything before merge to the software main branch
  • 9. Test Case Robustness  If a test case is going to be executed hundreds of times each day, it is critical that the test case does not generate inaccurate results  Try to have as few dependencies towards the external environment as possible, and try to limit the ways that the test case can give false positives or negatives  Creating robust test cases that are complex and add value is one of the major challenges  If the test cases are not robust, no one will believe and take actions in the results of the tests, thus making them practically useless
  • 10. Test Environment  In the same way as the test cases have to be robust, the test environment has to be robust – it can not generate false positives or negatives for the same reasons as the test cases  The test environment will be under a heavy load – make sure to invest in good equipment, as it must be able to handle a lot more than under normal circumstances  Take a Wi-Fi access point for example – the cheaper once will most likely fail to establish connection maybe 1 time out of 10 when being accessed by several phones simultaneously – this is not good enough, invest in a more expensive Wi-Fi access point to make the test environment more robust
  • 11. Test Results Analysis  Executing test cases is useless without proper analysis of the results  Remember to allocate resources for maintaining and monitoring the integration test after it has been implemented  Analysis must be quick to not delay integration, so there must be dedicated resources available to handle this  The more robust the test cases and the test environment is, the less time is spent on test results analysis  The results of the analysis must be communicated to the right stakeholders  Microsoft has implemented automatic test result analysis, which of course is an even better solution [3]
  • 12. Test Case Repository & Ownership  Usually unit tests and API tests are stored together with the code, but it is worth investigating if storing integration tests separately adds value  There needs to be one clear owner of all the integration tests, as changes need to happen controlled and quickly  This is often easier if the test cases are not stored together with code owned by someone else
  • 13. Conclusion  Creating a test-on-commit system that runs an integration test on all uploads before merging to the software main branch is difficult  Google spent many years getting their system operational, but they have succeeded [1]  Doing the same for mobile devices is even harder as it adds the complexity of the mobile device hardware, and complex dependencies  It is not easy and requires a lot of dedicated time and resources to implement – but it is a key enable to continuous integration, and a problem everyone will have to tackle eventually
  • 14. Reference [1] Tools for Continuous Integration at Google Scale http://www.youtube.com/watch?v=b52aXZ2yi08 [2] Build in the Cloud: Distribution Build Outputs http://google-engtools.blogspot.com/#!/2011/10/build-in-cloud-distributing-build.html [3] Test Innovation http://angryweasel.com/blog/?p=362