Skip to the main content.

Curiosity Modeller

Design Complex Systems, Create Visual Models, Collaborate on Requirements, Eradicate Bugs and Deliver Quality! 

Product Overview Solutions
Success Stories Integrations
Book a Demo Release Notes
Free Trial Brochure
Pricing  

Enterprise Test Data

Stream Complete and Compliant Test Data On-Demand, Removing Bottlenecks and Boosting Coverage!

Explore Curiosity's Solutions

Our innovative solutions help you deliver quality software earlier, and at less cost!

robot-excited copy-1              AI Accelerated Quality              Scalable AI accelerated test creation for improved quality and faster software delivery.

palette copy-1                      Test Case Design                Generate the smallest set of test cases needed to test complex systems.

database-arrow-right copy-3          Data Subsetting & Cloning      Extract the smallest data sets needed for referential integrity and coverage.

cloud-cog copy                  API Test Automation              Make complex API testing simple, using a visual approach to generate rigorous API tests.

plus-box-multiple copy-1         Synthetic Data Generation             Generate complete and compliant synthetic data on-demand for every scenario.

file-find copy-1                                     Data Allocation                  Automatically find and make data for every possible test, testing continuously and in parallel.

sitemap copy-1                Requirements Modelling          Model complex systems and requirements as complete flowcharts in-sprint.

lock copy-1                                 Data Masking                            Identify and mask sensitive information across databases and files.

database-sync copy-2                   Legacy TDM Replacement        Move to a modern test data solution with cutting-edge capabilities.

Explore Curiosity's Resources

See how we empower customer success, watch our latest webinars, read our newest eBooks and more.

video-vintage copy                                      Webinars                                Register for upcoming events, and watch our latest on-demand webinars.

radio copy                                   Podcasts                                  Listen to the latest episode of the Why Didn't You Test That? Podcast and more.

notebook copy                                           eBooks                                Download our latest research papers and solutions briefs.

calendar copy                                       Events                                          Join the Curiosity team in person or virtually at our upcoming events and conferences.

book-open-page-variant copy                                          Blog                                        Discover software quality trends and thought leadership brought to you by the Curiosity team.

face-agent copy                               Help & Support                            Find a solution, request expert support and contact Curiosity. 

bookmark-check copy                            Success Stories                            Learn how our customers found success with Curiosity's Modeller and Enterprise Test Data.

file-document-multiple (1) copy                                 Documentation                            Get started with the Curiosity Platform, discover our learning portal and find solutions. 

connection copy                                  Integrations                              Explore Modeller's wide range of connections and integrations.

Better Software, Faster Delivery!

Curiosity are your partners for designing and building complex systems in short sprints!

account-supervisor copy                            Meet Our Team                          Meet our team of world leading experts in software quality and test data.

calendar-month copy                                         Our History                                Explore Curiosity's long history of creating market-defining solutions and success.

check-decagram copy                                       Our Mission                                Discover how we aim to revolutionize the quality and speed of software delivery.

handshake copy                            Our Partners                            Learn about our partners and how we can help you solve your software delivery challenges.

account-tie-woman copy                                        Careers                                    Join our growing team of industry veterans, experts, innovators and specialists. 

typewriter copy                             Press Releases                          Read the latest Curiosity news and company updates.

bookmark-check copy                            Success Stories                          Learn how our customers found success with Curiosity's Modeller and Enterprise Test Data.

book-open-page-variant copy                                                  Blog                                                Discover software quality trends and thought leadership brought to you by the Curiosity team.

phone-classic copy                                      Contact Us                                           Get in touch with a Curiosity expert or leave us a message.

4 min read

Introducing “Model-Driven Development”

Introducing “Model-Driven Development”

Behaviour-Driven Development (BDD) emerged in 2006 [1], partly in response to perennial test and development painpoints lingering in spite of “agile” methodologies. A ubiquitous language shared across design, development, and QA would avoid the frustration of miscommunication, and the defects it perpetuates. 

Introducing “Model-Driven Development”: the agility of BDD, the rigour of Model-Based Testing

