This essay is a part of my knowledge sharing session slides which are shared for development and quality team. I want to share some contents here and hope that may trigger some brainstorming or thoughts about how could we do better test automation by development team in the software development cycle.
The related sessions:
Quick Index
Understanding tests better
Test Strategy
One of the key decisions is what kinds of tests should be automated and which approach to testing should be used for manual test.
Catch defect as quickly as possible
The V Model of Software Development
Unit Testing
Unit testing can be on little things like methods/functions or bigger things like modules and classes.
Component Testing
Component testing are used for testing packages, individual executables or subsystems.
System Testing
System testing is done at the level of the whole product and can include a range of system sizes:
individual systems or integrated workflows through multiple systems that have to interact.
Ideal Automated Testing Pyramid
Testing goes to fragile
Assembling a Test Pipeline
Continuous Integration
Defect Prevention before Defect Detection
The ultimate goal of any development process is to build the right product of high quality and to build it with minimum waste.
Defect Prevention techniques address how to prevent “error” before it is injected:
- Root Cause Analysis of problem
- Education and training
- Software process maturity and improvement
Defect Detection techniques address how to find the faults:
- Testing
- Reviews and inspection
- Formal verification