Whitepaper. Continuous Integration Tools Applying Best Practices to the Toolchain

Similar documents
Principles of Continuous Integration

SOASTA CloudTest Performance Data Retention and Security Policy. Whitepaper

SOASTA Real User Monitoring Best Practices

8 Common Myths About Performance Testing in Production Don t Let These Misconceptions Keep You From Production Testing.

It s Not Called Continuous Integration for Nothing!

CloudCenter Full Lifecycle Management. An application-defined approach to deploying and managing applications in any datacenter or cloud environment

Cloud Testing Production Applications CloudTest Strategy and Approach

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Continuous Delivery. Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley

ACCELERATE DEVOPS USING OPENSHIFT PAAS

Agile Software Factory: Bringing the reliability of a manufacturing line to software development

The Benefits of Utilizing a Repository Manager

Best Overall Use of Technology. Jaspersoft

White Paper. The Importance of Automating the End to End Pipeline for Continuous Delivery

A Sumo Logic White Paper. Harnessing Continuous Intelligence to Enable the Modern DevOps Team

DevOps Course Content

How To Achieve Continuous Delivery

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

WHITEPAPER. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Principle #1, Agile Manifesto

OpenStack Cloud Migration:

Building Value with Continuous Integration

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

The Benefits of Deployment Automation

Distributed Agile Development in the Cloud

Azure Day Application Development

From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development

Microsoft Modern ALM. Gilad Levy Baruch Frei

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

DevOps Best Practices: Combine Coding with Collaboration

Increasing Business Efficiency and Agility for ATGbased. Systems. the business challenge: upgrading the development pipeline

WHITEPAPER. Beyond Infrastructure Virtualization Platform Virtualization, PaaS and DevOps

Continuous Delivery Benefits, Best Practices and Practical Advice

Five Strategies for Performance Testing Mobile Applications

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Continuous Integration. CSC 440: Software Engineering Slide #1

Sales Slide Midokura Enterprise MidoNet V1. July 2015 Fujitsu Limited

Continuous Integration

OpenStack Cloud Migration : Migrating On-premise workloads to OpenStack Private Cloud

Continuous Delivery for Force.com

DevOps and SUSE From check-in to deployment

APP DEVELOPMENT ON THE CLOUD MADE EASY WITH PAAS

McAfee Public Cloud Server Security Suite

Parasoft and Skytap Deliver 24/7 Access to Complete Test Environments

Cloud and Data Center Security

SOFTWARE DEVELOPMENT BASICS SED

Continuous Integration

The Role of Feedback in Continuous Integration, Continuous Delivery and Agile ALM

Continuous Integration and Delivery at NSIDC

Fast Feedback: Jenkins + Functional and Non-Functional Mobile App Testing Without Pulling Your Hair

Continuous Delivery. Alejandro Ruiz

TEST AUTOMATION FRAMEWORK

Unidata Cloud-Related Activities. Unidata Users Committee Meeting September 2014 Ward Fisher

Trend Micro. Secure virtual, cloud, physical, and hybrid environments easily and effectively INTRODUCTION

Building Value with Continuous Integration

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

I D C V E N D O R S P O T L I G H T. W o r k l o a d Management Enables Big Data B u s i n e s s Process Optimization

Continuous Delivery: Automating the Deployment Pipeline. Solution Brief

Cognizant Mobility Testing Lab A state of the art Integrated platform for Mobility QA

NeXUS REPOSITORY managers

Altiris IT Management Suite 7.1 from Symantec

Servers. Servers. NAT Public Subnet: /20. Internet Gateway. VPC Gateway VPC: /16

CLOUD DEVELOPMENT BEST PRACTICES & SUPPORT APPLICATIONS

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Application Release Automation (ARA) Vs. Continuous Delivery

Releasing High Quality Applications More Quickly with vrealize Code Stream

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

Software Continuous Integration & Delivery

Continuous Integration (CI)

Coverity Services. World-class professional services, technical support and training from the Coverity development testing experts

Continuous Delivery. Ariel Alonso, IPC

Windows XP Application Migration Checklist

APPLICATION OF SERVER VIRTUALIZATION IN PLATFORM TESTING

TEST MANAGEMENT SOLUTION Buyer s Guide WHITEPAPER. Real-Time Test Management

