15
06/06/2010 Panda: Cloud Computing in Testing Tao Jiang www.linkedin.com/in/taojiang2000/ Rohitasva

Testing in the Cloud using Panda

Embed Size (px)

Citation preview

Page 1: Testing in the Cloud using Panda

06/06/2010

Panda: Cloud Computing in Testing

Tao Jiang

www.linkedin.com/in/taojiang2000/

Rohitasva

Page 2: Testing in the Cloud using Panda

2 2

Objectives

Cloud Computing in Latitude System Testing

What is Panda?

Things behind Panda

Page 3: Testing in the Cloud using Panda

3 3

Latitude Advanced Patient Management

Page 4: Testing in the Cloud using Panda

4

Previous Testing Experience

4

Manages Enrollment, Device Ordering/Replacement, Fax and CRM

• EAI: Enterprise Applications Integration.

– Uses IBM WebSphere MQ to broker messages between systems

• SAP: Finished Goods / LAT hardware

• KMS / RMI: Marries the communicator and the PG

• TRaCII: Physician/Patient Information and Device Registration

• RightFax: Fax yellow alert

• Siebel: Customer Relationship Management tool

Latitude System Testing heavily involved in Business System.

Page 5: Testing in the Cloud using Panda

5 5

Testing Experience in Release 6.0

Business System Testing using MQ Tool

• Messages are generated Manually based on Templates

• Manually configure MQ Tool for target test environment

• Manually play messages into the flow between LAT & EAI

Some use Business System Simulator, called iBot.

• Hard coded default value and limited customization in generated Messages. Not usable for Validation team.

• Resource hog: Each environment runs as 5 windows services.

• Cannot support all Release 6.0 environments at the same time.

• Work Less and Crash Often: one dedicated engineer for maintenance

• Cost More: Often takes 1-2 hours for crash analysis and recover. The time put other test engineers idle was enormous.

Others use DTS

• Very easy and fast

• Use SQL enrollment by tweaking database.

• Cause data issues in testing.

• Not the way how the real system works

Page 6: Testing in the Cloud using Panda

6 6

Panda: System Overview

Page 7: Testing in the Cloud using Panda

7 7

What Panda Does?

Panda is a collection of:

• Panda Service Cloud: Core Functionalities

• Panda Web Application – Software on Demand

– Support All Aspects of Latitude Enrollment Process

• Panda API: Python Interface to Panda, APM Web and DTS – Automated Testing

– Batman: Hardware BAT Tool

Host all Latitude Release 7.0 test environments

Broker to IBM WebSphere MQ

XML Message Signing Service for Secure Messaging

Business System Message Generator

Latitude Business System Simulator

LDAP Client Tool

Enrollment Data Validation Tool

Page 8: Testing in the Cloud using Panda

8 8

Design Highlights: Technologies

Multi-Tenancy Architecture

• One App Fits All test environments.

• Scale up to thousands or down to just one

• Upgrade available to all tenants immediately.

Embedded Jetty Web Server

• Efficient, embeddable and pluggable web server and servlet container.

• Panda Core Service is only 150K in Size!

RESTful JSON Web Service

• Completely stateless web service

• Highly tuned SQL Queries for great performance

• JSON instead of XML for Efficiency and Flexibility

• Platform and Language Neutral Solution

jQuery and jQuery UI: write less, do more

• Use AJAX/JSON, No Page Reload

• Web Application with Desktop Application User Experience

Page 9: Testing in the Cloud using Panda

9 9

Panda Core Service

EnvironmentJetty

SAP Sim TRaC Sim

KMS/RMI

Sim

OracleDB

LDAP

MQ Writer

RegFGServlet

EnvInfoServlet

MsgSignServlet

MqWriterServlet

DBUtilServlet

MessengerServlet

UtilityServlet MQ Reader

Page 10: Testing in the Cloud using Panda

10 10

Panda API: Overview

Panda Core Service

APM Web

DTS

Protocol Data

Panda API

HTTP POST

Enrollment Python Functions

HTTP GET

· Generate Business System

message

· Send Message to IBM WebSphere

MQ

· Register device to server for auto

response on shipment and device

data response message.

· Get Test Team List.

· Get Test Protocol List.

· Get Test Data List

· Get Test Data Detail.

· Test engineer can start with getting

test protocol data from DTS.

· Create business system message

based on protocol data.

· Send out business system message

via Panda server.

· Call APM Web functions to finish

enrollment.

Page 11: Testing in the Cloud using Panda

11 11

Scalability

HTTP

HTTP

HTTP

Panda Core Service

(6,0)

Panda Core Service

(7.0)

Panda Core Service

(8.0)

Apache HTTP Server

Proxy

Panda Web Application

Static Content

HTTP/HTTPS

HTTP/HTTPS

Panda API

Currently, there are two instances of Panda Services in the cloud:

• Release 7.0 for System Testing: 23 environments in 5 geographic regions.

• Release 7.0 for App Dev: 5 environments in 5 geographic regions.

• In fact, One Panda instance is capable of supporting all environments we currently have.

Multiple Panda instances are used to support different Latitude releases.

The front end Apache HTTP Server can be configured as:

• SSL Proxy

• Load Balancer

• Request Dispatcher

Page 12: Testing in the Cloud using Panda

12 12

Results

Simplify Test Development

• Common test tasks are handled by Panda Service

• Upgrade on Server makes available to all clients instantaneously

• Centralized Control means less chance to break test

• Focus on application issue other than testing issue

Improve Test Efficiency and Quality

• Fully compliant with message schema and behavior of real business system

• Tools and API make it easy for End to End testing

• Save the need for environments with business system during test debug phase

• Speeds up test development and execution

Page 13: Testing in the Cloud using Panda

13 13

Results (cont)

Stability

• Auto-Recover from connection lose, even power outage

• Eliminated testing downtime

Reduce Cost

• No more dedicated person for maintenance

• Only 150K in size with Low Memory Footprint

• Can be efficiently run even on a $300 Netbook

• 30 minutes for deploying Panda from scratch; 5 minutes for Upgrade

• Multiple Panda instances for supporting multiple Latitude releases

Page 14: Testing in the Cloud using Panda

14 14

Conclusions

Cloud computing is efficient and cost effective in

software testing.

Lots of success stories from our customers.

We expect wider use of cloud computing inside Boston

Scientific.

Page 15: Testing in the Cloud using Panda

06/06/2010

Thank You