Monday, September 2, 2013

Testing Methodoligies

 

Structural Testing


  • Also called white box testing
  • Focuses primarily on structure of the module (i.e. Coverage of Code Specification)includes:

Basic Methods

Basis path Testing - Deriving a logical complexity measure of the procedural design;measure will be used as a guide for defining a basis set of execution paths .
 
Flow Graph Notation - Diagrammatic description of logical control flow.
 
Cyclomatic Complexity - A software metric that provides a quantitative measure of logical complexity of program Graph Matrices
 
Control Structure Testing - Includes condition testing & data flow testing 
 
Loop Testing - Focuses on validity of loop constructs exclusively through tests on simple, concatenated, nested & unstructured loops. 
 
 

Functional Testing


  • Also called black box testing. 
  • Focuses primarily on functionality of the module.

Basic Methods 

Graph Based - A sequential testing method wherein a graph of important objects & their relationships is created. 

Boundary Value Analysis - A test data selection technique where extreme values are chosen.

Equivalence Partitioning - A testing method that divides the input domain of a program into classes of data from which test cases are derived.

Error Guessing - Taken up when the  personnel are experienced with associated technology( no specific testing tools or techniques).

Orthogonal array Testing - Systematic, statistical way of testing pair-wise interactions.

Comparison Testing – Testing by comparison of independent versions of software developed for critical applications.

Fundamentals Of Testing



Testing Principles:


  1. All tests should be traceable to customer requirements
  2. Tests should be planned long before testing begins.
  3. The Pareto Principle applies to software testing.
  4. Testing should begin “in the small” and progress towards testing “in the large”
  5. Exhaustive testing is not possible
  6. To be most effective, testing should be conducted by an independent third party.

Testability:


Operability:  The better it works the more efficiently it can be tested

Observability:  What you see is what you test
Controllability: The better we can control the software the more the testing can be automated and optimized 

Decomposability:  By controlling the scope of the testing we can more quickly isolate problems and perform smarter retesting

Simplicity:  the less there is to test , the more quickly we can test it
 

Stability: The fewer the changes the fewer the disruptions to testing


Understandability: The more information we have the smarter we will test