This objective of this masterclass is to enable you devise a strategy for testing an early stage entity, design test cases and implement these using tools. The intent is to ensure that early stage entities are “clean enough” to integrate to build the larger system.
Delivering clean software starts early…The responsibility of uncovering all the defects does not lie only with the QA team. Potential defects can be clearly classified into those can be caught early at the implementation stage and those that may be detected later. The key is to understand what types of defects can be caught at early stage vis-à-vis at later stage. This will help you evolve a formal approach to development validation strategy and test design that will “guarantee” early quality.
The workshop is based on Hypothesis Based Testing (HBT) a personal test methodology. HBT is a six-stage personal test methodology whose core theme is to hypothesize potential types of defects and prove their absence/presence. The workshop will first outline the types of entities that are developed, setup criteria of cleanliness to enable hypothesize potential defect types for each entity type and then go on to rapidly and scientifically design test cases culminating in application of tools to execute them.
- Roles of QA and developer to deliver “clean software” – Understanding what types of defects are expected to be caught at early phase of development by the developer and the full time QA staff?
- Typical entities developed -Screen (UI), APIs (functions, methods), Service
- Typical types of defects in the development entities
- Understanding “Levels of Cleanliness”
- A personal process to delivery clean entities
- Black box techniques –
- Behavior modeling techniques – Decision table, State machine, Flowchart
- Test data generation techniques – Boundary value analysis, Equivalence class partitioning, Special value
- Combination techniques – At least once, Single fault, Pair-wise/Orthogonal array
- White box techniques
- Code coverage techniques- Statement, Decision, Multiple condition and Path coverage
- How to decide what code coverage technique is best suited for the test entity?
- How to interpret coverage measures? Is 90% coverage good enough?
- Resource leak
- Checklists and their role in development testing
- Role of code inspections and testing
- Test documentation -Do we document?, How much to document?, Can a script be considered documentation?
- Role of automation in development testing
- Understanding JUnit, CPPunit
- Understanding Test driven development
- How do I know that my test cases are adequate?
- How to measure efficacy of development testing -Analyzing defect escapes
- Do I need to log defects?
- Testing a new entity versus a legacy entity