Page 9 - SOFTWARE TESTING & QUALITY ASSURANCE
P. 9

Software Testing and Quality Assurance



                          iterative process to detect a mismatch, a defect or an error. As pointed by Myers, “Testing is a process of
                          executing a program with the intent of finding errors”.
                          According to IEEE 83a, “Software testing is the process of exercising or evaluating a system or system
                          component by manual or automated means to verify that it satisfies specified requirements.”
                          1.1   Software Testing
                          Software testing is an integral part of the software development life cycle which identifies the defects,
                          flaws or the errors in the application. It is incremental and iterative in nature. The goal of testing as
                          described by Millers states that, “The general aim of testing is to affirm the quality of software systems
                          by systematically exercising the software in carefully controlled circumstances”. Let us now list out the
                          objectives of software testing:
                           1.   It ensures if the solutions  meet the  business requirements, thereby enhancing customer
                               confidence.
                           2.   It catches the bugs, errors and defects.
                           3.   It ensures if the system is stable and ready for use.
                           4.   It identifies the areas of weakness in an application or product.
                           5.   It establishes the degree of quality.
                           6.   It determines user acceptability

                          The scope of testing can be comprehensive and could examine components like business requirements,
                          design requirements, programmer’s code,  hardware configuration,  and systems administration
                          standards and constraints. The ambit of  testing could also involve testing with respect to industry
                          standards and professional best practices. Testing thus provides an opportunity to validate and verify
                          all aspects of software engineering.
                          Thus, software testing brings many benefits to an organization. It saves time and money, since defects
                          are identified early. Testing  ensures that the product is stable with less downtime, thereby gaining
                          customer satisfaction.


                          Did you know?   In the year 2003, social security checks for 50,000 people were mailed by the U.S.
                                        Treasury Department without any beneficiary name. It was later found out that the
                                        missing names were due to a software program maintenance error.
                          1.1.1   Evolution of Software Testing
                          During the early days, software was developed by small groups of people, but had to be maintained by
                          a different set of people. It  was  at this time that people who were maintaining the  software  had
                          nightmarish experiences, as the software would throw up a lot of errors. Due to this, it was difficult to
                          handle large projects  and thus,  tasks were not completed on time  and  within budget. As a result,
                          projects were delayed and some of them were abandoned halfway.
                          Software testing evolved over time.  Advances in software development brought in new changes in the
                          way testing was perceived, which led to systematic improvement in testing.
                          Deve Gelperin and William  C. Hetzel classified software  testing based on the goals and phases  of
                          testing, which are as follows:
                           1.   Until 1956 - Debugging Oriented: Until 1956, testing and debugging were not differentiated, and
                               testing connoted debugging.

                           2.   1957–1978 - Demonstration Oriented: During this period, the goal of testing was to make sure
                               that the software satisfies its specifications.  The period of   70s also witnessed the acceptance of
                               the idea that software could be tested exhaustively.
                           3.   1979–1982  -  Destruction Oriented:  During this period, testing grew in importance with
                               contributions from Myers (author of “The Art of Software Testing”). Test cases that had the intent
                               of finding errors were designed and verification and validation activities were initiated.



                          2                       LOVELY PROFESSIONAL UNIVERSITY
   4   5   6   7   8   9   10   11   12   13   14