WELCOME TO CONTINUOUS INTEGRATION TESTING Mikko Palkama IBM Software Nordic mikko.palkama@fi.ibm.com
THE CHALLENGE Traditional approach: Integrate everything, then try it out Complexity lies beneath the surface Challenges: Difficult to troubleshoot Everybody waits for fixes Test environment setup
TEST INTEGRATIONS EARLY Requirements Unit Tests Big Bang Sys Tests UAT OT Performance
TEST INTEGRATIONS EARLY Requirements Unit Tests Integration Tests Sys Tests UAT OT Performance
TEST INTEGRATIONS EARLY Requirements Unit Tests Integration Tests Sys Tests UAT OT Performance
TEST INTEGRATIONS EARLY Requirements Unit Tests Accelerates testing Reduces costs Lowers risk Integration Tests Sys Tests UAT OT Performance Shifting testing to the left! Shifting focus to Integration (even in TDD)
AGILITY STOPS AT INTEGRATION TESTING
A BETTER APPROACH
WHAT IS NEEDED? Ability to Test at interface level (test automation) Test components in isolation (simulation of other components or systems) Without Big effort Deep programming skills Creating waste (lack of re-use)
NEED BETTER TOOLING That make it easy and fast to Initiator 1. Create automatic integration tests Recipient 2. Create stubs that simulate (sub) systems 3. Manage the use of stubs (virtual services) in various test environments 4. Maintain and reuse the integration test inventory Across a variety of technologies
EXAMPLE USE CASES 3rd party UI logic Business logic ESB 3rd party Integration points Database Mainframe
EXAMPLE USE CASES TEST BUSINESS LOGIC ALONE 3rd party UI logic Business logic ESB 3rd party Automatic test Database Virtual service Mainframe
EXAMPLE USE CASES TEST USER INTERFACE ALONE 3rd party UI logic Business logic ESB 3rd party Automatic test Database Virtual service Mainframe
EXAMPLE USE CASES TEST USER INTERFACE ALONE 3rd party UI logic Business logic ESB 3rd party Automatic test Database Virtual service Mainframe
EXAMPLE USE CASES SIMULATE BACKENDS 3rd party UI logic Business logic ESB 3rd party Automatic test Database Virtual service Mainframe
TOOLSET / PRODUCTS Rational Integration Tester Scriptless, wizard-driven test authoring environment with support for more than 70 technologies and protocols Capture and model virtual services Create functional integration tests Reuse your functional tests for performance testing Rational Test Virtualization Server Central environment for managing virtual services and test environments (Web UI) Make virtual services available to others DEV Test Workbench Test Servers QA Functional Testing Integration Testing Performance Testing Regression Testing Load Agents Virtualization Agents
SUPPORTED TECHNOLOGIES Messaging Protocols SOA, ESB, Others Message Formats Email (SMTP, IMAP) Files FTP/S HTTP/S TCP/IP WebSphere MQ ActiveMQ Sonic MQ JMS SAP IDoc, BAPI, RFC Software AG s IB & IS TIBCO Rendezvous, Smart Sockets & EMS CICS TG IMS Connect Java, RMI CentraSite Oracle Fusion SCA Domain Software AG IS, Broker, BPMS WebSphere Application Server WebSphere Message Broker WebSphere MQ Sonic ESB System z (CICS and IMS) TIBCO ActiveMatrix UDDI Web Services, WSDL WebSphere RR BPM Databases Log Files.Net Objects Bytes COBOL Copybook ebxml ASC X12 UN/EDIFACT DFDL Fixed Width Java Objects MIME SOAP Software AG Broker Docs SWIFT CHIPS FedWire TIBCO ActiveEnterprise XML (DTD, XSD, WSDL) Custom
EXAMPLE TOPOLOGY Intercept control and publication of virtual services Workbench Integration Tester Test Control Panel Test Virtualization Server Agent Agent Stubs SUT Client Intercept / Proxy Service Normal traffic flow from client application to SUT via intercept technology PassTh = Pass Through
PERFORMANCE TESTING Configure & Control Execute 1700 New Orders Type A per second Virtualize 5 Cancelled Orders per second 50 Order Edits per second 1 Heartbeat per second 750 New Orders Type B per second
PERFORMANCE TESTING Configure & Control 1700 New Orders Type A per second Execute 5 Cancelled Orders per second Analyse Virtualize 50 Order Edits per second 1 Heartbeat per second 750 New Orders Type B per second
Booking Request (SOAP/HTTP) Travel web UI Hotel finder web services
BENEFITS Reduced Cycle Time Lower Risk Lower Test Lab costs More effective parallel development by virtualizing different parts of the system Test environments can be configured faster Focus on testing, not on configuring environments Developers have the means to test software earlier at the Service/API level More testing can be done independently from the User Interface, during development Test lab infrastructure costs Labor involved in setting up test environments 3rd party systems for non-production use, feebased services
RE-CAP CONTINUOUS INTEGRATION TESTING Service Virtualization is an enabler for continuous Integration Testing Services, applications, systems are introduced into the continuous integration cycle in a prioritized, controlled fashion. Actual Service/App Virtual Service/App Incremental Integration
PART OF YOUR CONTINUOUS DELIVERY PIPELINE Enhance in your continuous integration / delivery pipeline: Run automated integration tests Automatically provision virtual services Automatically set up and tear down test data sources Combine with other tools: build engines, deployment automation, cloud provisioning, test data management Integrate with Test management Defect tracking Source code version control
SUCCESS STORIES Major telecom carrier Multiple test releases required additional test resources, increasing testing costs Solution: Virtualized services and created reusable test cases across multiple environments Results: Reduced testing time by 50%, saving $800K over 3 years Global bank Reduces critical development path for Mortgage platform program Solution: Simulation of front end to conduct sub- GUI database and log checks. Message based testing of Mortgages mainframe Results: Critical path reduced by 6 weeks, estimated savings of $2.2M Global bank Needed to improve time to market for fixed income business Solution: Implemented agile testing process supported by continuous, automated integration testing for payments hub Results: Project lead times halved and costs down one third; Flexibility to introduce late requirement changes US Healthcare Organization Moves to continuous testing model with 100s of 3rd party interfaces Solution: Service virtualization and early integration testing. Create stubs to simulate 3rd party interfaces. Results: Reduced environment costs for 3rd party interfaces; enabled switch to continuous delivery; reduced start-up and maintenance costs for new projects through sharing of SV and test assets
FIND OUT MORE Video: What is continuous integration testing? http://www.youtube.com/watch?v=wgoogtsotc4 Video: What is service virtualization? http://www.youtube.com/watch?v=np5_o43bfd4 Video: When to use service virtualization? http://www.youtube.com/watch?v=j1f5vp3gcim White paper: Lessons learned from testing service-oriented architectures https://www.ibm.com/services/forms/signup.do?source=swg-rtl-sd-wp&s_pkg=500029668 White paper. A rational approach integration testing https://www.ibm.com/services/forms/signup.do?source=swg-rtl-sd-wp&s_pkg=500029634 Product Information: IBM Rational Test Workbench: http://www-01.ibm.com/software/rational/products/rtw/ IBM Rational Test Virtualization Server: http://www-01.ibm.com/software/rational/products/rtvs/ IBM Rational Performance Test Server: http://www-01.ibm.com/software/rational/products/rpts/
www.ibm.com/software/rational Copyright IBM Corporation 2014. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.