This course is an intensive, hands-on, comprehensive exploration of the functional testing principles, techniques and practices used in software testing derived from black box, white box and model testing approaches. The course focuses exclusively on techniques that support the testing of system and component functionality. The initial part of the course deals with the best practices is creating, managing, documenting and maintaining test cases as corporate assets with an emphasis on established industry best practices including test case specification documentation, test procedure documentation and checklists for establishing effective, economical and reusable test cases. This is framed within the context of testing maturity models and the role of functional testing throughout the development and support life cycle, including regression testing. Standard black box or specification based testing techniques are explored in detail including domain analysis, boundary analysis, and range analysis techniques like cause and effect graphing. There is a strong emphasis on specification analysis to ensure it is test ready for test case generation using industry standard checklists. There is a strong emphasis on algorithmic test case generation to support test case reviews, replicability, and integrity. Unit testing is introduced as a test case complexity management strategy and the special requirements for developing and executing state-based tests are covered. Structural testing techniques and concepts are covered along with how they are used for exploratory testing and to complement black box testing. Three basic types of structural testing are covered: control flow, transaction flow, and data flow testing. The model based testing sections extends the concepts from the white box testing section to model based testing where techniques to develop functional tests for algorithms and state models are explored. The course concludes with an overview of how functional testing integrates with some of the current development techniques – like ATDD and TDD – and how the functional testing activities integrate into the larger testing activity framework, as well as a survey of current automation frameworks and functional testing tools. All of the theory presented is reinforced with examples, real world case studies, hands on exercises and projects.
The course has no prerequisites however a working knowledge of testing concepts and ideas is recommended.
3 Days/Lecture & Lab
The course is intended for software testers and test mangers and anyone involved in functional testing.
Review of Testing Concepts