Envisioning a learning environment for agile test automation

Lisa Crispin just started an inspiring discussion on this lively test discussion group . She said “it would be nice to have… [an] app that everyone could install easily and use for demos, training and so on.”

I heartily agree! Here’s my vision for the ultimate test automation training environment:

Simulating the greater process of creating business examples and coding the system under test would be essential to reproducing the reality of highly collaborative agile teamwork. On the requirements side you have an incrementally increasing collection of stories hopefully represented by business tests using something that enables BDD or ATDD. On the development side, you have ongoing bug fixing and refactoring in addition to incrementally added code for each story.

Ideally, I  would have a live cross-functional agile team at the ready for the most realism, but that’s not always affordable.

Essential  would be a fully functional example-based test automation framework tied to a sample application ready to be placed into various states using a simple dashboard.

Learning System States

1. No application, just the BDD/ATDD framework.  The tests should be able to stand alone so that business tests can be written before code is ready. They should run and all fail.

2. An unfinished application where a tier is unfinished, perhaps mocked up. Mocks should be able to be easily turned on and off in lieu of real functionality. Some tests should run. Some will fail. Some will pass but will have false feedback due to the mock.

3. An application where all tiers work but there are seeded errors. Tests should fail around the errors, pass around working functionality.

4. Other versions of the application with gradually added functionality that calls for more test coverage. Tests should be able to be added. Refactoring of tests might be indicated.

Areas of completeness, presence of mocks, and errors would change based on what is being taught using a system dashboard for easier configuration.

Enabled Lessons:

1. writing business examples with specific data and rules
2. coding those examples to interact with the system under test
3. running tests against an incomplete system. Accommodating mocks.
4. managing a suite of tests. Choosing how to group, what to run when,
5. when and how to refactor
6. testing your tests
7. determining coverage
8. optimizing for brevity
9. managing versions, syncing your tests to the right version system under test
10. maintenance, how to keep up with changes

So, do you see the value in this type of learning environment?  Anything you would add or subtract? Does anyone know of anything like this? The discussion participants mentioned Sinatra, GWT, VQWiki, but none of those fit this bill.  Anyone want to start or adapt an open source project for this?

-Dennis

Following the Virtuous Spiral

Advertisement

There are no comments on this post.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.