Continuous Integration (CI) for Mobile Applications

Developing Microsoft Azure Solutions 20532B; 5 Days, Instructor-led

BMC Cloud Management Functional Architecture Guide TECHNICAL WHITE PAPER

Zero-Touch Drupal Deployment

Taking the Leap to Virtualization

Paul Barham Program Manager - Java. David Staheli (dastahel@microsoft.com) Software Development Manager - Java

Cloud, Appliance, or Software? How to Decide Which Backup Solution Is Best for Your Small or Midsize Organization.

Software Construction

Extending Microsoft Hyper-V with Advanced Automation and Management from Citrix

Continuous integration End of the big bang integration era

Enabling Database-as-a-Service (DBaaS) within Enterprises or Cloud Offerings

Developing Microsoft Azure Solutions

Developing Microsoft Azure Solutions 20532A; 5 days

View Point. Overcoming Challenges associated with SaaS Testing. Abstract. - Vijayanathan Naganathan, Sreesankar Sankarayya

A central continuous integration platform

Mastering Continuous Integration with Jenkins

Transcription:

Whitepaper Continuous Integration Tools Applying Best Practices to the Toolchain

Table of Contents Introduction... 3 Continuous Integration Tools... 3 Device Test Automation... 3 API / Web Test Automation... 3 Version Control... 4 Build Automation... 4 Artifact Management... 4 Configuration Automation... 5 Test Clouds... 5 Device Clouds... 5 About SOASTA, Inc... 5 SOASTA, Inc. CONTINUOUS INTEGRATION TOOLS WHITEPAPER 2

Automated testing, using SOASTA CloudTest and TouchTest, is a central component of CI automation. Introduction The Principles of Continuous Integration white paper introduced key elements of effective continuous integration for mobile development. In order to reap the speed and quality benefits promised by CI, it s important to understand and apply these practices. It s not enough just to stand up a Jenkins server. Continuous integration depends on the proper use of tools. Automation is critical to reducing waste and to increasing delivery speed by removing opportunities for manual errors. Automated testing, using SOASTA CloudTest and TouchTest TM, is a central component of CI automation. Continuous Integration A continuous integration toolchain that addresses the key best practices typically integrates several classes of tools. These tools fall into the following categories: Device test automation API/Web test automation Version control Build automation Artifact management Configuration automation Test clouds Device clouds Device Test Automation Continuous integration depends on the ability to turn changes around quickly. Changes involve not only code, but also tests. CI also depends on comprehensive regression test coverage. Neither of these dependencies is compatible with manual test execution. Without a way to write tests as quickly as developers write code, QA teams fall behind and become overwhelmed by ever-growing test case backlogs. SOASTA TouchTest enables rapid, easy development of mobile device tests. Its support for integration with build automation tools enables automated execution of regression suites. API / Web Test Automation The same concerns that apply to device testing also apply to server application testing. SOASTA CloudTest supports rapid, easy development of automated SOAP/REST API and interactive website tests. Its support for integration with build automation tools enables automated execution of server application regression suites. SOASTA, Inc. CONTINUOUS INTEGRATION TOOLS WHITEPAPER 3

