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


Recommended