Pages

Sunday 8 May 2016

Testing Techniques and Test Plans

Unit Testing

Unit Testing is done at the source or code level for language-specific programming errors such as bad syntax, logic errors, or to test particular functions or code modules.  The unit test cases shall be designed to test the validity of the programs correctness. 

White Box Testing

In white box testing, the UI is bypassed.  Inputs and outputs are tested directly at the code level         and the results are compared against specifications. This form of testing ignores the function of   the program under test and will focus only on its code and the structure of that code. Test case  designers shall generate cases that not only cause each condition to take on all possible values at  least once, but that cause each such condition to be executed at least once.  To ensure this happens, we will be applying Branch Testing.  Because the functionality of the program is relatively simple, this method will be feasible to apply. Each function of the binary tree repository is executed independently; therefore, a program flow for each function has been derived from the code.

Branch Testing
Using the program flow graph for each function, we will be able to determine all of the branches that will need to tested and will be used to develop the corresponding test cases.

Black Box Testing

Black box testing typically involves running through every possible input to verify that it results in the right outputs using the software as an end-user would.  We have decided to perform Equivalence Partitioning and Boundary Value Analysis testing on our application. 

Equivalence Partitioning

In considering the inputs for our equivalence testing, the following types will be used:

1. Legal input values – Test values within boundaries of the specification equivalence classes.  This shall be input data the program expects and is programmed to transform into usable values.
2. Illegal input values – Test equivalence classes outside the boundaries of the specification.  This shall be input data the program may be presented, but that will not produce any meaningful output.
The equivalence partitioning technique is a test case selection technique in which the test designer examines the input space defined for the unit under test and seeks to find sets of input that are, or should be, processed identically. The following table represents our equivalence classes, both valid and invalid.

 Integration Testing

There are two primary modules that will need to be integrated: the Graphic User Interface module and the Tree Repository module (back-end).  The two components, once integrated, will form the complete Binary Search Tree Application.  The following describes these modules as well as the steps that will need to be taken to achieve complete integration.  We will be employing an incremental testing strategy to complete the integration.

System Testing

The goals of system testing are to detect faults that can only be exposed by testing the entire integrated system or some major part of it. Generally, system testing is mainly concerned with areas such as performance, security, validation, load/stress, and configuration sensitivity. But in our case well focus only on function validation and performance. And in both cases we will use the black-box method of testing.

No comments:

Post a Comment