U-M CIS 375 - Software Testing Strategies
Course Cis 375-
Pages 29

Unformatted text preview:

Software Testing StrategiesStrategic Approach to Testing - 1Strategic Approach to Testing - 2Strategic Testing Issues - 1Strategic Testing Issues - 2Stages of TestingUnit TestingBlack Box or White Box?Unit Testing DetailsGenerating Test DataRegression TestingIntegration TestingTop-Down Integration TestingBottom-Up Integration TestingPowerPoint PresentationThread TestingSmoke TestingValidation TestingAcceptance TestingAcceptance Testing ApproachesSystem TestingPerformance TestingTesting Life CycleTesting ToolsTest Team MembersTest Documentation NeededDocument Each Test CaseDebuggingDebugging Approaches1Software Testing StrategiesCIS 375Bruce R. MaximUM-Dearborn2Strategic Approach to Testing - 1•Testing begins at the component level and works outward toward the integration of the entire computer-based system.•Different testing techniques are appropriate at different points in time.•The developer of the software conducts testing and may be assisted by independent test groups for large projects.•The role of the independent tester is to remove the conflict of interest inherent when the builder is testing his or her own product.3Strategic Approach to Testing - 2•Testing and debugging are different activities.•Debugging must be accommodated in any testing strategy.•Need to consider verification issues– are we building the product right?• Need to Consider validation issues–are we building the right product?4Strategic Testing Issues - 1•Specify product requirements in a quantifiable manner before testing starts.•Specify testing objectives explicitly.•Identify the user classes of the software and develop a profile for each.•Develop a test plan that emphasizes rapid cycle testing.5Strategic Testing Issues - 2•Build robust software that is designed to test itself (e.g. use anti-bugging).•Use effective formal reviews as a filter prior to testing.•Conduct formal technical reviews to assess the test strategy and test cases.6Stages of Testing•Module or unit testing.•Integration testing,•Function testing.•Performance testing.•Acceptance testing.•Installation testing.7Unit Testing•Program reviews.•Formal verification.•Testing the program itself.–black box and white box testing.8Black Box or White Box?•Maximum # of logic paths - determine if white box testing is possible.•Nature of input data.•Amount of computation involved.•Complexity of algorithms.9Unit Testing Details•Interfaces tested for proper information flow.•Local data are examined to ensure that integrity is maintained.•Boundary conditions are tested.•Basis path testing should be used.•All error handling paths should be tested.•Drivers and/or stubs need to be developed to test incomplete software.10Generating Test Data•Ideally want to test every permutation of valid and invalid inputs•Equivalence partitioning it often required to reduce to infinite test case sets–Every possible input belongs to one of the equivalence classes.–No input belongs to more than one class.–Each point is representative of class.11Regression Testing•Check for defects propagated to other modules by changes made to existing program –Representative sample of existing test cases is used to exercise all software functions.–Additional test cases focusing software functions likely to be affected by the change.–Tests cases that focus on the changed software components.12Integration Testing•Bottom - up testing (test harness).•Top - down testing (stubs).•Modified top - down testing - test levels independently.•Big Bang.•Sandwich testing.13Top-Down Integration Testing•Main program used as a test driver and stubs are substitutes for components directly subordinate to it.•Subordinate stubs are replaced one at a time with real components (following the depth-first or breadth-first approach).•Tests are conducted as each component is integrated.•On completion of each set of tests and other stub is replaced with a real component.•Regression testing may be used to ensure that new errors not introduced.14Bottom-Up Integration Testing•Low level components are combined in clusters that perform a specific software function.•A driver (control program) is written to coordinate test case input and output.•The cluster is tested.•Drivers are removed and clusters are combined moving upward in the program structure.15 Bottom-Up Top-Down BigBang SandwichIntegration Early Early  EarlyTimetogetworkingprogramLate Early Late EarlyDrivers Yes No Yes YesStub No Yes Yes YesParallelism Medium Low High MediumTestspecificationEasy Hard Easy MediumProductcontrolseq.Easy Hard Easy Hard16Thread TestingTesting set of actions associated with particular module functions.17Smoke Testing•Software components already translated into code are integrated into a build.•A series of tests designed to expose errors that will keep the build from performing its functions are created.•The build is integrated with the other builds and the entire product is smoke tested daily using either top-down or bottom integration.18Validation Testing•Ensure that each function or performance characteristic conforms to its specification.•Deviations (deficiencies) must be negotiated with the customer to establish a means for resolving the errors.•Configuration review or audit is used to ensure that all elements of the software configuration have been properly developed, cataloged, and documented to allow its support during its maintenance phase.19Acceptance Testing•Making sure the software works correctly for intended user in his or her normal work environment. •Alpha test–version of the complete software is tested by customer under the supervision of the developer at the developer’s site•Beta test–version of the complete software is tested by customer at his or her own site without the developer being present20Acceptance Testing Approaches•Benchmark test.•Pilot testing.•Parallel testing.21System Testing•Recovery testing–checks system’s ability to recover from failures•Security testing–verifies that system protection mechanism prevents improper penetration or data alteration•Stress testing–program is checked to see how well it deals with abnormal resource demands•Performance testing–tests the run-time performance of software22Performance Testing•Stress test.•Volume test.•Configuration test (hardware &


View Full Document

U-M CIS 375 - Software Testing Strategies

Course: Cis 375-
Pages: 29
Download Software Testing Strategies
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Software Testing Strategies and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Software Testing Strategies 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?