An introduction to Continuous Integration with a focus on mobile app testing. This presentation takes you through the benefits, tools and systems needed to make CI a success.
Case Study: CI implementation for Leading Healthcare Provider
Customer Challenges
Slow automation execution Time- 22 mins per test case
Sequential module wise execution on one device @ a time
Already automated script not utilizing in regression cycles
Lots of test data dependencies and require regular maintenance
No framework available for Responsive web design for mobile
InfoStretch Approach
Recommended best practices for automating native & web
app using perfecto cloud
Collaborated with Scrum Team and understand web-
service/JSON role in test data generation/creation
Setup continuous integration for nightly execution for
utilizing cloud devices on free time
Proposed HP ALM integration along with Jenkins for
complete automation life cycle
Engagement Benefits
Optimize automation execution to 8-10 mins per test cases
[Reduce 50%]
Enabling parallel execution on all perfecto cradle
Utilizing automation script in regular code drop/release cycle
[2-3 times per week- average 1200 test cases executed in
each cycle]
Develop framework utilizing JSON response instead of test
data in xls sheet on run time. [Almost 0% test data
dependency and maintenance]
Created new framework which supports common code for
execution on desktop and mobile browsers on perfecto devices
for Response Web design
Alicia can you put relevant logos for each of the tools.
Page 27 from PDF document.
Alicia can you put relevant logos for each of the tools.
Page 35 of PDF and logo for SonarQube and Fortify
Page 46-47 of PDF
) You are stuck in a "hot mess" of hotfixes. Not uncovering problems early. Forced into making changes late in the game.
You are deploying manually between environments. It's slow. It's brittle. It's painful.
You hear the all too common "it works on my device" uttered by your developers. Then it breaks
on staging and production.
Defects are detected and fixed sooner – Integrating testing throughout the development process would give QA teams more time to find bugs and help prevent bugs from effecting later code.
Health of software is measurable – By establishing continuous testing into the automated integration process, the software health attributes such as complexity can be tracked over time.
Reduce assumptions – Continuous Integration gives the chance to replace assumptions with knowledge thereby eliminating all cross-platform errors at the development stage.
Reduce overheads – Finding a bug at the development stage is the cheapest possible way to find it. If the same bug was to be fixed in any other environment, it would cost more. Setting up a CI system may cost an overhead, but will outweigh the man-hours saved along the way.
Brings quality assurance – This is the biggest benefit from a client perspective, continuous integration can enable you to release deployable software at any point in time. In the absence of CI, projects are prone to delayed releases because of unforeseen issues which arise from deployment.
Enables better project visibility – Since integration occur frequently, it provides the opportunity to notice trends and make informed decisions. Noticing trends in build success or failure, overall quality becomes possible. With CI, you can access real-time data on the code quality metrics to innovate new improvements and support decisions. It also offers the ability to generate API-like documentation for all committed code, making the software architecture immediately visible to new developers and other team membersIn terms of software quality, CI can help you measure cyclomatic complexity, code duplication, dependencies and coding standards so that developers can proactively refactor code before a defect is introduced. If a defect is introduced into a code base, CI can provide feedback soon after, when defects are less complex and less expensive to fix. Also, when using an effective developer testing regimen, CI provides quick feedback, via regression tests, on software that was previously working and is adversely affected by a new change. How about ROI?
Calculate how much time your team spends on fixing defects once the software is with the testing team -- QA, integration testing, etc. Of course, it costs considerably more once it enters production. When implementing effective CI practices, you can discover many of these defects as soon as they are introduced, which significantly decreases the cost of fixing each defect.
CI is really important to moving fast, or just to move with the confidence you are not breaking anything
CI provides benefits like :
Rapid feedback on the "health" of the software under development
Identification of defects early on in the development cycle
Significant reduction to the cost of fixing each defect
CHANGED BUILD & UNIT TESTS, need to add deployment in here.
A Flexible and Mobile-ready Plugin – Support your most complex use cases by automatically deploying mobile apps, executing your test code, and assuring high quality delivery of any mobile app style.
Unlimited Scalability and Device Elasticity for Your Entire Release Cycle – Ramp up from single device testing to full, cross-platform load testing on hundreds of devices worldwide.
Enterprise-ready and Continuous Quality - Our SLA based cloud and local deployment services are consistent, stable and secure, which is great for global, distributed team collaboration.
Leverage Existing Processes and Assets Within Your Organization - Connect your existing mobile app development tools to the Jenkins plugin in order to execute your test code against your "hybrid" MobileCloud lab of real devices.
Enhance Mobile CI Workflow in Real User Conditions - Test on real devices, in real-time with real network conditions across different geographies.
On-demand Availability – Execute tests anytime, from anywhere with continuous access to a cloud-based test bed of active, carrier connected mobile devices
Faster Issue Resolution – Foster agility with rich reports that include screenshots and videos to clearly demonstrate what went wrong and where
Cloud
Distributed Team Access
Cost Efficient Team Engagement
Sharing / Test Execution Proofs
Automation
What type of tools / language support
Selenium / UFT Support
Integrations
Test Management System / CI Integration
Note: Removed Roles and skillsets from slide title because it is repeated as slide bullet headers.
Social media icons would be good for presentations done for outside of InfoStretch audiences.