Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Insanity Is Manually Testing the Same Thing and Seeing Different Results

DZone's Guide to

Insanity Is Manually Testing the Same Thing and Seeing Different Results

Matthew Casperson says that you should test as though your mental health depends on it, because it probably will one day.

· DevOps Zone
Free Resource

Download the blueprint that can take a company of any maturity level all the way up to enterprise-scale continuous delivery using a combination of Automic Release Automation, Automic’s 20+ years of business automation experience, and the proven tools and practices the company is already leveraging.

You’ve been in the crunch for a couple of weeks now. Features and fixes are being merged left and right as the final stakeholder presentation sneaks up on your team at an alarming rate. It is causing you to literally lose sleep, and every morning you wake having thought about five new ways everything could go horribly wrong. The despondent expressions of those around you when you arrive at the office would normally lend itself to a “you look like I feel” quip, if only you had the energy to quip these days.

"Well, that major project was well-planned and adequately resourced, and had reasonable deadlines," said no development team ever.

The final days of these projects share the same characteristics:

  • Your team has the best understanding of the requirements they will ever have.
  • Your team has the best understanding of the implementation in the underlying code that they will ever have.
  • Your team has the least amount of time they have ever had.

What this means is bug fixes and tweaks can be coded and integrated in a fairly short amount of time as people instantly know where and how the change needs to be made. The downside to this rapid-fire coding is that there is now a huge surface area in which bugs can nest, and there is such little time to manually click through your application to try and find them.

The crunch is where automated testing will make or break your people and the project they are working on because automated tests provide the kind of sanity checking that no sane person can provide.

This is something that I have personally learned the hard way. It is often difficult to appreciate why maintaining a comprehensive suite of tests is important during the early stages of development. They are just one more thing to maintain as requirements change, no one outside of the development team cares about your test coverage, and there is so little to the app under development anyway that manual testing is often faster.

As a project is starting to wrap up, though, this dynamic shifts. You are now faced with a code base that has dozens of possible journeys, hundreds of obscure business rules and requirements, and edge cases everywhere. Break or violate just one of them, and you could potentially introduce a serious bug; but how do you know?

If you have maintained a comprehensive test suite, you’ll know because when you run the tests, they come back green.

Without test suites, the only tool you have is an eyeball check of your app. Over the thousands of input combinations that your app accepts. That kind of testing is enough to drive anyone mad.

Test like your mental health depends on it, because it probably will one day.

Download the ‘Practical Blueprint to Continuous Delivery’ to learn how Automic Release Automation can help you begin or continue your company’s digital transformation.

Topics:
devops ,software testing ,manual testing ,automated testing

Published at DZone with permission of Matthew Casperson, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}