Version Control Continuous integration is fundamentally about integration, requiring a reliable mechanism for folding together code changes from multiple developers. A version control system (VCS) such as Git, Mercurial, Subversion or Microsoft Team Foundation Server serves this purpose. In an environment where multiple developers are simultaneously changing a shared code base, it is critical to be able to control and understand the flow of those as they leave individual developers machines and move towards production. In addition to basic check-in/checkout functionality, a VCS must support easy branching, merging and tagging. Build Automation Build automation is at the center of the continuous integration universe and defines the overall integration pipeline. A typical pipeline includes: 1. Retrieve code from version control system 2. Build code and run unit tests 3. Store built binaries in artifact management system 4. Deploy binaries to test environment 5. Run functional and non-functional tests (security, performance, load, availability, etc.) 6. Promote passing builds to subsequent environments 7. Generate build and test reports 8. Distribute build status notifications Jenkins is the de facto standard open source build automation platform. Bamboo and Anthill Pro are commercial products with similar functionality. Artifact Management Rebuilding artifacts, such as application binaries, is wasteful as well as a potential source for hardto-diagnose errors. Being able know at all times which version of software is in play greatly aids the ability to answer the question what changed? An artifact management system such as Artifactory, CocoaPods or Nexus provides a versioned repository for build artifacts. Build automation platforms and deployment automation tools should tightly integrate with an artifact repository. The output of each successful build should be stored in the repository. Deployment automation should subsequently use the repository as its input. Configuration Automation Just as it s important to control application binary versions, it s also important to control test environments. It worked on my machine is perhaps the most frustrating bug that development organizations encounter. Fortunately, this class of bug can be avoided using configuration automation. It-worked-on-machine bugs (also known as it worked in test bugs) generally result from configuration differences between environments. Manual configuration gives rise to situations where developers use different versions of an SDK, or test uses different OS patches or web servers from production, etc. Configuration automation tools such as Chef and Puppet turn infrastructure into code that can be versioned and automatically built, just like applications. They make it possible to update a configuration script in one place, and have that script automatically update every affected environment, from a developer s desktop to test to production. In a loadbalanced server environment, configuration automation also ensures that all server instances are identically configured. SOASTA, Inc. CONTINUOUS INTEGRATION TOOLS WHITEPAPER 4

Test Clouds Continuous integration relies on continuous testing. Ideally, developers pair with testers to validate changes in local environments prior to check-in. These activities all need to run in controlled environments. The simplest way to control test environments is through a set of centralized environments: the traditional Dev, Test, Load, etc. Centralized environments make control easier, but create speed and flexibility bottlenecks. Ondemand cloud computing, coupled with configuration automation, enables test environments that are flexible yet still controlled. The test cloud approach can start right on the developer s desktop. Vagrant is a tool that incorporates configuration automation into desktop virtualization. A developer can test server application changes in multiple desktop VMs, while being assured that each VM will sync itself with the same Chef or Puppet scripts used to manage higher environments. Continuous integration for server applications defines a potentially lengthy test pipeline. Ideally, that pipeline can be parallelized so that, for example, one change undergoes security testing while another undergoes unit testing. This approach requires that the build automation tool has simultaneous access to multiple server instances. Using an on-demand cloud is an efficient and cost-effective way to implement parallel builds. Clouds can be public (AWS, Rackspace, Azure, etc.) or private (OpenStack, CloudStack, etc.) Device Clouds Mobile device testing requires access to physical devices. These devices need to be tethered to a physical server such as a Mac Mini. SOASTA s TouchTest Mobile Labs provide cloud-based or on-premise device clouds that give developers and testers access to multiple versions of multiple device types. About SOASTA, Inc. SOASTA is the leader in cloud testing. Its web and mobile test automation and monitoring solutions, SOASTA is the leader in cloud testing. Its web and mobile test automation solutions, SOASTA CloudTest and SOASTA TouchTest, and SOASTA mpulse, enable developers, QA professionals and IT operations teams to test and monitor users with unprecedented speed, scale, and precision, and visibility. The innovative product set streamlines test creation, automates provisioning and execution, and analyzes real user behavior in real time distills analytics to deliver actionable intelligence faster. With SOASTA, companies can have confidence that their applications will perform as designed, delivering quality user experiences every timeeven in peak traffic. SOASTA s customers are many of today s most successful brands including Avaya, American Girl, Bonobos, Backcountry.com Chegg, Experian, Gilt Groupe, Hallmark, Intuit, Microsoft, and Netflix. SOASTA is privately held and headquartered in Mountain View, Calif. For more information about SOASTA, please visit http://www.soasta.com. Headquarters 650-210-4950 444 Castro St, Fourth Floor Mountain View, CA 94041 EMEA New Broad Street House 35-42 New Broad St. City of London Greater London EC2M 1NH ASIA Room 11/12 25/F Central Plaza No.381 HuaiHai Middle Road Shanghai, China, 200000 To learn more visit: soasta.com or email us at info@soasta.com 2014 SOASTA. All rights reserved. SOASTA, the SOASTA logo, SOASTA CloudTest, SOASTA TouchTest and SOASTA mpulse are trademarks of SOASTA. All other product or company names may be trademarks and/or registered trademarks of their respective owners. Connect with us: TEST FASTER. RELEASE SOONER.