We can probably agree that quality is no accident and that much carefully planned work is involved in building superior software systems, hence quality is not free. Software system quality is carefully planned by skilled experts, built into a system from the beginning, incorporated throughout the entire lifecycle, and executed and tracked throughout. Built-in system quality can be accomplished in an iterative, incremental, agile manner; and, where needed, adjusted and enhanced through automated processes.
More and more news stories, various recalls, etc., show us that some companies seem to have taken short-cuts when it comes to quality. Many are learning the hard way that not investing in a quality system up front can cost more later in repairs, unplanned modifications and ultimately customer dissatisfaction.
It is worthwhile to invest smartly in quality. For example, if you choose an automated testing solution solely based on price you generally get what you’ve paid for: only some of the automated testing tool features you really needed. If you choose an open source automated testing tool, yes, the tool is “free” but you might end up paying more in automated test development cost, because the open source solution needs to be enhanced by someone with advanced development skills to meet your requirements. It is worthwhile to invest time and money to find the automated testing solution that specifically fits your needs, without price being the only or main discriminator.
Another common mistake when it comes to quality is to assume that any non-skilled labor can implement these quality processes and conduct manual/automated testing. Our experience has shown that any type of testing—manual or automated—requires analytical skills, strategic thinking, and subject matter expertise, along with being able to choose and use the right automated testing solutions. Invest in the right people with the skills, expertise and experience to implement your quality checks and your automated testing processes. Incorporate automated testing tool training into your annual budget, so your testing staff can use their chosen testing solution most effectively.
Another way some try to cut corners is by treating quality as a low cost side-activity. Investing in careful planning and defining and implementing a quality strategy however will provide the biggest payoffs. Quality rarely can be built into a system at the end of the software development lifecycle. Many who have tried this approach have ended up with delayed releases and over-budget projects due to unexpected last minute bug fixes and an unplanned number of regression testing cycles; or worse, with software that was never shipped and scrapped altogether.
Numerous statistics show that testing can make up 50% or more of the development lifecycle. While the newest technology is being developed at a breakneck pace, many testing technologies are having a hard time keeping up. We recommend using automated testing technologies that are technology neutral and independent of the technology churn. These solutions will allow you to support the proposed quality processes, along with building quality in from the beginning, where it is most economical to fix any defects. Once each component has been verified and is working as expected, one can iteratively expand on the successes of the previous build, and re-run the automated regression tests as often as needed.
Insuring software quality through careful consideration, planning and implementing various practices including automated software testing requires an initial investment; but, if done correctly, it will pay off multi-fold in the end and your customers will thank you.