Test and development would instead be a steady journey of mastering the system being built, rather than a wild goose chase of finding out too late that you’ve misunderstood the desired system. Engineers meanwhile would know exactly what to prioritise when updating fast-changing systems within short iterations. 

BDD Today: New approach, or same old barriers? 

BDD has since gown widespread in the QA community, and is now a commonplace concept at large banks and financial organisations, for instance.  

However, “doing BDD” for these teams often means using a specification language like Gherkin to formulate scenarios, and a test automation framework like Cucumber to execute them as tests. Many of the procedural and principled challenges that BDD sought to uproot remain, with automation frameworks and specification languages serving as point solutions to individual problems: Test and Development Bottlenecks

Common test and development bottlenecks persist in “mini-Waterfalls”.

Miscommunications, defects, and bottlenecks persist, stemming from poorly specified requirements and a siloed approach. The bugs are further still detected late, by overly manual QA that starts late. Considered from the perspective of people, process, and technology, numerous pre-’BDD’ problems persist:

1.     A siloed approach.

Organisations often still design, code, and test systems – in that order. Miscommunications and delays creep in at each stage, as teams wait for the information they need to fulfil their siloed roles to be passed on.

The difference is that teams try to squeeze all this into six week “mini-Waterfalls”, rather than 18 month projects. QA is pushed ever-later, rolling constantly over to the next iteration and leaving the bulk of a system exposed to defects.  

2.     Poor designs leave developers guessing.

Fragmentary user stories have replaced the monolithic requirements documents that stood at the start of Waterfall projects. These disparate scenarios are individually incomplete, but are not connected formally into a complete system either.

The natural language used to formulate Behaviour-Driven scenarios is furthermore good for designing UIs and front-end systems, but poorly suited for machine logic and APIs. It also tends to be ambiguous and logically imprecise, so that the majority of defects that can be traced back to requirements remain. 

3.     Low test coverage and over-testing.

Automated tests derived from Behaviour-Driven scenarios are naturally incomplete, focusing on the “happy path” scenarios that are specified as desired user behaviour.

QA therefore leaves much of the system’s logic exposed to defects, and particularly the negative scenarios that are most likely to cause more severe defects. At the same time, however, certain logic will be repetitiously over-tested, by virtue of the linear nature of Behaviour-Driven Scenarios that are not consolidated during testing. 

4.     Data and environments undermine rigour and agility.

QA teams often still rely on centralised, overworked Ops teams to copy complex production data and spin up environments. Further time is therefore wasted as testers wait for data and environments to be provisioned, or wait for limited resources to be used by another team.

The large copies of masked production data are furthermore low-variety, containing only the expected scenarios that have occurred in the past. They do not contain the outliers and unexpected results needed for rigorous testing, and by definition cannot test functionality not yet released to production.  

5.     Technical debt and manual maintenance.

The disparate, unconnected scenarios further lack formal dependency mapping. This means that the upstream and downstream impact of new stories or change requests must be identified manually across increasingly complex systems.

Low-priority changes in turn throw up system-wide defects, while test cases, data, and automated tests must all be updated manually to reflect the latest changes. This manual maintenance is slow and repetitious, and can quickly swallow up whole iterations at the expense of testing new or critical functionality.

Model-Driven Development: A Return to the Principles of BDD. 

This siloed, over-manually approach stands in contrast to the original principles of BDD. It undermines parallelism and the ability to move desired user behavior quickly from design to deployment. 

“Model-Driven Development” offers an alternative approach that retains BDD’s flexibility to fast-changing user needs, while introducing a greater degree of rigour and automation. As the below video demonstrates, QA teams can move automatically from existing artefacts, to the complete models needed for automated and optimised testing: 

 

 

This approach builds on existing tests and Behaviour-Driven scenarios to combine the principles of BDD with the rigour of Model-Based Testing. It enables collaborative business and engineering teams to: 

1.     “Shift left” to design better systems.

It is possible to build complete, formal models within short iterations. Behaviour-Driven requirements and existing tests can be converted automatically to flowcharts, for instance, using Gherkin importers and a UI Recorder. 

