Software Products are riddled with bugs, this is a problem which has worked on from early 1960’s when software development was an ad-hoc activity to the current engineering or agile activity. A systematic approach to the Development, Operation and Maintainace of software systems can help in two things, one is to improve the quality of the software systems and second is to improve the productivity of software development. There are a set of quality attributes that a software system can be designed for and measured against. These attributes can be chosen for a particular software system based on the business requirement and end user requirements.
Quality Attributes of a Software System
– Resource availability
3. User friendliness
These attributes can be grouped into ones that are important from the customer point of view or from the software developers point of view. They can also be selected depending on the type of use of the software, be it a safety critical system where reliability is important or a SaaS application where user friendliness is important.
Now looking at the distribution of effort in building a software system, we can see the following typical estimates.
when we look at the distribution of effort in development and testing over the past few decades, we see the following
Also if we look at the cost of development versus maintainance in different stages of software development, we can see
From this we can see that Software Testing is the most expensive activity during software development and maintainance. The goal of testing is to have confidence in the software system, this confidence can be gained by testing the software system using testing methods or hiring independent testing team. Adequate amount of testing needs to be carried out to meet the quality attributes of the software system. Also the ratio of the risk to the customer of using an untested software to cost of testing the software, till the expected reliability is reached needs to be understood while building the software. So the next question is, how much of testing is needed? will be covered in the next 99tests post.