Model driven testing is the process of generating test strategy, test cases and test data from business models. Traditionally testers do these steps done manually, often by a separate testing team.
What is the problem?
HIGH COST: Testing is up to 50% of a systems development cost.
100% CORRECTNESS: IT solutions must be 100% right – no one can afford errors and certainly not the reputational risk of customers find something wrong.
HIGH RISK: The end users don’t trust IT departments. So the end-user departments invest over heavy in testing.
HIGH COMPLEXITY: IT environments are large and complex, so getting the testing processes working is expensive.
TAKES TOO LONG: Testing can be 30% of projects elapsed time. Testing is largely manual so it all takes too long. Most shops don’t start planning testing till late in the life-cycle, adding it to the critical path.
UNCERTAIN: Since you don’t know what you will find in testing the time is unknown (so you have to pad!)
What does model driven testing offer?
Cost and time reduction, while improving testing quality.
BETTER SPECS: In my experience, 50% of bugs are in the specs. Model driven functional, business rule and data specs are more accurate, complete and consistent.
MODEL DRIVEN TEST DESIGN: Our Cameo Model Driven Testing Plugin enables business analysts and testers to “mark up” the design documents with testing strategy and approach – far more efficient. Correctness and completeness can be proven. We can bring forward test planning as we write tests against the models, not the designs and or functional specs – so saving elapsed time.
CORRECT CODE: Generated code is correct so does not need unit and system testing in the traditional sense.
TEST AUTOMATION: From the data structures and business rules in the models we generate java and other code to test data based on what is in the specifications.
AUTO GENERATED TEST DATA: Getting test data that exercises all the test cases is very labour intensive. However, with a good model of the business domain, test data can be generated programmatically.
USE EXISTING LIBRARIES: There are a number of existing model driven testing frameworks. For example, banks that process payments have the choice of existing testing frameworks and test harnesses.
Would you like to see model driven testing in action?
I would be interested any sharing of ideas about model driven testing. It would be no effort to set up a short web-based meeting to walk through what I have working.