Download Testing - Lecture Slides - Software Engineering | CS 1530 and more Study notes Software Engineering in PDF only on Docsity!
CS 1530 Software 2004 Engineering Fall
Software Engineering
Testing
Integration testing
■ Bottom-up
■ Top-down
■ Big-bang
■ Sandwich testing
■ Modified top-down
■ Modified sandwich
CS 1530 Software 2004 Engineering Fall
Example Hierarchy
CS 1530 Software 2004 Engineering Fall
Bottom-up Integration Testing
• Uses
Component
Drivers
CS 1530 Software 2004 Engineering Fall
Top-down Integration Testing
Uses component stubs
CS 1530 Software 2004 Engineering Fall
Modified Top-down
Table 8.7. Comparison of integration strategies.
Bottom-up Top-down Modified
top-down
Big-bang Sandwich Modified
Integration Early Early Early Late Early^ sandwich Early
Time to basic
working program
Late Early Early Late Early Early
Component drivers
needed
Yes No Yes Yes Yes Yes
Stubs needed No Yes Yes Yes Yes Yes
Work
parallelism at beginning
Medium Low Medium High Medium High
Ability to test
particular paths
Easy Hard Easy Easy Medium Easy
Ability to
plan and control
sequence
Easy Hard Hard Easy Hard Hard
CS 1530 Software 2004 Engineering Fall
Microsoft Synch-and-Stabilize
CS 1530 Software 2004 Engineering Fall
Traditional vs. OO-Testing
Test planning
■ Establish test objectives
■ Design test cases
■ Write test cases
■ Test test cases
■ Execute tests
■ Evaluate test results
CS 1530 Software 2004 Engineering Fall
The Test Plan
■ Describes how software will be
demonstrated to be correct
■ have to know requirements, specifications,
& design
■ Plan contents:
■ series of tests (at unit, integration,
functional, acceptance & installation level)
■ how tests will be run and criteria when test
is complete and satisfactory
Automated testing tools
■ Code analysis
■ Static analysis
■ code analyzer
■ structure checker
■ data analyzer
■ sequence checker
■ Dynamic analysis
■ program monitor
• Test execution
– Capture and replay
– Stubs and drivers
– Automated testing
environments
• Test case generators
CS 1530 Software 2004 Engineering Fall
Regression Testing
■ Identify faults after changes to system
■ because of new functionality added
■ because of fixes to other faults
■ Rerun tests after every change
■ compare output or previous tests to
current test
■ if there’s a change, check if a fault
CS 1530 Software 2004 Engineering Fall
Configuration Management
■ Software revision control systems
■ RCS (revision control system)
■ users have locks
■ CVS (concurrent revision control system)
■ can concurrently edit the same file ■ merges happen at updates (conflicts have to resolved manually)
■ Deltas
■ = differences between previous and current
version (backward delta) or current and next
version (forward delta)
■ save considerable disk space
Test team
■ Professional testers: organize and run
the tests
■ Analysts: who created requirements
■ System designers: understand the
proposed solution
■ Configuration management specialists:
to help control fixes
■ Users: to evaluate issues that arise
Performance tests
■ Stress tests
■ Volume tests
■ Configuration tests
■ Compatibility tests
■ Regression tests
■ Security tests
■ Timing tests
■ Environmental tests
■ Quality tests
■ Recovery tests
■ Maintenance tests
■ Documentation tests
■ Human factors
(usability) tests
Acceptance tests
■ Pilot test: install on experimental basis
■ Alpha test: in-house test
■ Beta test: customer pilot
■ Parallel testing: new system operates
in parallel with old system
Test documentation
■ Test plan: describes system and plan for
exercising all functions and characteristics
■ Test specification and evaluation: details
each test and defines criteria for evaluating
each feature
■ Test description: test data and procedures
for each test
■ Test analysis report: results of each test
Testing safety-critical systems
■ Design diversity: use different kinds of
designs, designers
■ Software safety cases: make explicit the
ways the software addresses possible
problems
■ failure modes and effects analysis
■ hazard and operability studies
■ Cleanroom: certifying software with respect
to the specification
Table 9.6. Perspectives for safety analysis.
Known cause Unknown cause
Known effect Description of system behavior Deductive analysis, including fault tree analysis
Unknown effect Inductive analysis, including failure modes and effects analysis Exploratory analysis, including hazard and operability studies