Today, most of the clients want a software that is clean and delivered rapidly and effectively. Users want the software to work perfectly right from the first time and continue working as expected, without any glitches. Developers tried to made this possible through traditional testing process which improved the quality of the application. However, many a times, defects will escape the eyes of the testers, resulting in to customer dissatisfaction and high maintenance cost.
Hypothesis-based Testing (HBT) has emerged as the best solution to avoid this. HBT is a scientiﬁc personal test methodology that is powered by a defect detection technology. It enables an individual to rapidly & effectively deliver “Clean Software”. The major advantage is the fact that while all traditional testing methodologies are focused on activities driven by processes that are powered by tools and are dependent on the experience of the developer, HBT is based on a defect centric quality growth model, focused on goal and then activities.
In clearer words, HBT operates on the theme of hypothesizing potential defects that can cause loss of expectations and proving that they won’t come into existence”. HBT fits any development methodology and weaves into organizational testing process and practice. It is powered by STEM 2.0 (STAG Test Engineering Method) a personal system of disciplines enabled by a scientific core. Broadly speaking, HBT works in six stages.
Six stages of HBT
Stage #1: Understand Expectations
This stage indicates how well the product delivers the needs (features that allow the job to be done) of an end user. This also denotes the quality of the software/system. So, a key responsibility of an Effective tester is to understand:
Stage #2: Understand context
In this stage, key criteria is to understand technologies, architecture, features of the application and attributes. Also important is to prioritize the end users in terms of the successful deployment of the final system. This should be done while subsequently ranking the importance of features/requirements to each of the end user types. This will lead to identification of the expected value of measures for each attribute, leading to a concentrated effort in implementing the high ranked features as per customer requirements and identifying the possible potential defects in these features.
From stage 1 and 2 cleanliness criteria is achieved which provides strong basis for Goal- focused- testing.
Stage#3: Formulate hypothesis
This stage is also called the structured and scientific approach. This will focus on the properties that the final system should have to ensure proper usage of data, business logic, structure, environment and usage. Some of potential defect types (or areas in which defects were focused upon) in this stage are:
This phase helps in grouping the potential defects (PD) as potential defect types(PDT) and map them to requirements. The outcome of this stage is Fault Traceability matrix. Test cases are mapped to the corresponding requirements to form Requirement traceability matrix, thus potential defects are mapped to the test cases. This allows us to understand that intended potential defects that can indeed be uncovered.
Stage #4: Devise proof
This stage prepares test strategy and test plan documents and also identifies relevant testing techniques (TT) required to find PDT, to evaluate test scenarios and test cases and define measurements.
This stage also categorizes test cases in different quality levels (eg: QL1, QL2 etc) which will result in:
Stage#5: Tooling support
The Objective of this stage is to analyze the support that we need from tooling to perform the tests. This includes automation scenarios that deliver a value and ROI. In this stage, following activities are performed:
Stage#6: Assess and Analyze
In this stage, the tester can identify the test cases/Scripts to be executed. The the tester will execute test cases, record outcomes, defects and status of the execution, analyze the execution results , calculate metrics, quantify quality, identify risk to delivery, update test strategy and then test plan document, scenarios and test cases accordingly.
Advantages of HBT: