march: testing challenges in service oriented architectures

23
TriTAUG 3/13/2013 Testing Challenges in Service Oriented Architectures

Upload: tritaug

Post on 09-Jul-2015

388 views

Category:

Technology


3 download

DESCRIPTION

Service oriented architectures can help to break a large, unwieldy application into a federation of smaller, more manageable, and more reusable services. Unfortunately, these architectures can dramatically increase the complexity of testing, and can turn the process of release qualification into a chaotic mess. In this inaugural TriTAUG lecture, we'll discuss some of the challenges inherent in testing SOA based systems, and provide some practical suggestions on how you can get your release testing and qualification process back under control. About the speaker: Tom DeWire is a Software Architect for Bronto Software in Durham, NC. Prior to his current role, he was a 14 year veteran of the video game industry, having worked at Electronic Arts during most of his tenure. During that time, he focused on the increasingly complex and high-scale services required to support the ever growing demand for more, and more engaging online gaming experiences. He attended the University of Virginia, where he received a B.A. in Environmental Science. When not thinking about software, he can usually be found on his porch, plunking away on his banjo.

TRANSCRIPT

Page 1: March: Testing Challenges in Service Oriented Architectures

TriTAUG 3/13/2013

Testing Challenges in Service Oriented Architectures

Page 2: March: Testing Challenges in Service Oriented Architectures

What is SOA?Reasonable people can disagree...

Page 3: March: Testing Challenges in Service Oriented Architectures

What is SOA?

Is it this?

Page 4: March: Testing Challenges in Service Oriented Architectures

What is SOA?

Or this?

Page 5: March: Testing Challenges in Service Oriented Architectures

What is SOA?

Or this?

Page 6: March: Testing Challenges in Service Oriented Architectures

What is SOA?

Maybe this?

Page 7: March: Testing Challenges in Service Oriented Architectures

What is SOA?

Page 8: March: Testing Challenges in Service Oriented Architectures

What is SOA?

Services are built with:● Abstraction ● Autonomy● Decoupling● Statelessness

Behaviors are built via:● Contract● Discovery● Composition● Reuse

The guiding principles.

Page 9: March: Testing Challenges in Service Oriented Architectures

What is SOA?SOA is a set of guiding principles that can help you decompose a complex, monolithic application into an application composed of discrete, distributed services.

SOA allows you to more easily scale your application to meet demand.

SOA allows you to more easily scale your engineering team to meet demand.

Page 10: March: Testing Challenges in Service Oriented Architectures

Why is testing SOA hard?Let's take a little stroll...

Page 11: March: Testing Challenges in Service Oriented Architectures

The "Good" Old Days

Page 12: March: Testing Challenges in Service Oriented Architectures

n-Tier the Dragon

Page 13: March: Testing Challenges in Service Oriented Architectures

Sanity Ousting Architecture?

Page 14: March: Testing Challenges in Service Oriented Architectures

Why is Testing SOA Hard?● So many services

○ ... most are headless○ ... most have independent lifecycles○ ... with so many interactions between them○ ... with so many failure domains

● So many teams○ ...some working on shared libraries○ ...some working on discrete services○ ...some composing new application behaviors

● So many moving parts○ ...more changes than you can possibly follow○ ...more builds than you can possibly verify

Page 15: March: Testing Challenges in Service Oriented Architectures
Page 16: March: Testing Challenges in Service Oriented Architectures

Layering Tests

● Unit Tests○ Tests the smallest behaviors exposed by source○ No external dependencies

● Integration Tests○ Tests the smallest behaviors exposed by a service○ Minimal external dependencies

● Acceptance Tests○ Tests the entire, fully composed application○ The kitchen sink -- every service, every resource

Page 17: March: Testing Challenges in Service Oriented Architectures

Layering Tests

● Unit Tests○ White Box○ Immediate feedback

● Integration Tests○ Grey Box○ Validating behavior against service specification

● Acceptance Tests○ Black Box○ Validating behavior of the complete application

Page 18: March: Testing Challenges in Service Oriented Architectures

Build a Funnel

...that pass unit tests

!

? ? ? ? ?

...that pass integration tests

...that pass acceptance tests

Page 19: March: Testing Challenges in Service Oriented Architectures

Let Computers Do The Heavy Lifting

M'lord...Your pre-verified build is ready.

Page 20: March: Testing Challenges in Service Oriented Architectures
Page 21: March: Testing Challenges in Service Oriented Architectures

Change Assumptions &Stop Swimming Upstream

Page 22: March: Testing Challenges in Service Oriented Architectures
Page 23: March: Testing Challenges in Service Oriented Architectures

TriTAUG 3/13/2013

Testing Challenges in Service Oriented Architectures