Concordion & ATDD (Lightning Talk)

Embed Size (px)

DESCRIPTION

A 5-minute presentation on Concordion and the concept of Acceptance Test Driven Development (ATDD).

Text of Concordion & ATDD (Lightning Talk)

Acceptance Test Driven Development with Concordion

Acceptance Test Driven Development with Concordion

By Mike McGarr

Goal - To provide the audience an understanding of the value of ATDD and how a simple tool like Concordion can help solve this problem.

1

Acceptance Test Driven Development?

ATDD is TDD applied at a coarse grain level.With ATDD your focus is on verifying behavior that is visible to customersThe emphasis is on creating executable specifications (user stories, use cases, etc.)Like TDD, you define your behavior first, write a failing test, and then write the code.

Quick explanation of ATDD- What is ATDD?- How does it differ from TDD?- How does it relate to BDD?

2

ATDD & TDD

http://www.methodsandtools.com/archive/archive.php?id=72p9

Quick explanation of ATDD- What is ATDD?- How does it differ from TDD?- How does it relate to BDD?

3

What we wanted

Java-based frameworkEasily integrated with Maven and HudsonProvided traceabilityPublish requirements/test results

What we were looking for in a framework?- Java based automated acceptance test framework- Integrated with build/continuous integration platform- Could provide traceability between requirements, tests and code changes- Could publish requirements/acceptance tests to customer automatically

4

Concordion

An open source Java framework built on JUnitHTML-based specifications

What is Concordion?- Java framework built on top of JUnit- Concordion is simply the glue between HTML specifications and JUnit based Acceptance tests

5

How Concordion Works

http://www.concordion.org/

How it works?- Show the picture of the requirements -> acceptance criteria -> tests -> driver -> SUT

6

How Concordion Works

Record Type Code00001 - Record Type Code

The following record type codes are valid. All other codes will cause a record to be rejected.

01 = Separation 02 = Transfer 03 = At Retirement 04 = Death in Service 05 = FERS Election 06 = Preliminary Disability Retirement 07 = Re-employed Annuitant
Acceptance Criteria Record Type Record Type Code Is Valid? ElectronicRetirementRecord 00 false Record Type Code00001 - Record Type Code

The following record type codes are valid. All other codes will cause a record to be rejected.

01 = Separation 02 = Transfer 03 = At Retirement 04 = Death in Service 05 = FERS Election 06 = Preliminary Disability Retirement 07 = Re-employed Annuitant
Acceptance Criteria Record Type Record Type Code Is Valid? ElectronicRetirementRecord 00 false

How it works?- Show the picture of the requirements -> acceptance criteria -> tests -> driver -> SUT

7

How Concordion Works

How it works?- Show the picture of the requirements -> acceptance criteria -> tests -> driver -> SUT

8

Advantages

No requirements documentRequirements, code, tests versioned togetherAllows for a variety of requirements stylesCustomers can easily see which requirements are passingCustomers dont need to learn a new requirements styleWorks great with Build Pipelines

Other advantages- Didn't tie us into a style of writing requirements (user stories, use cases, BDD, tabular...it all works)- Can also use existing application drivers, like Selenium

9

Things to Consider

Still need to write an Application DriverRequirements written in HTML

Negatives- Still have to write a fair amount of code for the application driver- BA's had to write HTML

10

Concordion Alternatives

Tabular Style RequirementsFitFitNesse

Behaviour Driven DevelopmenteasybJBehave

Further Reading

Concordion, http://www.concordion.org Acceptance TDD Explained, http://bit.ly/9eRyXq BooksTest Driven: Practical TDD and Acceptance TDD for Java Developers, by Lasse Koskela, http://www.manning.com/koskela

Growing Object Oriented Code, Guided by Tests, by Steve Freeman and Nat Pryce, http://www.amazon.com/Growing-Object-Oriented-Software-Guided-Tests/dp/0321503627

About Me

Mike McGarrExcella Consulting Lead for Excellas Java Center of ExcellenceConsulting for Federal and Commercial clientsInterested in Agile Software Developmentmike.mcgarr@excella.com@jmichaelmcgarrhttp://earlyandoften.wordpress.com