DOC PREVIEW
CORNELL CS 501 - Lecture Notes

This preview shows page 1-2-17-18-19-36-37 out of 37 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 37 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CS 501: Software EngineeringAdministrationValidation and VerificationThe Testing ProcessTest DesignTesting StrategiesMethods of TestingTesting and DebuggingCategories of TestingAcceptance TestingTest CasesTest Case Selection: Coverage of InputsTest Case Selection: ProgramProgram Flow GraphTest Strategies: ProgramStatistical TestingSlide 17Regression TestingRegression Testing: Program TestingDocumentation of TestingConfiguration ManagementSource Code ManagementSource Control Management SystemSource Code Management Tools are NOTSource Code Management ToolsCode SharingLockingMergingVersion ControlVersion TreesBranchingExamplesClearcaseClearcase FeaturesFixing BugsMoving the Bugs AroundSome Notable Bugs1CS 501 Spring 2003CS 501: Software EngineeringLecture 22Reliability III2CS 501 Spring 2003AdministrationLecture 23Lecture 23 on Wednesday, April 16 (evening), not Tuesday, April 15.3CS 501 Spring 2003Validation and VerificationValidation: Are we building the right product?Verification: Are we building the product right?In practice, it is sometimes difficult to distinguish between the two.That's not a bug. That's a feature!4CS 501 Spring 2003The Testing ProcessUnit, System and Acceptance Testing is a major part of a software project• It requires time on the schedule• It may require substantial investment in test data, equipment, and test software.• Good testing requires good people!• Documentation, including management and client reports, are important parts of testing.What is the definition of "done"?5CS 501 Spring 2003Test DesignTesting can never prove that a system is correct. It can only show that (a) a system is correct in a special case, or (b) that it has a fault. • The objective of testing is to find faults.• Testing is never comprehensive.• Testing is expensive.6CS 501 Spring 2003Testing Strategies• Bottom-up testing. Each unit is tested with its own test environment.• Top-down testing. Large components are tested with dummy stubs.user interfaceswork-flowclient and management demonstrations• Stress testing. Tests the system at and beyond its limits.real-time systemstransaction processing7CS 501 Spring 2003Methods of TestingClosed box testingTesting is carried out by people who do not know the internals of what they are testing.Open box testing Testing is carried out by people who know the internals of what they are testing.(a) What is the advantage of each approach?(b) In each case, how do you set about selecting test cases?8CS 501 Spring 2003Testing and DebuggingTesting is most effective if divided into stages:• Unit testing at various levels of granularity (closed box)tests by the developeremphasis is on accuracy of actual code• System and sub-system testing (closed/open box)uses trial data emphasis is on integration and interfaces• Acceptance testing (open box)uses real data in realistic situationsemphasis is on meeting requirements9CS 501 Spring 2003Categories of TestingUnit testing unit testSystem testing integration test function test performance test installation testAcceptance testing10CS 501 Spring 2003Acceptance TestingAlpha Testing: Clients operate the system in a realistic but non-production environmentBeta Testing: Clients operate the system in a carefully monitored production environmentParallel Testing: Clients operate new system alongside old production system with same data and compare results11CS 501 Spring 2003Test CasesTest cases are specific tests that are chosen because they are likely to find faults.Test cases are chosen to balance expense against chance of finding serious faults.• Cases chosen by the development team are effective in testing known vulnerable areas.• Cases chosen by experienced outsiders and clients will be effective in finding gaps left by the developers.• Cases chosen by inexperienced users will find other faults.12CS 501 Spring 2003Test Case Selection: Coverage of InputsObjective is to test all classes of input• Classes of data -- major categories of transaction and data inputs.Cornell example: (undergraduate, graduate, transfer, ...) by (college, school, program, ...) by (standing) by (...)• Ranges of data -- typical values, extremes• Invalid data, reversals, and special cases.13CS 501 Spring 2003Test Case Selection: ProgramObjective is to test all functions of each computer program• Paths through the computer programsProgram flow graphCheck that every path is executed at least once• Dynamic program analyzersCount number of times each path is executedHighlight or color source codeCan not be used with time critical software14CS 501 Spring 2003Program Flow Graphif-then-elseloop-while15CS 501 Spring 2003Test Strategies: Program(a) Statement analysis (b) Branch testingIf every statement and every branch is tested is the program correct?16CS 501 Spring 2003Statistical Testing• Determine the operational profile of the software• Select or generate a profile of test data• Apply test data to system, record failure patterns• Compute statistical values of metrics under test conditions17CS 501 Spring 2003Statistical TestingAdvantages:• Can test with very large numbers of transactions• Can test with extreme cases (high loads, restarts, disruptions)• Can repeat after system modificationsDisadvantages:• Uncertainty in operational profile (unlikely inputs)• Expensive• Can never prove high reliability18CS 501 Spring 2003Regression TestingREGRESSION TESTING IS ONE OF THE KEY TECHNIQUES OF SOFTWARE ENGINEERINGApplied to modified software to provide confidence that modifications behave as intended and do not adversely affect the behavior of unmodified code. • Basic technique is to repeat entire testing process after every change, however small.19CS 501 Spring 2003Regression Testing: Program Testing1. Collect a suite of test cases, each with its expected behavior.2. Create scripts to run all test cases and compare with expected behavior. (Scripts may be automatic or have human interaction.)3. When a change is made, however small (e.g., a bug is fixed), add a new test case that illustrates the change (e.g., a test case that revealed the bug).4. Before releasing the changed code, rerun the entire test suite.20CS 501 Spring 2003Documentation of TestingTesting should be documented for thoroughness, visibility and for maintenance(a)


View Full Document

CORNELL CS 501 - Lecture Notes

Documents in this Course
Quiz 2

Quiz 2

2 pages

Usability

Usability

31 pages

Quiz 1

Quiz 1

2 pages

Stulba;''

Stulba;''

33 pages

Load more
Download Lecture Notes
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 Lecture Notes 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 Lecture Notes 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?