1 / 15

Software Testing Technique

Software Testing Technique. Introduction . Software Testing is the process of executing a program or system with the intent of finding errors . It involves any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results.

kobe
Download Presentation

Software Testing Technique

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Testing Technique

  2. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results

  3. Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is one that has high probability of finding an undiscovered error. A successful test is one that uncovers an as-yet undiscovered error. The major testing objective is to design tests that systematically uncover types of errors with minimum time and effort.

  4. Testing Principals • All tests should be traceable to customer requirements. • Tests should be planned long before testing begins. • The Pareto principle applies to software testing. • 80% of all errors uncovered during testing will likely be traceable to 20% of all program modules. • Testing should begin “in the small” and progress toward testing “in the large”. • Exhaustive testing is not possible. • To be most effective, testing should be conducted by an independent third party.

  5. Software Testability • Operability if it works better it can be tested more efficiently • Observability what you see is what you test • Controllability if software can be controlled better the it is more that testing can be automated and optimized

  6. Software Testability • Decomposability controlling the scope of testing allows problems to be isolated quickly and retested intelligently • Stability the fewer the changes, the fewer the disruptions to testing • Understandability the more information that is known, the smarter the testing can be done

  7. Good Test Attributes A good test has a high probability of finding an error. A good test is not redundant. A good test should be best of breed. A good test should not be too simple or too complex.

  8. Test Strategies • Black-box or behavioral testing • knowing the specific functions of a software, design tests to demonstrate each function and check its errors. • White-box or glass-box testing • knowing the internals of a software, design tests to exercise all internals of a software to make sure they operates according to specifications and designs.

  9. Black Box Testing

  10. Black Box Testing • Test cases are derived from formal specification of the system. • Test case selection can be done without any reference to the program design or code. • Only tests the functionality and features of the program. • Not the internal operation. • Advantages • Test case selection is done before the implementation of a program. • Help in getting the design and coding correct with respect to the specification.

  11. White Box Testing • Test cases are derived from the internal design specification or actual code for the program. • Advantages • Tests the internal details of the code; • Checks all paths that a program can execute. • Limitations • Wait until after designing and coding the program under test in order to select test cases.

  12. White Box Testing • Using white-box testing methods, we derive test cases that • Guarantee that all independent paths within a module have been exercised at least once. • Exercise all logical decisions one their true and false sides. • Execute all loops at their boundaries and within their operational bounds. • Exercise internal data structures to assure their validity.

  13. White Box Testing • White-box test design techniques include: • Control flow testing • Data flow testing • Branch testing • Path testing

  14. Basis Path Testing White-box technique usually based on the program flow graph The cyclomatic complexity of the program computed from its flow graph using the formula V(G) = E – N + 2 Determine the basis set of linearly independent paths (the cardinality of this set is the program cyclomatic complexity) Prepare test cases that will force the execution of each path in the basis set.

  15. Deriving Test Cases • Step 1 : Using the design or code as a foundation, draw a corresponding flow graph. • Step 2: Determine the cyclomatic complexity of the resultant flow graph. • Step 3: Determine a basis set of linearly independent paths. For example, • path 1: 1-2-10-11-13 • path 2: 1-2-10-12-13 • path 3: 1-2-3-10-11-13 • path 4: 1-2-3-4-5-8-9-2-… • path 5: 1-2-3-4-5-6-8-9-2-.. • Path 6: 1-2-3-4-5-6-7-8-9-2-.. • Step 4: Prepare test cases that will force execution of each path in the basis set.

More Related