In this section we will discuss the necessity of Software Testing
Errors,Faults and Failures are occurred while developing the Software Project.
-->We can illustrate these points with the true story Mercury spacecraft.
The computer program ABOA spacecraft contained the following statement with the FORTRAN programming language.
.DO 100 I = 1.10
The programmer's intention was to execute a succeeding statements up to line 100 ten times then creating a loop where the integer variable I was using the loop counter, starting 1 and ending at 10.
Unfortunately, what this code actually does is writing variable I do to decimal value 1.1 and it does that once only. Therefore remaining code is executed once and not 10 times within the loop. As a result spacecraft went off course and mission was abort considerable cost!).
The correct syntax for what the programmer intended is:--
.DO 100 1=1,10
So a small mistake make a very big thing.
We would see how do Errors occur in Software Testing:-
Why do we make errors that cause faults in computer software leading to potential failure of our systems? Well,
firstly we are all prone to making simple human errors. This is an unavoidable fact of life. However,
this is compounded by the fact that we all operate under real world pressures such as tight deadlines, budget restrictions, conflicting priorities and so on
Cost of errors in Software Testing
The cost of an error can vary from nothing at all to large amounts of money and even loss of life. The aborted Mercury mission was obviously very costly but surely this is just an isolated example. Or is it? There are hundreds of stories about failures of computer systems that have been attributed to errors in the software. A few examples are shown below:
A nuclear reactor was shut down because a single line of code was coded as X = Y instead of X=ABS (Y) i.e. the absolute value of Y irrespective of whether Y was positive or negative.
Reliability in Software Testing
Reliability is the probability that software will not cause the failure of a system for a specified time under specified conditions. Measures of reliability include MTBF (mean time between failure), MTTF (mean time to failure) as well as service level agreements and other mechanisms.
Exhaustive testing why not test everything?
It is now widely accepted that you cannot test everything in Software Testing. Exhausted testers you will find, but exhaustive testing you will not. Complete Software Testing is neither theoretically, nor practically possible.
Consider a 10 character string that has 280 possible input streams and corresponding outputs. If you executed one test per microsecond it would take approx. 4 times the age of the Universe to test this completely.
Software Testing and risk
How much testing would you be willing to perform if the risk of failure were negligible? Alternatively, how much Software Testing would you be willing to perform if a single defect could cost you your life's savings, or, even more significantly
Software Testing and quality
Software Testing identifies faults whose removal increases the software quality by increasing the software's potential reliability. Software Testing is the measurement of software quality. We measure how closely we have achieved quality by testing the relevant factors such as correctness, . reliability, usability, maintainability,reusability, testability etc
How much Software Testing is enough?
It is difficult to determine how much Software Testing is enough. Software Testing is always a matter of judging risks against cost of extra testing effort. Planning test effort thoroughly before you begin, and setting completion criteria will go some way towards ensuring the right amount of Software Testing is attempted. Assigning priorities to tests will ensure that the most important tests have been done should you run out of time.
Software Testing can be performed in either the two types:-
1.Conventional:-In this Software Testing is started after the Coding.
2.UnConventional:-In this Software Testing is done from the Initial Phase.
Before that we need to know couple of main definitions regarding the terminology in the company
PROJECT in which exact rules must be followed that is customer requirements
PRODUCT which are based on general requirements that is on our own requirements