least the complete design is finalized. Failure analysis and design improvement is achieved through testings. Reliability growth testing This testing is used to check new prototypes of the software which are initially supposed to fail frequently. The causes of failure are detected and actions are taken to reduce defects. Suppose T is total accumulated time for prototype. n(T) is number of failure from start to time T. The graph drawn for n(T)/T is a straight line. This graph is called Duane Plot. One can get how much reliability can be gained after all other cycles of test and fix it. solving eq.1 for n(T), where K is e^b. If the value of alpha in the equation is zero the reliability can not be improved as expected for given number of failure. For alpha greater than zero, cumulative time T increases. This explains that number of the failures doesn't depends on test lengths. Designing test cases for current release If new features are being added to the current version of software, then writing a test case for that operation is done differently. First plan how many new test cases are to be written for current version. If the new feature is part of any existing feature, then share the test cases of new and existing features among them. Finally combine all test cases from current version and previous one and record all the results. There is a predefined rule to calculate count of new test cases for the software. If N is the probability of occurrence of new operations for new release of the software, R is the probability of occurrence of used operations in the current release and T is the number of all previously used test cases then Reliability evaluation based on operational testing The method of operational testing is used to test the reliability of software. Here one checks how the software works in its relevant operational environment. The main problem with this type of evaluation is constructing such an operational environment. Such type of simulation is observed in some industries like nuclear industries, in aircraft, etc. Predicting future reliability is a part of reliability evaluation. There are two techniques used for operational testing to test the reliability of software: Steady state reliability estimation In this case, we use feedback from delivered software products. Depending on those results, we can predict the future reliability for the next version