What’s common to Bill Gates, Bjarne Stroustrup, Linus Torvalds, and James Gosling? You know who they are; they are all famous software engineers known for writing code. But how many famous software test engineers do you know? Probably none. A comparison of the results of a Google search for famous software developers vs. famous software testers will show that most people don’t know either. Why is this? Because testers don’t create anything, right? Wrong. Testing is as much a part of the creative process as is development. It’s even becoming a “hot” topic, even a strategy.
After all, new software product development is not just the stage of research and development, but the entire process from idea generation to product realization. Testing is an enormous part of that effort. It demands creative ingenuity. Many top companies now refer to “testing” as part of the innovation process; Google has a testing blog, which argues that “testing” is a more preferable term to “debugging.” Facebook also describes new features as being in a “testing” phase, which can soften any criticism that the social networking company receives for changing its website’s design.
Yet many organizations undervalue testing as a discipline. The ubiquitous Software Development Life Cycle (SDLC) is mistakenly viewed by some as made up of only two phases—a creative and a destructive phase, without regard to the testing phase. But testing should be just as important.
That’s because the current two-phase mindset lacks maturity. In fact, testing helps innovate by finding weaknesses in an existing system, because weaknesses always exist and can be improved.
By contrast, consider the level of creative thinking it requires to exhaustively and effectively test the simplest to the most complex software systems within a deadline. This is one of the most creative currents of the SDLC waterfall. Here, test automation holds the key, because it can lead to enormous savings in time, cost, and effort. Test engineers create clever scripts, automation tools, and test simulators to reduce manual effort and cull out hidden bugs. They must patiently execute day- and week-long test cases in hot pursuit of critical bugs that can wreak havoc in a system. And without automation, this process can indeed become never-ending. In a way, the testing engineer acts like an industrial designer, who decides when a product is ready for market—when it is appealing, robust, and intuitive enough to use—as a deadline approaches.
Testing reveals gaps that can trigger requests to change an entire software system in the name of improvement. To become a successful testing engineer, you need a curious and fearless mind—one that is able to develop scenarios that question the status quo, break down an existing design, and rethink client requirements. Years of experience and expertise in testing across systems not only create testing experts, but also technology and network architecture experts, who can give direction to how things ought to work in the future, and not just provide a fix in the present.
But testing remains among the less glamorous functions of the software industry, mostly because its business impact is among the hardest to measure. In a rush to go to market, organizations often cut down on testing budgets and timelines because it comes at the end of the SDLC. Because of where it falls in the cycle, it is perceived as a low value-add. By its very nature, the value of testing is most felt when it is absent, but by then the damage is already done; and testing ends up becoming a necessary evil rather than a pro-active strategy. Imagine if more software companies tested for possible glitches before customers reported them—there would be fewer glitches. The most prudent software organizations do not wait for a tsunami of customer dissatisfaction to drive the discipline of robust testing and quality adherence.
It is common industry knowledge that the earlier bugs are discovered in the SDLC, the lower is the cost of correction. Despite their vast technical expertise and ability to foresee problems in system integration, many senior test engineers surprisingly are not included often enough in the requirement-gathering phase of the SDLC. They may not design the system but they can identify, at the very onset, the various issues that need to be addressed in the design. The absolute criticality of creative and effective testing is not stressed or exalted enough in the software industry. Absorbing it across the SDLC rather than leaving it for the end can reap huge benefits in time and cost for organizations.
Illustration by ankur patil / shutterstock