I just attended a webinar for Tricentis and their Tosca tool which looks promising.
How can this be applied to the real world? Would this tool replace manual testing?
What does Model Based testing really mean?
Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. It only takes a minute to sign up.Sign up to join this community
The idea is that you use a simple high level to model the interactions with automated tests.
You can then use those automated tests against a variety of different devices and platforms.
The advantage is that you don't need extensive programming skills or need to change to code for every client device.
The downside is that you are limited to the functionality provided by the product, tied in to its bugs and limited to the devices it provides and maintains adapters for. Also you're still going to write 'steps' and as you test cases expand, discipline for using techniques like DRY, Happy-Sad-Optional, Given, When, Then and Page Objects will increasingly require programming skills to organize effectively.
I'm unfamiliar with Tosca Tool specifically...but model based testing is designed to mimic the Arch Design and Detailed Code Design modeling structure with testing. Under the hood you could see the unit testing lining up with this, but model based testing try's to take it a step further and get the functional and automation testing in line with the models. This approach does sync up the application as a whole if all the pieces are done right and targets specific code layout instead of just the GUI and user story layout.
There is no replacement for manual testing as the actual test engineer is needed to bring the human perspective to the application usage. There can be more confidence in the code coverage with automation and functional tests with the overall application due to the model traceability, but that doesn't replace the analysis of the tester while executing tests. You can have a perfectly designed and built system that functions to spec and still sucks for real people using it because of usability issues (i.e. coloring, control layout, eye focusing, etc...).
Modeling works great on some projects and is overkill or doesn't really match other projects. Also as with any automation framework tool, it should help generate some things to prevent excessive user effort, but never effort free.