140 likes | 472 Views
Performance test automation using IBM Rational BuildForge and IBM Rational Performance Tester. Amitabh Kaushal – Performance Test Manager Vivek Sharma – Performance Test Lead 20 November 2010. @ 2009 IBM Corporation. Case Study Introduction & Background Performance Test Life Cycle
E N D
Performance test automation using IBM Rational BuildForge and IBM Rational Performance Tester Amitabh Kaushal – Performance Test Manager Vivek Sharma – Performance Test Lead 20 November 2010 @ 2009 IBM Corporation
Case Study Introduction & Background Performance Test Life Cycle Urgence Performance Framework Automation of Performance Test Test Execution Sequence Comparison with Urgence Performance Test Cycle Major Benefits of using Urgence Framework Summary Agenda
Largest European Bank in UK : Case Study • Benefits realised • 50% Reduction in Performance Regression Test Execution Timelines • Indexing/cataloging of Regression Test Pack • Complete Automated Solution • Effective risk-based approach • SLA-Based Performance KPIs • Test Quality • Schedule Adherence • Test Effectiveness • Significant Knowledge Management Improvements • Reduction in reliance on Customer’s SMEs • Greater flexibility in test execution • On-track for 16% reduction in fixed-costs of Service • Service Improvement initiatives around • Performance Testing effectiveness and methods • Further Test Automation in Other projects • Driving Quality Methods further up the SDLC
Customer’s application is a ‘Trades Settlement Platform’ which processes ~2.5M trades/day, supports 33 Back Offices in all major financial Geographies, Europe’s biggest Oracle Database IBM currently delivers a range of Testing Services for this Platform. Customer challenged IBM to provide “… specialised, on-demand, repeatable and cost effective (offshore) performance test service for this application. This will be a different delivery model to SIT, Regression testing etc.” IBM did deliver a repeatable, on-demand and cost effective Performance Regression Testing solution with the following attributes: Cover end to end Performance Test Lifecycle (Test Preparation – Shakedown – Execution – Interim Reporting - Final Reporting), using IBM Rational tooling and IBM Research innovation. Test Phase duration got significantly reduced (target was 50%) An automated “chassis” with rules-based Environment deployment, performance tests automation capabilities, threshold driven automated report generation. Based around the capabilities of IBM Build Forge product which forms the foundation of the Service Uses IBM's Rational Performance Test (RPT) tooling for test execution of the online testing functionality Combines existing monitoring augmented by Unix level Monitoring tools / integration with Optier-Corefirst / online transaction timing metrics. Combined uses of Open Source tool with others to monitoring server side metrics for analysis and scalability - PMRE, SQL Developer, Oracle OEM, NaGIOS etc. Introduction and Background
Performance Test Life Cycle The performance test lifecycle primarily consists of: 1. Performance Risk Workshop to decide the scope of the performance testing and the test mitigation for the risks the project will introduce. 2. Workshop Exit Report 3. Detailed Performance test Plan which consists of the scope, approach, risks, dependencies and estimated schedule for the performance test.
Test preparation, Execution and Monitoring are automated with Rational Build Forge and Rational Performance Tester Urgence Performance Framework GUI Application Test Data Rational Performance Tester Performance Test Environment Solaris, Win, Linux boxes with Database Servers Rational Build Forge Define and use Build Forge to set up Test environment • Deploy Test Data • Install Test Tools • Validate Test Environment Readiness • Generating Test Reports • Storage of RPT scripts and data • Preparation, Execution and monitoring of Performance Test BF Agent Open Source Tool for monitoring
Test Preparation Prepare test input files using IBM Build Forge Execute Performance Health Check using IBM RPT, BuildForge, Open Source tool for monitoring Environment validation – Automatically raise JIRA/GIMS (incident management system) if required processes are not running in the test system Test Execution Schedule multiple Test runs for various regions – APAC, EUROPE, USA 12-20 hrs online tests running in-parallel with IBM Rational Performance Tester. This whole end-to-end execution is fully automated now. Test Monitoring & Reporting Continuous monitoring of different databases to assess the trade flow using OEM, SQL Developer, build forge Server resource utilization monitoring using PMRE and native Solaris commands - Prstat/Top, IOstat, netstat. Use in-house shell scripts to capture channel throughput. Raise JIRA automatically and send notification mail to stakeholders. Automation of Performance Test – Preparation, Execution, Monitoring
Urgence Test Execution Sequence Following scheduled tasks are driven by Buildforge – comprises of the entire performance test steps Test Execution Scheduling Test execution consists of running online tests for 12 hrs in parallel to the intraday tests for various regions at scheduled time. The servers are monitored the entire duration of the tests to view CPU utilisation. These tasks are sequenced as shown and executed at the specified time in Build Forge.
~2.2 weeks cycle time reduced to 5 days 6 days effort saved on plan per Cycle (typically critical-path) 60 days saved on plan per year (based on 4 releases per year) and being utilised for more run now Within Test Execution Task there can be many ‘runs’, and therefore more robust performance metrics Standard Performance Test Cycle Urgence Performance
Re-usability and Modularity - Used Build Forge feature to create common projects across environments wherever it is applicable - Parallel execution possible at a time in 2 or more environments Reduced / Eliminated dependency - Reduce Support Team and SME involvement for providing result. - Usage of licensed software like TeamQuest, Loadrunner etc. - Dependency on Technical Architect and DBA group to provide data and analyse result - Performance tester involvement in checking process down and raising JIRA accordingly, reduce tester effort - Resource Utilization (Server Stats) using external tool like – TeamQuest, Analyzer Automation – Reduction in manual efforts - Creation of test data (bulk trade files and online data) - Trade Monitoring (to collect vesting results) - Use Multi-threading concept to speed up the execution process - Can run unattended performance test (using scheduling feature in BF) Central Repository for all test results Major Benefits of using Urgence Performance Framework
Reduction in test timelines Shorter test execution runs (5 days for 3 run) Fewer attempts to get to first good run Get the analysis done and find the bottleneck by comparing different run results With Urgence Framework, Customer has achieved significant… • Reduction in human resource costs • Resources running the tests will have lower rates – completely offshore • SMEs will spend less time on Performance Testing • Reduced dependency on Support Team(TA, DBA)to fetch baseline stats • Eliminating manual, error prone tasks • Repeatable and consistent processes for improved efficiency • Increases time dedicated to analysis • Automated testing will provide answers for “how does release Y equate to release X” • Opens the door to aggressive tuning activities “tweak a variable, run the test, tweak again, run the test”. • Raise the consistency and confidence in Performance testing.
Summary • Using Build Forge, RPT and Open source tool we have automated the end to end performance testing for customer’s application. • We have demonstrated reduction in overall test cycle time, ability to execute the tests 'On Demand' in a cost effective way. • We have reduced manual efforts by introducing automation (i.e. creation of test data, Trade Monitoring, JIRA, running unattended performance test with the scheduling feature in Build Forge). • Performance test scope is now decided early in the release lifecycle by conducting a ‘risk workshop’ to discuss the non-functional requirements. • Specific deliverables like risk workshop exit report, test strategy, test plan are delivered in different phases of the performance test life cycle and obtained a sign off before the execution of tests. • In Summary, we were able to realise the customer's vision for an 'On Demand' performance test capability.