20 July 2017

4 powerful software testing tool features for model-based testing

Model-based software testing can be the panacea to your late and poor quality application delivery woes. However, every panacea needs an enabler and the right (cloud) software testing tools are as important as any other factor if you want to use model-based software testing in your team.

In fact, through experience, blood, sweat and tears toil, we have been able to narrow down the exact characteristics of a good software testing tool that enables model-based testing, to just 4 distinct features!

But first...

What is model-based software testing?

I was going to give you Wikipedia's definition, but why not take the word of a company that has made a business out of giving us extremely complex, but well tested software:

Model-based testing is the automatic generation of software test procedures, using models of system requirements and behavior. Although this type of testing requires significantly more up-front effort in building the model, it offers substantial advantages over traditional software testing methods.

Microsoft Developer Network

We will get to advantages of model-based testing a few paragraphs later. At this point it is important to understand that model-based testing attempts utilises user journeys within an application to design and execute the tests, whereas traditional software testing concentrated on testing discreet features or modules, without caring much for how the user may choose to interact with the application.

Why do we need model-based testing?

Model-based software testing is not only our preferred methodology for designing, executing and maintaining fast and robust application tests, but it is also one that has been refined over time to try and solve the age-old conundrum between speed and quality in software testing. This was quantified by the World Quality Report 2016-17:

The "speed" component of our conundrum is two-sided. Speed is demanded by the end-user in the form of application responsiveness, and it is demanded by the project team, who want to release the application as quickly as possible. With reference to the latter, the velocity of the shift towards Agile, DevOps and Continuous Delivery development approaches has only made it harder for software testing teams:

Frankly I don't understand why the other 59% of respondents decided not to agree with the statement above. After all, common sense dictates that faster releases will also necessitate more tests. Despite this anomaly, this observation completes the speed versus quality conundrum that confronts all application development and delivery professionals:

Want to see how our test automation tools use analytics to cut testing time to hours or minutes?

What specific problem does model-based testing solve?

Through interactions with our customers, we have condensed speed versus quality conundrum down to 5 specific symptoms. You will see below that we have also added a 6 symptom, because it is what every software delivery professional worries about, but for some reason the issue of reputation damage from poor software roll-outs remains the big elephant in the room.

We have an internal philosophy of calling a spade a shovel. This helps us ensure that no elephants get into the room in the first place! So, the 6 problems that model-based testing can solve include:

Unclear & incomplete requirements: with fast-paced Agile environments and the race to quickly adapt to user demands, documentation and clarity always suffer. This usually results in poorly tested applications being released into production.

Poor test design: this excuse is the general refuge of testers who cannot keep pace with rapid development and deployment cycles. A new paradigm of communication and documentation is required to create better, more robust and flexible tests.

Lack of representative data: software testing without data is fast and easy, but it does not result in high quality applications. Data sets often get stored and lost in CSV files, compromising the quality and robustness of tests.

Limited or ineffective test automation: automation is not easy, but it is a must-have element of any modern testing program. When combined with the right software testing tools, infrastructure and great test design, it can produce magic.

Slow & locked infrastructure: the days of waiting for test servers or licenses to become free should be over. These constraints impede productivity, quality, innovation and, ultimately, the willingness to break boundaries.

Damaged reputations: most professionals try their hardest and apply their minds to advance their careers. Traditional methods of software testing have repeatedly resulting in failure, ruining reputations of otherwise solid pros. There are few professional worries in life worse than being unable to sleep for fear of when and how a release might fail in production.

The perceived problem with automation is the result of unsuitable test automation tools and ineffective approaches to test automation. It has resulted in testers having to suffer the poor performance of a myriad of test automation tools, cobbled together with proverbial duct tape:

How does the right software testing tool help with model-based software testing?

Qsome co-founder and my colleague, Ayush Trivedi, created this model to explain test automation. However, it's also apt for explaining model-based software testing. At its core, model-based testing requires the successful confluence of people, processes and technology.

The right technology, ie. software testing tools and test infrastructure, provides the oomph that model-based testing practitioners need to execute successfully. Because we use model-based software testing when providing software testing services for our customers, we have been able to build the Qsome Technology Platform to support us and all other practitioners of model-based software testing.

Specifically, the following 4 features of our software testing tools help to move and synchronise the wheels of an effective model-based testing program:

Dynamic user journey mapping: you can document, upload, edit and maintain user journeys right inside the testing tool, irrespective of how many times stakeholders change their minds.

Central knowledge repository: all test artefacts and results are stored in one place, which becomes the single source of truth. Nothing is misplaced by being stored on local drives and the people who need access can have it from any browser, on any device.

Testing tools & infrastructure on-demand: by using parallel testing technology on an infinitely scalable platform that is maintenance-free, your test team can focus on running high quality, robust tests, instead of worrying about how to keep the test server running.

Cross-browser & cross-device automation: your users use your application across all browsers and all devices. Your testing tool must be able to help you get ahead by allowing the advantage of automating tests across browsers and devices without extra effort.

Request a demo now if you want to see first hand how the Qsome Technology Platform could help you successfully implement model-based software testing. Right now, we're also offering a free strategy session to help set you on the right path to achieve your goals.