49
Testing in an Open-source Middleware Platform Space: The WSO2 Way Iranga Muthuthanthri Technical Lead -QA

Testing in an Open Source Middleware Platform Space The WSO2 Way

  • Upload
    wso2

  • View
    715

  • Download
    3

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Testing in an Open-source Middleware

Platform Space: The WSO2 Way

Iranga Muthuthanthri

Technical Lead -QA

Page 2: Testing in an Open Source Middleware Platform Space  The WSO2 Way

About WSO2

• Providing the only complete open source componentized cloud platform

o Dedicated to removing all the stumbling blocks to enterprise agility

o Enabling you to focus on business logic and business value

• Recognized by leading analyst firms as visionaries and leaders

o Gartner cites WSO2 as visionaries in all 3 categories of application infrastructure

o Forrester places WSO2 in top 2 for API Management

• Global corporation with offices in USA, UK & Sri Lanka

o 200+ employees and growing

• Business model of selling comprehensive support & maintenance for our products

Page 3: Testing in an Open Source Middleware Platform Space  The WSO2 Way

About WSO2

Page 4: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Agenda

• Engineering process at WSO2.

• Product & Release Management.

• Testing Process at WSO2.

• Patch Verification Process.

Page 5: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Testament

The Problem:

• eBay wanted to move away from a home-grown middleware solution to a commercial ESB

• Required very fast response times (< 5ms)

• Benchmarked 10 ESBs

• Including Proprietary, Open Source, Hardware Solutions

• WSO2 was the only ESB to support their performance and manageability requirements

• 2-3x faster than the other software based solutions on eBay’s workload.

The Solution:

• 1.5 billion API calls during peak times (prior to 2011 Holiday season & Black Friday)

• No downtime experienced during 2010 & 2011 holiday peaks!

Page 6: Testing in an Open Source Middleware Platform Space  The WSO2 Way

WSO2 Engineering

Page 7: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Engineering Process

Doing the "right" thing in the "collaborative" way to make

people "happy".

Page 8: Testing in an Open Source Middleware Platform Space  The WSO2 Way

People Centric Process

• People centric process.

• User-engineer engagement model.

• Promotes constant communication in push mode give

and receive feedback.

• Build products users actually use and want.

• Get the "buy-in" from engineers to follow the process

instead of pushing down a model.

Page 9: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Influenced by Apache Way

Communit

y

Openness

Meritocracy

Page 10: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Passion & Commitment

Page 11: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Elements (in) Process

• Product management.

• Milestone model.

• Release model.

• Support model.

Page 12: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Product Management Relationship

Page 13: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Milestone Model

Page 14: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Release Cycle

Page 15: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Done-Done

Page 16: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Support Model

•No Support Engineers.

• Engineering runs Support.

• SLA is Now!.

• Engineers understand the real usage of their creation.

• Engineers gets to know customers problems and pain.

• Learning hub to understand platform aspects.

Makes the next release cycle "Better".

Page 17: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Product

One Product

One Code Base

One Build Command

One Team

Page 18: Testing in an Open Source Middleware Platform Space  The WSO2 Way

WSO2 Platform

Page 19: Testing in an Open Source Middleware Platform Space  The WSO2 Way

WSO2 Testing Principles

• Quality is #1 priority of Engineering practice.

• Engineering owns and is responsible for quality.

• Everyone in Engineering does testing.

• Collaborative Test methodology.

Page 20: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Agile Testing Principles

Based on Agile principles

• Test early test often.

• Face to Face communication (Hackathon mode).

• Responsive to change.

• Frequent feedback.

Page 21: Testing in an Open Source Middleware Platform Space  The WSO2 Way

SOA-Middleware Testing Challenges

• Complexity of testing due to "Headless" state.

• Difficulty in defect isolation.

• Distribution nature of production deployment environments.

• Multiple configuration points for component integrations.

Page 22: Testing in an Open Source Middleware Platform Space  The WSO2 Way

SOA Middleware Test Practice

ESB

Data Server

Service

Identity

Service

Oracle/MySQ

L/MSSQL ...

Registry

Service

LDAP/AD..

Client

(Browser/

App)

Page 23: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Types of Tests

• Unit Tests.

• Integration Tests.

• End to End Tests.

• Performance Tests.

• Security Tests.

Page 24: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Integration Level Phase

• Objective is to validate the integration scenarios of

heterogeneous WSO2 products.

E.g: The ESB - Message Broker integration scenario.

Page 25: Testing in an Open Source Middleware Platform Space  The WSO2 Way

End to End Tests

• Platform aspects of testing.

• Objective is to validate that the platform provides an

application developer to build and launch the application in an

