Also called ‘Structural Testing / Glass Box Testing’ is used for testing the code keeping the system specs in mind. Inner working is considered and thus Developers Test..
* Mutation Testing
Number of mutants of the same program created with minor changes and none of their result should coincide with that of the result of the original program given same test case.
* Basic Path Testing
Testing is done based on Flow graph notation, uses Cyclometric complexity & Graph matrices.
* Control Structure Testing
The Flow of control execution path is considered for testing. It does also checks :-
Conditional Testing : Branch Testing, Domain Testing.
Data Flow Testing.
Loop testing :Simple, Nested, Conditional, Unstructured Loops.
2. Gray Box
3. Black Box
Also called ‘Functional Testing’ as it concentrates on testing of the functionality rather than the internal details of code.
Test cases are designed based on the task descriptions
* Comparison Testing
Test cases results are compared with the results of the test Oracle.
* Graph Based Testing
Cause and effect graphs are generated and cyclometric complexity considered in using the test cases.
* Boundary Value Testing
Boundary values of the Equivalence classes are considered and tested as they generally fail in Equivalence class testing.
* Equivalence class Testing
Test inputs are classified into Equivalence classes such that one input check validates all the input values in that class.
Gray Box Testing : Similar to Black box but the test cases, risk assessments, and test methods involved in gray box testing are developed based on the knowledge of the internal data and flow structures
Other successful alternatives or variation: Nothing is infallible. Realistically, a moderate split of human and automated testing can rule out a wider range of possible bugs, rather than relying solely on one or the other. Giving the testere limited access to any automated tools can often help speed up the test cycle.
" It includes testing of
Interaction with people.
Objectives " To simulate production environment
" Normal or above normal volumes of transactions can be processed through the transaction within expected time frame.
" Application system would be able to process larger volume of data.
" System capacity should have sufficient resources to meet expected turnaround time.
How to Use " It should simulate as closely as possible to production environment.
" Online system should be stress tested with users entering test data with normal or above normal pace.
" Batch system should be tested with huge volumes/ numbers of batches
" The test conditions should have error conditions.
" Transactions used in stress testing are obtained from following 3 sources :
Test data generators
Test transactions created by test group
Transactions which were previously used in production.
" In stress testing the system should run as it would in the production environment.
When to use " When there is uncertainty that system will work with huge volumes of data and without generating any faults.
" Attempt is made to break system with huge amount of data.
" Most commonly used technique to test for online transaction systems as other
techniques are not effective.
Examples " Sufficient disk space allocated
" Communication lines are adequate
Disadvantage " Amount of time taken to prepare for testing
" Amount of resources utilized during test execution.
* Unit Testing is primarily carried out by the developers themselves.
* Deals functional correctness and the completeness of individual program units.
* White box testing methods are employed
2. Integration Testing.
* Integration Testing: Deals with testing when several program units are integrated.
* Regression testing : Change of behavior due to modification or addition is called ‘Regression’. Used to bring changes from worst to least.
* Incremental Integration Testing : Checks out for bugs which encounter when a module has been integrated to the existing.
* Smoke Testing : It is the battery of test which checks the basic functionality of program. If fails then the program is not sent for further testing.
3. System Testing.
* System Testing - Deals with testing the whole program system for its intended purpose.
* Recovery testing : System is forced to fail and is checked out how well the system recovers the failure.
* Security Testing : Checks the capability of system to defend itself from hostile attack on programs and data.
* Load & Stress Testing : The system is tested for max load and extreme stress points are figured out.
* Performance Testing : Used to determine the processing speed.
* Installation Testing : Installation & uninstallation is checked out in the target platform.
4. Acceptance Testing.
* UAT ensures that the project satisfies the customer requirements.
* Alpha Testing : It is the test done by the client at the developer’s site.
* Beta Testing : This is the test done by the end-users at the client’s site.
* Long Term Testing : Checks out for faults occurrence in a long term usage of the product.
* Compatibility Testing : Determines how well the product is substantial to product transition.