by David Pyle – September 22, 2017
Do you hate paying for testing?
I know that some of the clients I’ve served in my career have felt that way. Or, at least, they certainly haven’t considered testing to be a priority. Most won’t come right out and say that, but some will. Like the client who recently told me: “We haven’t had problems testing in production, so we don’t see the need for a change.”
Testing is similar to an insurance policy for your business reputation. By implementing a solid testing process for business rules and the code to implement them, the risk of delivering sub-par products to your customers is greatly reduced. Testing, like insurance, maybe money you spend because you feel you must, and you may feel that it is just money down the drain. But what if I told you that money spent on testing is an investment?
Because testing, in fact, is an investment. And just like any good investment, testing returns more than the initial value invested. So the resources you invest in QA are anything but wasted; they return dividends.
What are those dividends? Here are three of the most important…
- Testing Creates Favorable Customer Impressions
Defects of any kind that make it to the customer will obviously diminish the favor with which they regard you. And defects that negatively impact your customer’s productivity will severely impact their impression of you.
Faster and faster development schedules utilizing methodologies such as Agile, Dev-Ops and Continuous Integration increases the risk that defects will not be caught and will impact your customer. But that doesn’t have to be the case. The implementation of well thought out, structured testing plans can give you the confidence that full-speed development sprints do not sacrifice quality and will not ultimately exact a penalty in diminished customer favor.
No matter the nature of your product, it’s likely that you have lots of competition. So your customers have many choices. Testing can save you from presenting a defect-diminished product to your customers — one that essentially forces them to exercise their power of choice.
- Testing Lowers Project Costs (Save Money and Time)
Like any other form of investment, testing requires an initial expenditure of resources. But unlike many forms of investment, testing can begin to pay dividends very quickly — almost immediately. That is possible for one very simple reason: The earlier defects are identified and fixed, the lower the cost & time impact to your project.
Testing can lower project costs even before a single line of code is written. By implementing a testing process that includes performing upfront analysis of project requirements (as it should), you can find conflicts or shortcomings before coding even begins. And that can provide massive savings of both time and money, especially when compared to finding those requirement problems during user testing or, even worse, in production — as so often happens.
Spending more on testing upfront tends to pay off in another way: reduced development time. Testing resources are less expensive than development resources. So increased spending on testing can be more than offset by reduced spending in development.
Involving testing from the very beginning of the project can ensure that business analysts, developers, and testers are performing the tasks most aligned to their skillsets, and in the most efficient manner. Validation of the business requirements ensures a complete, comprehensive and clear set of requirements are sent to development. Assisting development with test cases that can be used for unit testing will catch many issues before expending the build process into the test environment and the execution of formal tests. Test involvement in the full lifecycle keeps the project schedule running smoothly, reducing downtime and missed deadlines.
Ultimately, testing can reduce the total time required to get your product into production. And that can provide a massive return on your development and testing investment.
- Testing Creates Confidence in the Product
This benefit manifests in team morale (fewer ulcers!) and on the balance sheet.
Performed properly, and integrated into the project from the very beginning, testing can provide a sense of confidence in the quality of the finished product. Formulating and executing a good testing plan can:
- Reveal product issues that you never thought to look for
- Identify gaps in functionality
- Eliminate the waste of duplicate testing
- Permit the confident promotion of the product into production
Quite simply, if you know that your testing process is thorough and well-planned, then you’ll know that the product design will conform to user requirements, and that the final product will work as designed. You’ll have confidence that your project team has done its job well.
And without that confidence? Typically, one (or both) of two things will happen:
- The project release will be accompanied by crossed fingers, silent prayers, and lots of frayed nerves
- The product will hit production and fail to impress (see benefit #1 above) — and quickly end up back on developers’ desktops
Testing can transform wishes (I hope, I hope, I hope everything’s OK) to confidence (I know we’re good). The beneficial impact will certainly show up on the balance sheet. But the impact to the team’s morale and psyche — particularly management’s? Priceless.
The confidence born of good testing may not become immediately available to an organization that’s in the beginning stages of implementing best testing practices. But with time and iteration, it will come.
How to Get These Benefits? Testing Best Practices
How do you realize a return from your testing investment? From implementing testing best practices.
A discussion of testing best practices is worthy of a standalone article (or many of them). But let’s at least touch upon the best practices your organization should be implementing to get the most from your testing investment:
- Deploy methodologies that support a consistent and repeatable process
- Testing should be built into the project schedule, and pinpointed for maximum effectiveness
- Implement formal processes and procedures, including:
- Test strategy, Test plan, Traceability matrix, Test cases, Defect process, Go/no-go decision process
- Plan and allocate resources
- People (Ensure that high-priced resources are not working on low-level tasks)
- Design and set-up environments
- Testing environments should match production, not development
- Should support ability to reset environment after test failures
- Select best tools for:
- Test tracking, Defect tracking, Data maintenance
- Manage test data to best duplicate production environment
- Just dumping real production data into the test DB is not the best plan
- Maintain metrics to assure that you’re staying on track, and continuously analyze and evaluate
- Reports / Dashboards
As the above list reflects, testing best practices is about much more than just simply testing code.
Your Path Forward
If your organization’s testing process (or lack thereof) is not providing all the benefits listed above, how do you get there? How do you reach a point where the resources you spend on testing return more than the net value of the resources expended?
Start with an evaluation of where you are, compared with where you want to be. Decide which of your current testing practices are good, and which need improvement. Review the testing methodologies, processes, and procedures you use, and evaluate against current industry best practices.
Next, develop a roadmap that will get you from where you are, to where you want to be. Determine the culture and project changes that will be required to follow that roadmap, and begin to implement those changes. Evaluate your progress frequently, and tweak your roadmap as needed to stay on course to your destination: the reliable and repeatable execution of best testing practices.
It’s not necessarily an easy trip to make. But help is available. And once you’ve begun to enjoy the benefits provided by implementing testing best practices, you’ll agree…the trip was so worthwhile.
To Learn more:
Read more about our QA & Testing services
- Advanced Testing in the Age of AI and Predictive Analytics: Are You Ready?
- Software Quality should be a Shared Responsibility
- Testing is much more than Testing Code
- Future-Proof Software Testing for Agile, DevOps and Beyond
- Use Test Points to Eliminate Guesswork in Determining Test Coverage
- A Holistic Approach to Shift-Left Quality Assurance Software Testing
Subscribe to receive more blogs like this from RCG