image

Software Testing

Software testing lessons from an unlikely source

First off, we hope that scrambling to find toilet paper and eggs is the most troubling thing you’re facing in these unprecedented times. And we’re in no way attempting to belittle the crisis (in fact, we’re actively trying to assist through initiatives like BOINC and free Tricentis Flood load testing for government and non-profit organizations). But we thought that those of us well enough to be working right now could use a little fun.

When purchasing the weekly array of groceries and supplies suddenly became something to strategize (in the United States, at least), it reminded us about…software testing, of course. Here are some of the top similarities and lessons that stood out to us. Please add your own thoughts in the comments. We’re not into hoarding, and there’s more than enough to share. 

Focus on what matters most to you

When time and resources are limited, focus is critical. Now’s certainly not the time to browse around casually and see what strikes you. Think about what matters most for you and your family in advance, assess what you’ve already got, and use that insight to prioritize what you hope to come home with. Maybe everyone else is sprinting over to the eggs, but you already have a few weeks’ worth in your refrigerator. Skip it. But if you need a specialized ingredient to accommodate dietary restrictions or to make a family-favorite comfort food, be sure to start there.

Testing parallel: Some requirements/use cases are much more important to your organization than other ones are. Test that critical functionality first, and test it well. If you think you don’t have time, consider this: approximately 67% of the test cases being built, maintained and executed are redundant and add no value to the testing effort. Adding more tests that don’t add value is as useful as binge-buying eggs when you already have a refrigerator full. Focus on what you truly need instead.

Don’t shy away from substitutes

No matter how well you plan and prepare, you probably won’t get everything you want. But sometimes that’s a good thing. It pushes you to consider alternatives, and you might end up finding something that you like even more, or that’s actually better for you. Don’t lament the lack of ground beef until you try out the veggie burgers you bought instead. And maybe that riced cauliflower you stumbled upon could become a long-term rice replacement.

Testing parallel: If you’re testing a distributed application and you can’t access one of the connected systems or services for testing, try a substitute: with service virtualization. For testing purposes, the simulated version of the real system/service should be able to satisfy all your needs—returning the expected responses for the application under test’s various requests. Plus, as with the food substitutes, you might get some unexpected advantages. For example, your virtual assets are probably easier to configure for various “corner case” conditions, faster and more readily accessible no matter where you’re working from, and more cost-efficient to hit for continuous testing or load testing purposes.

Consider reuse

A few trips searching all over town for paper towels, paper napkins, and tissues prompted many of us to shift to reusable alternatives. Why invest considerable resources in acquiring something that’s good for a single use only…especially when there’s a longer-lasting alternative? Dish towels, cloth napkins and handkerchiefs are much simpler to find and — along with a good supply of laundry detergent — can tide you over for months.

Testing parallel: While some testers are happy with their scripted tests, many others complain that scripts are just too ephemeral to justify the investment. Find yourself constantly wrestling with scripts or just abandoning certain scripts because they’re too much of a pain to fix? Then consider more resilient and reusable automation, such as model-based automation or AI-driven automation.

Think about the vendor’s reputation

Many of us turned to Google searches after our usual retailers ran out of what we wanted. And many of our searches were topped by ads from obscure retailers selling products that looked kind of like what we wanted. Yes, you could try them and take your chances. But what if they fail to meet your expectations? What’s the opportunity cost? Would you have the same level of support that you get from whatever retailer you’ve grown to know and trust?  

Testing parallel: There’s no shortage of test automation tools available, both open source, free, and commercial. However, it’s essential to choose wisely here because deadlines, careers, and C-level initiatives depend on it. Opting for a vendor or approach that’s not going to work for your team members’ skills, technology stack, and goals will cause a lot of pain in both the short term and the long term. Perform a thorough evaluation based on your particular needs, consider the vendor’s track record and responsiveness throughout the process, and also take a look at third-party assessments, such as Gartner, Forrester and IDC.

Accelerating development doesn’t help if there’s a bottleneck later in the pipeline

As toilet paper demand surged, manufacturers rushed to ramp up production to record high levels. However, it’s not necessarily showing up on your grocery store’s shelves at an increased pace. Why? According to many reports, it’s due to bottlenecks farther down in the supply chain. Shippers and truckers are largely maxed out, and truckers are sometimes delayed up to 15 hours waiting for cargo loading. Ultimately, these delays end up negating the benefits of accelerated production.

Testing parallel: Testing is cited as the top software delivery pipeline bottleneck in numerous studies (most recently, the GitLab Global Developer Report, where 49% of developers cite testing as the #1 source of delays). If your organization is delivering new features faster than you can test them, it’s time to get together and brainstorm solutions. Maybe you’re over-testing some features that aren’t critical to the business. Perhaps a closer look might reveal that team members are actually duplicating work or adding tests that don’t add value. Maybe collaborative practices such as BDD would reduce a lot of the guesswork and uncertainties that tend to delay testing.

A little kindness, collaboration and compassion goes a long way

Now more than ever, it’s critical to consider how we can help one another. Check in on your elderly or immunocompromised neighbors to see if you can get them anything at the store. And if you have any extra resources for random acts of remote kindness, your thoughtfulness will certainly be appreciated.

Testing parallel: This one’s a pretty direct translation. If you have adequate bandwidth right now, think about ways you can help your teammates — both professionally and personally. Here are a few good resources on both fronts: