distributed testing with smartfrog - hp labs · about us julio guijarro research scientist at hp...

29
Julio Guijarro Steve Loughran HP Laboratories, Bristol, UK Distributed Testing with SmartFrog julio.guijarro at hpl.hp.com steve.loughran at hpl.hp.com 2006-09-07

Upload: others

Post on 13-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Julio GuijarroSteve Loughran

HP Laboratories, Bristol, UK

Distributed Testing with SmartFrog

julio.guijarro at hpl.hp.comsteve.loughran at hpl.hp.com

2006-09-07

Page 2: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 2

About UsJulio Guijarro

Research scientist at HP Laboratories onGrid-Scale Deployment

Leads the SmartFrog open source effort

Steve LoughranResearch scientist at HP Laboratories on

Grid-Scale DeploymentApache Ant committerCo-author of

Java Development with Ant2nd edition due by Xmas (as is Ant1.7)

Page 3: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 3

Two different distributed systems

Multi-tier webappCERN Large Hadron Collider

Page 4: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 4

How do you show it works?

• Europe's high-end server farms• Years of simulations• Nobel Prize winners, Computer

Scientists and physics PhD students

• An old laptop nobody wants• Any spare time before the go-live date• You

Page 5: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Any application without adequatesystem tests doesn’t exist

Page 6: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 6

0. Developer education & motivation1. Writing the tests2. Running the tests3. Analysing the results

Challenges in System Testing

If we can make system testing compelling, the tests will follow

Page 7: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 7

Writing the tests

No single test frameworkwill suffice

Page 8: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 8

Unit-test derived test frameworks

<cactus>/IDE Application/Web Server

CactusTest extends

ServletTestCaseCactus Servlet

CactusTest extends

ServletTestCase

Server-sideclasses

setUptestXXXtearDown

HTTP

NormalTest extends TestCase

• JUnit 3+extensions• JUnit 4• TestNG• Apache Cactus• HttpUnit• Selenium• jsUnit• …

Page 9: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 9

Running the tests

Page 10: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 10

Today

• IDE/Ant/Maven hosted test runners• Continuous Integration servers• JUnit is primary test platform• Bridges to other processes (Cactus, Selenium Server)

• Local system• Local network

System testing is tacked on to unit testing

Page 11: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 11

Tomorrow

• Applications & tests run on multiple different hosts• Hosts (real and virtual) are dynamically allocated• Host and networks configured as part of the test • Reports include output from all hosts and network• Result presentation scales up.• Data mining of multiple tests runs• Runs as a background task under the CI server.

Page 12: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 12

SmartFrog

Transforming how mainstream developers deploy applications

• HPLabs research• Java Based distributed deployment system• LGPL licensed• http://smartfrog.org/

Page 13: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 13

Configuration is Deployment

Page 14: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 14

SmartFrog for testing–set up application with different options–preconfigure the database–bring up Xen/VMware images for hosting–deploy the tests and collect the results–clean up

Tests are just something else to deploy

Page 15: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 15

Component model

Page 16: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 16

Test Suites

HttpUnitTests extends JUnitTestSuite {package "d1.webapp.test";

name "HttpUnitTests";server.url TBD;sfProcessHost "client";properties [["server.url",server.url],

];classes ["EventFeedTest","HappyTagTest","IndexTest"];

}

- SmartFrog daemon

Page 17: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 17

Test methodology

• Allocate & configure test systems• Deploy application across nodes• Deploy tests on other nodes• Collect and correlate results• Try to understand what went wrong

Page 18: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 18

Test scenarios

Test

Application

fully distributed application and tests

Write once, test everywhere-client side appsMultiple Nodes

client/server Traditional testingSingle Node

Multiple NodesSingle Node

Page 19: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 19

Demo: “Enterprise” Web Server

- SmartFrog daemon

Database VM

Test Database

MySQL

App Server VM

App Server

Web App

Client

HttpUnit

JUnit

Test Master

Test Listener

JUnit

CactusTest Runner

Page 20: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 20

Demo: Interop testing of SOAP Systems

- SmartFrog daemon

Page 21: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 21

How we test SmartFrog itself

- SmartFrog daemonOne ring of SmartFrog daemons deploys a new set

��������

class loading

Security

Page 22: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 22

Data Mining of Results

Please, solve this

Page 23: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 23

Ant's HTML report of JUnit is ubiquitous

Page 24: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 24

<testsuite errors="0" failures="0" hostname="Zermatt"name="api.Api_05_system_create_destroy_Test" tests="1" time="2.623"timestamp="2006-06-29T11:09:48"><properties><property name="epr.hp"value="http://deployapi.iseran.com/alpine/portal/" />

</properties><testcase classname="api.Api_05_system_create_destroy_Test"name="testCreateCreatedTimeDestroySystem" time=" 2.623" /><system-out><![CDATA[

0 DEBUG org.smartfrog.projects.alpine.transport.http.HttpTransmitter -Posting to http://deployapi.iseran.com:8080/alpine/portal/

141 DEBUG httpclient.wire.header - >> "POST /alpine/portal/ HTTP/1.1[\r][\n]"

151 DEBUG httpclient.wire.header - >> "SOAPAction: [\r][\n]"151 DEBUG httpclient.wire.header - >> "User-Agent: Alpine [\r][\n]"]]></system-out></testsuite>

But the underlying XML is limitedsummary at the top

single-host log loses information

Minimal context

Page 25: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 25

We need a unified format of test results• real-time and post-run display/analysis• extensible metadata (dublin core, context)• integrate logs from multiple machines• streamable to disk/over the network• cross-language stack traces

A new XML format, or XHTML?

Page 26: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 26

SmartFrog XHTML output

~live outputlog capture

Page 27: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 27

Future GUI? GridUnit

http://gridunit.sourceforge.net/

• Swing GUI for testing on OurGrid

• Aggregate view of results• “partial” success

Page 28: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 28

Call to Action• Focus on system tests• Automate deployment• Automate system testing

• Work on an XML/XHTML test result format• Test framework authors: help us run your frameworks.

If you have big deploy/test problems, come join the SmartFrog community

Page 29: Distributed Testing with SmartFrog - HP Labs · About Us Julio Guijarro Research scientist at HP Laboratories on Grid-Scale Deployment Leads the SmartFrog open source effort Steve

Page 29

Any W3C/OASIS/WSI/GGF/IETF standard without tests doesn’t exist

Topic for discussion