Testing, Software Testing

Dr. Shahid Nazir Bhatti

University of Hail, Saudi Arabia


Definition : ³Testing is defined as often as ³a process of verifying that the program works correctly´ (Kaner. 1999).Testing  Definition : ³Testing is the process of establishing confidence that a program or system does what it is supposed to do´ (Maciaszek and Liong 2004). (We have not really got anything else to sell but quality)    2 . Falk et al. Definition : ³Software Testing is the process of assessing the functionality and correctness of a program through execution or analysis´ (Pfleeger 1998). Definition : ³Testing is the process of executing a program or system with the intent of finding errors´ (Maciaszek and Liong 2004).

  3 . Myers: Testing is the process of executing a program or system with the intent of finding errors.What is meant by Quality Testing (Testing)  Testing is defined as often as ³a process of verifying that the program or system works correctly´ Hetzel: Testing is the process of establishing confidence that a program or system does what it is supposed to do.

a test basis. But it also means making sure the software is intuitive and easy to use. preparation and measuring aimed at establishing the characteristics of an information system and demonstrating the difference between the actual and the desired status´(McDermid 1991).e. Testing always involves comparison i.Software Testing  Definition: ³Testing is a process of planning. it requires a test object and frame of reference with which that object should comply. Software Testing means many things to many people. Testing gives insight into the difference between the actual and the required status of an object.   4 . The main objective of software testing is to ensure the software functions as specified before going into production.

3. Validated System Accepted System 5 . 4. System functional requirements Other System requirements Customer Requirements specification User environment System modules Function Testing Performance Testing Acceptance Testing Installatioan and Testing System in Use! Functioning system Verified.Types of Software Testing There are several testing strategies in regard to the system testing process. We have divided them into four steps (Pfleeger 1998) (Maciaszek and Liong 2004) (Pressman 1992): Function Testing Performance Testing Acceptance Testing Installation Testing  1. 2.

 Unit Testing Integration Testing   System Testing White Box Testing (Glass Box Testing) Black Box Testing   6 .Function Testing (Types of Function Testing) System testing begins with Function testing. ³Functions are tested by feeding inputs to get outputs´. In this step rather then system structure more concentration is focused on components and their interactions. Also defined as.

which implies integrating the software components or subsystems based on identified functional aspects  System Testing System testing is concerned with the behaviour of a whole system ³Testing of group of programs´ System testing should compare the system to the non-functional system requirements such as speed. and reliability. are used with traditional. hierarchically strategies are rather architecture driven. accuracy.Function Testing (Types of Function Testing)  Unit Testing ³Testing the individual programs as they are written´ Typically unit testing occurs with access to the code)  Integration Testing Integration testing is process of verifying the interaction between system components. Classical integration testing strategies. 7 . such as top-down or bottom-up.

Black Box Testing Black box testing or concrete box testing is used in computer programming.Function Testing (Types of Function Testing)  White Box Testing (Glass Box Testing) White box testing. one group does design work while a separate group does the testing (Black box testing.  The term black box indicates that the internal implementation of the program being executed is not examined by the tester. (Wikipedia)). given certain inputs. software engineering and software testing to check that the outputs of a program. 8 . clear box testing. given certain inputs. For this reason black box testing is not normally carried out by the programmer. software engineering and software testing to check that the outputs of a program. In most real-world engineering firms. conform to the structural specification of the program. For this reason. conform to the functional specification of the program. In electrical hardware testing the specifications of the interface between the device and application circuit is tested. a programmer is usually required to perform white box tests. glass box testing or structural testing is used in computer programming. The term white box (or glass box) indicates that testing is done with knowledge of the code used to execute certain functionality.

Performance Testing (Types of Performance Testing)   In software engineering. Performance testing can serve different purposes. It is critical to the cost performance of a new system that performance test efforts begin at the inception of the development project and extend through to deployment. It can demonstrate that the system meets performance criteria. Stress tests Volume tests Configuration tests Regression tests Security tests Maintenance tests Compatibility tests        9 . performance testing is testing that is performed to determine how fast some aspect of a system performs under a particular workload.

we check fields. If the requirements state that a system is to handle up to a specified number of devices or users. This test is especially important for systems that usually operate below maximum capacity but are severely stressed at certain times of peak demand. we may define a minimal system to serve a single user. For example. records. 10 . a stress test evaluates system performance. In addition. and other configurations build on the minimal configuration to serve additional user.Performance Testing (Types of Performance Testing)  Stress tests Evaluate the system when stressed to its limits over a short period of time. we look at whether data structures have been defined to be large enough to handle all possible situations. A configuration test evaluates all possible configurations to make sure that each satisfies the requirements. For instance.  Volume tests This test basically related to handling of large amounts of data in the system.  Configuration tests In this test we analyze the various software and hardware configurations specified in the requirements. and files to see if their sizes can accommodate all expected data.

Performance Testing (Types of Performance Testing)  Regression tests These tests are required when the system is tested in replacing an existing system. traces of transactions.  Security tests Security tests ensure that the security requirements are met. For instance. The regression tests guarantee that the new system¶s performance is at least as good as that of the old. We verify that the aids exist and that they function properly. memory maps. Regression tests are always used during a phased development. We may be required to supply diagnostic programs. circuit diagrams and other aids.  Compatibility tests These are needed when system interfaces with other systems. if the system is to communicate with a large database system to retrieve information. 11 . We find out whether the interface functions perform according to the requirements. integrity. a compatibility test examines the speed and accuracy of data retrieval.  Maintenance tests These address the need for diagnostic tools and procedures to help in finding the source of problems. and confidentiality of data and services. We test system characteristics related to availability.

It is also defined as. ³Testing to verify the working of program for implementation or use´. The requirements may not reflect the actual facilities and performance required by the user and testing may show that the system does not exhibit expected performance or functionality    Alpha Test Beta Test Conformance test 12 . .Acceptance Testing (Types of Acceptance Testing)    It involves testing the system with data supplied by the system procurer rather than simulated data developed as part of the testing. Acceptance testing often reveals errors and omissions in the system requirements definition.

but not yet ready for release. It is likely to be unstable but useful for internal demonstrations and previews to select customers.  Beta Test A beta version or beta release usually represents the first version of a computer program that implements all features in the initial software requirements specification. but satisfies a majority of the software requirements. but demonstrates the feasibility and basic structure of the software. 13 .  Conformance test Conformance testing is aimed at verifying whether the observed behaviour of the tested system conforms to its specification (Pressman 1992).Acceptance Testing (Types of Acceptance Testing)  Alpha Test The in-house test is called an alpha test. It often lacks features promised in the final release. the alpha version of a product still awaits full debugging or full implementation of all its functionality.

14 . additional testing is necessary. 1999). The tests focus on two things: completeness of the installed system and verification of any functional or non-functional characteristics that may be affected. If acceptance testing has been performed on-site. However. if acceptance testing conditions were not the same as actual site conditions. installation testing may not be needed. Here we allocate files and assign access to appropriate functions and data. Falk et al.Installation Testing Installation testing The final round of testing involves installing the system at user sites. testing is complete and the system is formally delivered (Kaner. When the customer is satisfied with the results.  An installation test requires working with customer to determine what tests are needed on-site.