There is a myth that testing is too expensive but the reality is explained and discussed below.
– There is a saying, pay less of testing during software development or pay more for maintenance or correction later.
– Early testing saves both time and cost in many aspects however, reducing the cost without testing may result in the improper design of a software application rendering the product useless.
– Finding faults earlier in the software system can reap you a lot of benefits other than just saving your money.
– In a study it was found that a 70 percent of the total percentage of errors crept in to the systems during the initial development stages.
– The testers can find only 3.5 percent of these 70 percent faults.
– Another percentage of remaining errors and issues are discovered in the following stages of the SDLC (software development life cycle).
– In this study, it was also found that the rate of correcting the errors before full development of the software was high compared to what was after the development or in the later stages of the development.
– For example, the rate in initial development stages was 25x and that in the later stages was 16x.
– One can save a lot of money if the testing is done during the development of the software.
– The amount of money spent on the testing during the software development is comparatively less to what will have to be spent after the completion of the software system.
– Software testing is indeed an expensive part of the software development life cycle but it becomes more expensive when you have to do it after the software system has been fully developed.
– Generation of the test data for the satisfaction of the test requirements is the most expensive and labor intensive part of the software testing process.
– The techniques for the test data generation seek to find a program input that would satisfy a particular requirement of the test.
– The cost of the test data generation is usually very high.
– But even this cost can be cut down if the test data generation is automated.
– This also has an added benefit which is that the cost of the maintenance is also reduced.
– Most of the techniques for data generation have been automated.
– Today even random test data generators are available.
– These generators pick up random input for the test from some given distribution.
– There are other kinds of test data generators such as path or structure oriented test data generators.
– These generators make use of the control flow graph of the programs for selecting a particular path and according choosing a technique (for example, symbolic evaluation) for the generation of the test data for it.
– The input is selected for the execution of a selected goal which can be a statement and is independent of the path taken using the goal – oriented test data generators.
– Intelligent test data generators go for a sophisticated analyzation of the program code for generating new data.
– However, these techniques have certain weaknesses that have led to their decreasing use.
– The basic elements required for good software testing are critical thinking, analytical thinking, observation, logical reasoning, lateral thinking and brainstorming.
– Combining all these you can know what sort of testing your software needs and to what extent you need to testing.
– Also, the tester needs to know about the software as it is said incomplete knowledge is dangerous.
– All these points will make sure that you just do the right amount of testing.
– If you don’t know about the system you are testing you might leave some of its aspects untested.
– This is potentially dangerous for your organization’s reputation.
– Another point to be noted about software testing is that one of the characteristics of any software is that its quality is elusive which means you can never ever measure it.
– There are various factors affecting this quality such as usability, portability, reliability, test-ability, modifiable, understand-ability, efficiency and so on.
– Out of these test-ability affects the quality of testing.