<< Home

Industrial Training

Cover Page Preface Acknowledgement Contents Chapter 1 Chapter 2 Chapter 3
Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Conclusion

Chapter 7
Application Software Testing

7.1 Introduction         
Testing of an Application Software product plays a major role in it’s development process, as it is vital to ensure products quality and reliability. I was able to grasp these concepts and practical experience when I worked in QuickAccountant.com Beta release Testing. 

Testing of Application Software fall into two broad categories.
1.       Glass box testing (White box testing)
2.       Black box testing


7.2 Glass Box Testing
 

Usually glass box testing is done by 
1.       Programmers after coding 
2.       Testers

Following tests are performed and all problems must be fixed in this stage to verify that the program is ready for black-box testing. 

Tests performed during glass-box testing

Path Testing

Path testing is done to make sure the program flow is in the correct way as expected. Basic paths, loops, and conditions are checked in this stage. Coverage Criteria for path testing is specified in the document Glass-box testing checklist.

It can consist of following:- 

Branch testing  –Checks all lines and the branch points once when the condition is true and  once when it’s false.

 Condition testing–Same as above but tests all the ways that a certain condition can be  made true or false.

Static Testing 

Static Testing is done only by examining the cod
e. This covers examining
 

1.       The basic structure of the program

2.       Checks whether proper naming conventions are followed and code is readable.

3.       Checks whether programs are properly commented and version numbers and other information are correct.

4.       Checks for redundant code.  

Loop Testing

 

Loop Testing is a Glass-Box Testing technique that focuses exclusively on the validity of loop constructs. Four different classes of loops can be defined as simple loops, concatenated loops, nested loops and unstructured loops.

 

            Simple Loops

                        Following set of tests should be applied to simple loops, where ‘n’ is the maximum number of allowable passes through the loop.

1.       Skip the loop entirely

2.       Only one pass through the loop

3.       Two passes through the loop

4.       m passes through the loop

5.       n-1,n,n+1 passes through the loop

 

 
 

Nested Loops

            When extending the test approach for simple loops to nested loops, the number of possible tests would grow geometrically as the level of nesting increases. As this would result an impractical number of tests, following approach must be followed to reduce the number of tests.

1.       Start the innermost loop. Set all the other loops to minimum values.

2.       Conduct simple loop tests for the innermost loop while holding  the outer loops at their minimum iteration parameter(e.g. loop counter) values. Add other tests for out-of-range or excluded values.

3.       Work outward, conducting tests for the next loop, but keeping all other outer loops at minimum values and other nested loops to “typical” values.

4.       Continue until all loops have been tested.

 

 

 

 

        
 
 

Concatenated Loops

 

 


            Concatenated loops can be tested using the approach defined above for simple loops of each of the loops are independent of the other. However if the loops are concatenated and the loop counter for loop 1 is used as the initial value for loop2, then the loops are not independent. When the loops are not independent, the approach applied to nested loops is recommended.

 

            Unstructured Loops

 

Loops that do not fall into above categories are known as unstructured loops and these loops must be avoided. These loops must be redesigned, following structured programming methods.


Fig 7.1 Glass Box Testing

 


7.3 Black Box Testing

Black-Box Testing is done by testers, after Glass-Box Testing. In this stage, program is tested mainly from outside without the source-code.

Methods used for Black-Box Testing:-

  Following methods are used for Black-Box testing.

1.       Incremental Testing

2.       Big-Bang Testing  

Incremental Testing  

In this strategy each module, element or function is tested thoroughly but separately. After those tests were successful few were grouped together and tested and eventually all the functions and modules are tested together.

Incremental testing requires Stubs (code or a program written to take a functions place) and Drivers (code or program written to call a function and pass it data), as some functions or modules cannot be tested individually.

Incremental testing can be done in two ways when the product has been designed hierarchically.

            1.Bottom-Up Testing

Lowest level modules are tested first. Then highest level modules are tested and tested lower level modules will be also used. Requires Drivers. This is the recommended method.

            2. Top - Down Testing

Highest level modules are tested first. Then Next higher level modules are tested. Requires Stubs.

  Big -Bang Testing

This type of testing is done mainly for time saving purposes In this type of testing drivers and stubs (test code) are not required as modules and processes are not thoroughly tested until the full system is developed. This method must be only used for immediate projects with strict deadlines.

The normal sequence is as following

1.       Test Planning.

2.       Function test, System test, verification and validation (Test Cycle Design and Execution)

3.       Integrity and release testing (Test Cycle Design and Execution)

4.       Final acceptance testing and certification

 
 

Fig 7.2 Black Box Testing

7.4 Test cases and test case designing

Documents required for Test Planning are

Following Documents are prepared/submitted by the design team and programmers.

1.       Design Specification

2.       System Specification

3.       Module Specification

4.       Function List

5.       Program/Function Path List

6.       Software Requirement Specification

7.       Module Inter-Dependency Chart

            Evolutionary method where testing is done right after the development of a certain function or a unit is used for test planning and testing should be done in Incremental method unless for special cases where you really need Big-Bang testing. (specially for time saving).  

The following documents are also prepared and used for effective test planning.

·         List of error messages

·         List of program files

·         List of compatible Hardware/Software/compatible environments

·         List of components that goes to the customer

·         List of public documents (list of every document from anyone outside the company)

 

Test Plan Report is prepared at this stage.

7.5 Testing User Manuals & online help

 

User Manuals and Online Help must be tested at the Final Integrity Testing level.

Testing User Manuals/Documentation

Good Documentation of a Software Product serves following benefits,

  1. Improves usability – Documentation must make the product easier to use. This leads to faster learning and fewer errors.
  2. Lowers customer costs – Good documentation prevents many unnecessary support calls from the customer.
  3. Improves reliability – Excellent documentation helps to reduce the number of user errors.
  4. Increase maintainability
  5. Improves installability
  6. Enhances salability 

Chapter 8 >>