Software quality is critical to businesses

by CXOtoday News Desk    Aug 21, 2012

Software testingSoftware quality is critical to the enterprise because IT is no longer just about keeping the lights on and supporting the business, according to a new Ovum research. In its new report, the analyst firm looks at recent trends in the software quality space and emerging models in software testing and indicated that ensuring the quality of software is one of the most important activities in the software lifecycle.

Chandranshu Singh, Ovum Senior Analyst, Software, and author of the report, said, “Organisations need to ensure that all functional as well as non-functional requirements are not only tested adequately, but are also on schedule.”

He believes that while one may think that paying more attention to software quality at every stage of the software lifecycle will increase the cost of software development as well as the time to market, this is not the case. By considering software quality issues before the QA phase, businesses can not only reduce the cost of quality, but also shorten the time to market or time to deployment because the defects get caught earlier in the lifecycle.

Some common challenges associated with software testing stem from deficiencies in the test process and not the activity of testing itself. Estimating the test effort is one of the mains issues that plague test teams in many organisations. For this reason, agile development methodologies stress the inaccuracy of estimates and advise practitioners to take them only as guidelines to be revised as and when new information becomes available.

“This approach leads to realistic planning and ensures that the project stays on track because the team does not commit itself to its first estimate, which by definition would be furthest from the actual time/effort required,” he said.

The report noted that CIOs often face a disconnect between their software development and software quality processes. Agile methodologies have challenged the traditional view of testing and have led to new approaches that are being adopted by software quality teams regardless of the development methodology followed. Current models in software testing have emerged from agile environments.

Agile development methodologies have had a significant impact on software processes. Approaches such as test-driven development (TDD) and behaviour-driven development (BDD) are codified software testing best practices that emerged from agile environments. Singh commented thatTDD emphasises testing and tests are written to validate requirements before coding starts and code is then measured against tests. This approach is more efficient as it requires developers to think about quality early in the lifecycle.”

Another concept led by agile methodologies is BDD. BDD expresses requirements in a language understood by both business and IT, thereby extending the principles of TDD to the business. “BDD is a mainstream and common way to express business requirements. It is an effective method for capturing feature requests from business users. Typical requirement expression format in BDD is a triplet that includes user role, feature requested, and expected business benefit,” noted Singh.

“BDD is a relatively new feature in the complex landscape of software development, but it attempts to solve some problems that are fundamental to the nature of software development activities. BDD is an interesting space to watch, and organisations should move beyond expressing requirements in terms of software behaviour and embrace BDD frameworks to facilitate easier automation of their quality processes,” concluded Singh.