Flowcharts are already familiar to BAs, many of whom already use Business Process Models. The models therefore retain a “ubiquitous language”, while developers and QA can work in parallel from the same system design.  

This facilitates a “shift left” approach where testers help to build better quality, testable systems, removing potentially costly defects during the design phase. The flowcharts have the local precision needed to eradicate design ambiguities, while incompleteness is more easily spotted at the model-level.  

2.     “Shift right” and derive a complete set of tests directly from the design.

The Model-Driven Approach is also Test-Driven, with automated tests and data derivable directly from the flowcharts. QA then becomes a largely automated comparison of the designs to the code, working in parallel with requirements gatherers.  

This not only eradicates the bottlenecks associated with manual test case design, but drives up the quality of testing. Automated coverage techniques generate the smallest set of test cases needed to exhaustively test the requirements model, while Risk-Based approaches can target new or critical functionality based on time and test history.

3.     Implement fast-changing user needs within short iterations.

The automated tests and test data have been derived directly from the system designs, and are therefore traceable directly to them. This enables automated test maintenance: as the central designs change, the rigorous automated tests update automatically. QA can therefore focus on developing test assets for newly introduced functionality, testing fast-changing systems rigorously. 

Full dependency mapping meanwhile means that when the designs are updated, developers can know exactly what across complex systems has been affected, implementing the change reliably and without potentially catastrophic unforeseen consequences. 

Model-Based Testing can facilitate a truly Behaviour-Driven approach, capable of delivering rigorously tested software within short iterations. It retains all the agility of Behaviour-Driven development, while introducing the rigour of Model-Based Testing to short iterations:Test Automation for BDD

Model-Driven Development: An example iteration combining Behaviour-Driven
Development and Model-Based Testing.

If you would like to find out more or arrange a demo, please feel free to get in touch on info@curiosity.software  

Book a Demo

[1] Dan North & Associates (2006), Introducing BDD.

[Image: Pixabay]

 

Containers for Continuous Testing

Containers for Continuous Testing

Application development and testing has been revolutionised in the past several years with artifact and package repositories, enabling delivery of...

Read More
Removing Barriers to In-Sprint Testing and Development - Infographic

Removing Barriers to In-Sprint Testing and Development - Infographic

Test automation must be lightweight, re-usable and easy to apply, in order to help organisations, ease its implementation enterprise wide. Curiosity...

Read More
Chat to Your Requirements: Our Journey Applying Generative AI

Chat to Your Requirements: Our Journey Applying Generative AI

In the digital age, large enterprises are plagued by a lack of understanding of their legacy systems and processes. Knowledge becomes isolated in...

Read More
5 Reasons to Model During QA, Part 5/5

5 Reasons to Model During QA, Part 5/5

Welcome to the final instalment of 5 Reasons to Model During QA! If you have missed any of the previous four articles, jump back in to find out how...

Read More
BDD is much more than Gherkin or Cucumber

BDD is much more than Gherkin or Cucumber

Behaviour Driven Development is, at its heart, about communication. It’s not about using Gherkin to formulate specifications, or Cucumber to run...

Read More
“Code-Less” Test Automation for “Citizen Testers”

“Code-Less” Test Automation for “Citizen Testers”

Low-code development has created a population of “Citizen Developers”, enabling organizations to deliver IT solutions at incredible speeds. However, ...

Read More
10 Ways to Optimise and Accelerate UFT Test Automation (Part 1)

10 Ways to Optimise and Accelerate UFT Test Automation (Part 1)

Its ongoing development, including the recently introduced of the ‘UFT Family’, ensure that OpenText (Micro Focus) UFT remains one of the...

Read More
Agile Test Automation Frameworks Using Page Object Models

Agile Test Automation Frameworks Using Page Object Models

Software development has been revolutionized by new methodologies and practices. The software industry has moved from sequential waterfall...

Read More
Automated Test Data is Key to CI/CD and DevOps

Automated Test Data is Key to CI/CD and DevOps

Software delivery teams across the industry have embraced new(ish) approaches to development, from the different flavours of agile, to DevOps,...

Read More