Page 262 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 262

Principles of Software Engineering



                   Notes            •  Understand the black box
                                    •  Explain equivalence class partitioning
                                    •  Explain white box

                                    •  Define control flow based

                                 Introduction

                                 The  aspire  of  the  testing  process  is  to  identify  all  defects  obtainable  in  a  software  product.
                                 However, for most practical systems, even after satisfactorily carrying out the testing phase, it
                                 is not probable to guarantee that the software is fault free. This is because of the fact that the
                                 input data domain of most software products is very large. It is not practical to test the software
                                 exhaustively with respect to each value that the input data may assume. Even with this sensible
                                 limitation of the testing process, we should not underestimate the significance of testing. We
                                 must remember that testing does expose many defects existing in a software product. Therefore,
                                 we can safely conclude that testing provides a practical way of reducing defects in a system and
                                 increasing the users’ confidence in a developed system. Software testing is any activity aimed
                                 at evaluating an attribute or capability of a program or system and determining that it meets
                                 its required results. Although crucial to software quality and widely deployed by programmers
                                 and testers, software testing still remains an art, due to limited understanding of the principles
                                 of software. The difficulty in software testing stems from the complexity of software. We cannot
                                 completely test a program with moderate complexity. Testing is more than just debugging. The
                                 purpose of testing can be quality assurance, verification and validation, or reliability estimation.
                                 Testing can be used as a generic metric as well. Correctness testing and reliability testing are
                                 two major areas of testing. Software testing is a tradeoff between budget, time and quality.
                                 Testing a program consists of subjecting the program to a set of test inputs (or test cases) and
                                 observing if the program behaves as expected. If the program fails to behave as expected, then
                                 the conditions under which failure occurs are noted for later debugging and correction.

                                 The following are some commonly used terms associated with testing.
                                    •  A failure is a manifestation error (or defect or bug) but the mere presence of an error may
                                      not necessarily lead to a failure.
                                    •  A test case is the triplet [I, S, O], where we are is the data input to the system, S is the
                                      state of the system at which the data is input, and 0 is the expected output of the system.

                                    •  A test suite is the set of all test cases with which a given software product is to be tested.

                                 13.1 Concept of Testing

                                 Software testing is a field with no set “best practices” because so much of testing is based on
                                 the particular background of the test, it is often difficult to explain, categorize and dispense
                                 advice on aspects of software testing. However, there are fundamental rules around. We entire
                                 site is dedicated to the basics of software testing. However, we need to first master the basics
                                 of the basics before we begin. We are just preliminary the journey into the world of software
                                 testing. Regardless of the cause, once a software maker has decided to use official methods, it
                                 must address the question of which formal methods and metrics to adopt. Once methods or a
                                 course toward methods has been determined, everyone must be educated in the new methods.
                                 Moving an established culture from an informal method of doing something to a formal method
                                 of doing the same thing takes time, determination, and a good cost benefit ratio. It amounts to
                                 a cultural change, and introducing culture changes is risky business. Once the new methods
                                 are established, it still takes a continuing commitment from management to keep them alive
                                 and in use.


        256                               LOVELY PROFESSIONAL UNIVERSITY
   257   258   259   260   261   262   263   264   265   266   267