Testing represents the primary mechanism for reducing software risk and typically consumes approximately half of all software development projects, yet it frequently fails to detect many critical defects. While traditional testing approaches and training emphasize well-established test design techniques, such as boundary value analysis and decision trees/tables, which can indeed help identify additional defects, their effectiveness is constrained by testing conducted late in the development lifecycle and largely reacting to specifications documented in system design phases.
This interactive course demonstrates how to use these standard techniques along with additional proven but lesser-known Proactive Testing methods that detect and prevent many of the highest-impact yet typically-overlooked critical risks earlier in the development process, when they are more economical to resolve. You will be able to deliver superior software within shortened timelines by effectively ensuring that the most critical unit/component, integration/assembly, system, and user acceptance testing activities are completed within constrained timeframes, while simultaneously providing value that overcomes traditional resistance from users, managers, and development teams. Throughout the course, participants practice each essential technique using realistic exercises based on various aspects of a comprehensive real-world case scenario.
Participants Will Learn:
- A structured Proactive Testing model applicable throughout the entire software development life cycle
- How testing can actually reduce time, effort, and frustration for users, developers, and managers
- How to write industry-accepted test plans, designs, and cases that enhance testing efficiency and reliability
- Multiple techniques and checklists to design comprehensive tests and discover overlooked conditions and edge cases
- How to manage test execution, including resource estimation and allocation, plus defect reporting and status tracking
- How to apply risk analysis methodologies and leverage reusable testware to accomplish more critical testing within time constraints
Who Should Attend:
This course is designed for testing professionals and individuals who manage and perform software product testing, as well as for analysts, designers, and system/project managers who need to understand how Proactive Testing can reduce software development duration and associated effort and costs.
How Testing Can Cut Effort and Time
- Distinguishing between testing for correctness versus testing for errors
- Developer perspectives on testing and quality assurance
- Exercise: Defining your testing process
- Understanding what a process is and why it matters
- Distinguishing between REAL versus presumed processes
- Understanding why most IT process improvement initiatives fail
- Exercise: Identifying your REAL testing process
- Identifying meaningful process measures, results, and root causes
- Understanding defect injection, detection, and ejection metrics
- Examining the economics of quality issues throughout the development life cycle
- Identifying keys to effective testing practices
- Understanding the CAT-Scan Approach to discover more errors
- Examining dynamic, passive, and active static testing methods
- Comparing developer versus independent test group testing approaches
- Understanding the V-model and the objectives of each testing level
- Recognizing reactive testing constraints when time is limited
- Understanding the Proactive Testing Life Cycle model
- Establishing proactive user acceptance criteria
- Developing strategies to create fewer errors and catch more
- Identifying test activities that save developers time and resources
- Applying testing improvements and methodologies
Test Planning Value, Not Busywork
- Understanding why test planning is often resisted by stakeholders
- Avoiding buzzword boilerplate, platitudes, and unnecessary paperwork
- Distinguishing between test plans and collections of test cases
- Recognizing six compelling reasons to plan testing activities
- Understanding risk elements and their relationship to testing priorities
- Comparing traditional reactive risk analysis approaches and their shortcomings
- Applying the IEEE Standard for Test Documentation in planning
- Resolving controversial interpretations of standards
- Understanding how the testing structure provides organizational advantages
- Enabling manageability, reusability, and selectivity in testing
- Using test plans, designs, cases, and procedures effectively
Proactive Master Test Planning for Large Risks
- Exercise: Anticipating showstoppers and critical failures
- Techniques for spotting overlooked major risks early
- Involving key stakeholders and reviewing plans comprehensively
- Applying formal and informal risk prioritization techniques
- Dynamically identifying design defects during planning
- Using risk-based approaches to define test units
- Allowing testing to drive development priorities
- Preventing major causes of schedule overruns
- Applying the stomach ache metric for risk assessment
- Testing the highest risks more frequently and earlier in development
- Creating a Master Test Plan that mirrors the project plan
- Choosing strategy approaches and evaluating automated tools
- Planning sequence of tests and data sources
- Establishing entry and exit criteria, anticipating changes
- Designing the test environment and supporting materials
- Estimating testing costs while avoiding common traps
- Defining roles, responsibilities, staffing levels, and training needs
- Planning schedules, addressing risks and contingencies, and obtaining sign-offs
- Using test plans as management documents and team agreements
- Maintaining the test plan as a living document
Detailed Test Planning for Medium-Sized Risks
- Applying IEEE Standard guidance on Unit Testing methodologies
- Implementing requirements-based functional testing approaches
- Addressing non-functional requirements testing challenges
- Using Black Box testing strategies effectively
- Applying three-level top-down test planning and design
- Creating Detailed Test Plans for medium-level risks
- Exercise: Building functionality matrices
- Designing test cases for medium-sized risks
- Using use cases to reveal overlooked conditions
- Creating Detailed Test Plans as comprehensive technical documents
White Box (Structural) Testing
- Understanding structural coverage degrees and their significance
- Creating flowgraphs to visualize logic paths
- Applying structural paths to business logic testing
- Exercise: Defining use case test coverage comprehensively
- Recognizing flaws in conventional use-case testing approaches
- Exercise: Identifying additional use case conditions
Integration, System, and Special Test Planning
- Understanding risks and issues that integration testing addresses
- Using graphical techniques to simplify integration complexity
- Preventing schedule slips with integration test plans
- Implementing smoke tests effectively and increasing their value
- Planning special tests for various scenarios
- Planning load, performance, and stress testing activities
- Implementing ongoing remote monitoring for reliability
- Planning security, configuration, and compatibility testing
- Planning distribution, installation, and localization testing
- Planning maintainability, support, and documentation testing
- Planning usability testing in dedicated laboratories
Test Design: Both Verb and Noun for Small Risks
- Understanding why tests require thoughtful design
- Using exploratory testing appropriately in test strategies
- Exercise: Disciplined brainstorming for test design
- Understanding checklists and ad hoc exploratory approaches
- Analyzing data formats, data models, and process models
- Exercise: Applying checklists systematically
- Using business rules, decision tables, and trees effectively
- Exercise: Creating comprehensive decision tables
- Applying equivalence classes and boundary value analysis
- Exercise: Identifying logical equivalence classes
- Developing formal and informal Test Design Specifications
- Exercise: Defining reusable test designs
- Managing complex conditions and defect isolation
- Developing Test Cases for small-level risks
- Distinguishing between Test Case Specifications and test data values
- Exercise: Writing test cases using scripts and matrices
Maintenance and Regression Testing
- Understanding how maintenance differs from development and its challenges
- Improving focus and organizational knowledge during maintenance
- Understanding regression testing and the minefield effect
- Exercise: Planning testing for maintenance changes
Automated Testing Tools
- Identifying key test automation considerations and decision factors
- Selecting tools for a managed test environment
- Using coverage analysis and execution aids
- Using tools for test planning, design, and administration
- Understanding automated test execution tools and associated issues
- Comparing scripting approaches and action word methodologies
Measuring and Managing Testing
- Understanding test case surveys and their relevance
- Applying surveys for estimating test-based project tasks
- Understanding traceability concepts and addressing associated issues
- Estimating non-test-based test project tasks
- Creating defect reports that prompt appropriate action
- Determining defect age and priority
- Creating status reports that receive management attention
- Projecting when software achieves sufficient quality levels
- Measuring defect density and tracking reductions
- Tracking defect detection and removal percentages
- Exercise: Measuring and analyzing testing effectiveness