enterprise context.

E.g:

Authorize a request to a deployed web service in app server

through the entitlement mediator defined in the ESB referring to

the entitlement policy defined at the identity server.

Page 26: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Performance Tests

• Performance Tests to Measure:

o Throughput = requests served per second (data rate

/sec).

o Latency = How long each transaction takes ( time

between requests).

Page 27: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Reliability Tests

• Endurance tests:

o Long running tests : Tests running for a significant

periods of time (days,weeks).

• Volume tests:

o System loaded with incremental # of services, artifacts.

Page 28: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Security Tests

Security tests for the following threats are executed.

Threat Types of tests

Spoofing Authentication

Tampering Signature

Privilege Authorization

Information Disclosure Encryption

Page 29: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Cloud Testing

Test the Cloud native features for

• Multi Tenancy.

• Elasticity.

• Self Service.

• Billing & Metering.

Page 30: Testing in an Open Source Middleware Platform Space  The WSO2 Way

"Dogfood" Tests

•Dogfood testing is about using own products for real

usage.

• Internal Patch Management Tool system developed

using WSO2 G-reg product.

• Usage introduced Product enhancements suggested

by Engineers.

Page 31: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Team

Page 32: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Team

• Recognized as Team of the Year - 2010.

• Technically skilled team.

• 6+ years experienced SOA Testers.

• WSO2 Product experts.

• Apache Committers.

• Authors and reviewers of published books on SOA .

Page 33: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Tools

Page 34: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Test Cycles

Page 35: Testing in an Open Source Middleware Platform Space  The WSO2 Way

The release life-cycle...

Tester

Developer

Download builds

• Run integration tests

• Commit quality code

(new code, bug fixes)

Automation Engineer

• Commit automated test cases

Users (Community /

Customers)

Release candidate

Report Jira

Fix Jira

• Fix regression issues of automated

tests

Report Jira

Page 36: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Release Calendar

Page 37: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Tester...

Phase 1 - Test Planning

• For new products

- prepare detailed test plans for all features.

• For mature products

- add test cases for new features.

E.g.:-

https://docs.google.com/a/wso2.com/spreadsheet/ccc?key=0AvhVRxNoCg0KdHRVMm1pM2x

LUDREajdHRVlQekJRcUE#gid=20

Page 38: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Sources for Designing Test Plans

Support Issues

POCs QSPs & Client

engagements

Architecture &

Design Reviews

Competitive

Products

Samples

Page 39: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Tester...

Phase 2 - Generate Artifacts

• Create artifacts for each test scenario

- webapps, axis2 services

- synapse configurations

- configurable governance artifacts

- Jmeter scripts (to create APIs, publish, subscribe &

invoke in bulk)

- scripts for endurance testing

E.g.: - https://svn.wso2.org/repos/wso2/trunk/commons/qa/qa-artifacts

Page 40: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Tester...

Phase 3 (cycle 1) - Test Execution

• Setup product platforms in test lab

(with clustering/caching/mounting).

• Prioritize & execute selected set of test cases on

platform setups.

• Report all L1s, L2s, L3s, etc (issues related to UI,

features, samples & documentation).

• Update test progress in the test plan.

Page 41: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Developer...

Cycle 2

•Fix L1s, L2s, etc.

•Continue functional & non-functional testing.

•Run integration tests.

Page 42: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Tester...

Phase 3 (cycle 2) - Test Execution

• Verify all fixed issues in new build.

• Execute test cases and report more issues.

Phase 3 (cycle n) - Test Execution

• Do final round of testing (smoke test) on final RC (Release

Candidate).

• If no more L1s are found, release the product.

Page 43: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Automation Engineer...

• Automates

- UI & other features (security, throttling, etc).

- certain platform scenarios.

- volume test scenarios.

- certain performance test scenarios.

Page 44: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Automation Engineer...

• Code coverage for some products

Product LOC coverage Class coverage

ESB 38% 66%

G-Reg 46% 65%

DSS 49% 73%

CEP 57% 74%

MB 47% 90%

Page 45: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Support Patch Verification Process

Customer

Reports JIRA

Support

Engineer

• Receives the JIRA

• Post the first response

Provides information on

the issue

Developer /

Automation Engineer

Private

SVN

Commits the patch

Public

SVN Commits the fix for future releases

Tester

Checkout the patch &

verify the fix

Signs the patch if successful

Add integration tests for the patch

Release the patch to the

customer

Simulate customer

setup in test lab

Page 46: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Future...

, Support Team

Page 47: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Q & A.

Page 48: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Engage with WSO2.

Page 49: Testing in an Open Source Middleware Platform Space  The WSO2 Way

Engage with WSO2.