Test Encapsulation: Automated Tests that Decide for Themselves
Test Encapsulation has its basis in a research paper I wrote about a decade back for Testing Experience magazine and later presented in a some conferences. At the heart of test encapsulation is introspection - making 'test' the most powerful component of the test automation engine, providing all meta data to it so that it can make run time decisions for itself. It's a complete rethinking of the way test automation engines are architected internally.
The ideas were at a very nascent stage at that time. And well, they were just ideas and I was told how impossible they were. So, I ended up experimenting with the concept for almost a decade, creating 20+ automation engines, big and small, touching the philosophies to various levels. They had varying amount of success w.r.t. where I wanted them to be.
At last, I have got it right to a fair extent. This presentation would be more than theoretical exploration of possibilities. I would demonstrate a test engine that achieves many of the ideas that I discuss. The engine would be free and open-sourced so that attendees can freely experiment further.
Outline/Structure of the Demonstration
The session would have 3 primary phases to it:
- The story of an automated test - The first part of the talk happens (literally) from the perspective of a automated tests, raising important questions and establishing the need for test encapsulation.
- A brief interlude to introduce Arjuna - a free, open source Python based advanced test automation engine.
- How Arjuna enables writing of intelligent tests.
- Run time introspecting automated tests
- Subscription Model for Automated Regression Testing
- Meta-programming for automated tests
- A framework which implements Test Encapsulation
Developers, Testers, Managers who have been involved with test automation for 2+ years.
Prerequisites for Attendees
2+ years of hands-on exposure to test automation of any kind.