Software testing technique

 

Software testing is a critical element of software quality assurance and represents the ultimate review of specification, design and code generation.

          Once source code has been generated, software must be tested to uncover (or correct as many error) as possible before delivery to your customer.

    Your goal is to design a series of test cases that like hood of finding errors. So

1-     We exercise the internal logic of software components.

2-     Exercise input and output domain of the program to uncovers errors in program function, behavior and performance.

Reviews and SQA activities can do uncover errors but they are not sufficient.

    Software is tested from two different perspectives.

1-     Internal program logic is exercised using white box design techniques.

2-     Software requirement are design using black box test case design technique.

   A set of test cases designed to exercise both internal logic and external requirement is designed and documented, expected result are defined and actual result are recorded.

 

Testing objectives

 

1-     Testing is a process of executing a program with the intent of finding error.

2-     A good test case is one that has high probability of finding an as_yet_undiscovered error.

3-     A successful test is one uncovers as yet undiscovered error.

 

Testing principle

 

1-     All tests should be traceable to customer requirements.

2-     Testing should be planned long before testing begins.

3-     Exhaustive testing is not possible.

4-     To be effective, testing conducts by independent 3rd party.

 

Testability

 

Software testability is simply how easily a compute program can be tested. There are certain metric that is used to measure testability in most of the aspects.

1-     Operability: The better it works, the more efficiently it can be tested.

2-     Observability: What you see is what you tests.

3-     Controllability: The better we can control the software, the more the testing can be automated and optimized.

4-     Decomposability: By controlling the scope of testing.

5-     Simplicity: The less there is text, the more quickly we can test it.

6-     Stability: The fewer the changes, the fewer the disruption to testing.

7-     Understandability: The more information we can have, the smarter we test.

 

 

White box testing

 

White box testing sometimes called glass box testing, is a test case design method that used the control structure of procedural design to device test cases. Using white box testing software engineer derive test cases that

1-     Guarantee that all independent paths within the module have been exercised at least once.

2-     Exercise all logical decisions on their true and false sides.

3-     Executes all loops at their boundaries and their operational bounds.

4-     Exercise internal data structure to ensure their validity.