The objective of this masterclass is to enable the participants to apply a scientific approach to validating software.
Test manager, Project manager, Test lead, Test engineer, Development staff
Think better. Test Smarter. The act of producing clean software is challenging. In other disciplines of engineering, the final artifacts are physical in nature and therefore assessment of quality (or cleanliness) is accomplishment of the physical behavior. Software however poses an interesting challenge as expectations in the mind are translated into non-physical entities (code) whose behavior needs to be assessed for its correctness. Incorrectness I.e lack of quality is not limited to flaws in algorithm due to coding, but occur due to inappropriate design, incorrect understanding of intentions, complex interactions due to the deployment environment and finally due to the interesting usage by the end users.
Hypothesis Based Testing (HBT) is based on sound engineering principles geared to deliver the promise of guarantee of cleanliness. Its core value proposition is hypothesizing potential defects that may be present in the software and then allow you to engineer a staged detection model to uncover the defects faster and cheaper that the other typical test methodologies.
Hypothesis-based testing (HBT) is a personal test methodology that is unique in its approach to ensuring cleanliness of software. HBT is goal-centered wherein the goal of software cleanliness is setup (i.e. collection of cleanliness criteria), potential defect types that could impede cleanliness criteria identified, and then activities done to ensure purposeful testing, that is indeed effective and efficient. The central theme is of constructing a hypothesis of potential defects that may be probable, and then scientifically proving that they do not indeed exist. The activities relate to formulating a scientific test strategy, designing test scenarios and cases that can be proven to be adequate and then automating them as appropriate.
HBT fits any development methodology and weaves into your organizational test process. Its objective is to equip an individual with smart thinking tools (techniques, principles and guidelines) that enables a scientific inquiry process to understand needs & expectations, identify cleanliness criteria, hypothesize potential defect types, formulate test strategy, design test cases, identify metrics and build appropriate automation.
An overview of HBT
- Scientific approach to testing
- How is it difference from a traditional approach
Key concepts in HBT
- The notion of guarantee
- Cleanliness criteria
- Potential Defect Types
- Quality Levels
- Test types
- Principle of orthogonality
- Needs & expectations
- The FOUR types of entities that make up a SUT
- Landscaping, a technique for intelligent questioning
- Mindmaps and their role in understanding
- The various views : User/System, New/Modified/Unmodified, Prioritization
- Baseline map
- Understanding linkages : Interaction matrix
Understanding Potential Defect Types
- How to hypothesise
- Aspects, Views and their role in defect hypothesis
Creating purposeful strategy
- What is a strategy?
- The Triad – Levels, Types & Techniques
- Regression strategy via Fault Propagation Analysis
- Improving efficiency – Understand yield and immunity
- Behaviour driven design :The governing principle of design
- Level/Type based design
- Test scenarios vs cases
- How to design test cases for a structural component
- How to design test cases for a feature, requirement, business flow
- Operational profiling for LSPS test design
- How to judge test adequacy :Test breadth, depth and porosity
- How to assess test scenarios/cases
- How to document for test scenarios/cases in a minimalist manner
- HBT test case architecture
- What do you automate ? Scenarios or cases?
- Level-isation and their role in automation
- The automation script pattern and how HBT aids this
Visualisation and how they help effective management
- Visualising test coverage
- Visualising test execution progress
- Visualising SUT quality