This course will provide participants with practical solutions to object-oriented testing issues and problems, and will
expose participants to set of techniques for systematically approaching the testing of object-oriented software applications.
The methods taught in this course can be adapted to any organization.
What You Will Learn
- How to view testing as a formal process
- Step-by-step guidelines for performing systematic object-oriented testing
- Testing roles & responsiblities
- Testing levels for object-oriented applications
- Techniques for designing effective tests
- Practical testing standards and documentation
- Testing deliverables and work products
Who Should Attend
This course is intended for designers, programmers and testers who are involved in
developing or maintaining object-oriented software applications, and who have a desire to learn about how to improve
the quality and effectiveness of the testing process.
Attendees should have a basic background and understanding of object-oriented concepts and terminology. Experience
in object-oriented design or programming is helpful. Based upon specific client needs, training in the prerequisite
object-oriented background topics can be provided as an additional part of the course material.
Course Outline
Introduction to Object-Oriented Testing
- Quick review of object-oriented terminology
- Testing object-oriented vs. traditional applications
- Specific problems inherent in object-oriented testing
- How object-oriented development life cycles impact testing
Object-Oriented Testing Principles
- Testing definitions
- Object-oriented testing levels
- Some object-oriented testing issues
- Class testing
- Testing inheritance hierarchies
- Component & cluster testing
- Role of development models in object-oriented testing
- Class diagrams
- Sequence diagrams
- Collaboration diagrams
- State models
- Use cases
- Establishing responsibilities
The Object-Oriented Testing Process
- Importance of using a repeatable testing process
- Mapping the testing process to the project life cycle
- Traditional development life cycle
- Iterative/incremental life cycles
- Taking a life cycle approach to testing
- What to test at each life cycle phase
- How to test at each life cycle phase
- Deliverables & work products at each life cycle phase
- Step-by-step developer testing tasks
- Test traceability
Test Design Techniques -- Part 1
- Principles of systematic test design
- Kinds of testing needed for object-oriented applications
- System-level testing requirements
- Integration & collaboration testing
- Class-level testing requirements
- Testing inheritance structures
- Testing overloaded & overridden methods
- Testing polymorphic bindings
- Estimating how many tests are required
- Deriving tests from requirements
- Deriving tests from use cases
- Operational scenarios
- Traceability issues
- Completion criteria & guidelines
Test Design Techniques -- Part 2
- Black-box techniques for testing classes
- Input space partitioning
- Extreme point testing
- Decision tables & trees
- Class-level coverage testing
- Method coverage
- State coverage
- Structural coverage
- Exception coverage
- Completion criteria & guidelines
Test Planning & Documentation
- Types of test documentation
- Sample documentation formats
- Step-by-step planning & documentation tasks
Seminar Length: 2 Days