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
- Catch defect as quickly as possible
- The V Model of Software Development
- Unit Testing
- Component Testing
- System Testing
- Ideal Automated Testing Pyramid
- Testing goes to fragile
- Assembling a Test Pipeline
- Continuous Integration
- Defect Prevention before Defect Detection
- Cause-and-Effect Diagram for error prevention
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
Cause-and-Effect Diagram for error prevention
References
- Unit Testing
- Build the Testing Pipeline
- Automating tests vs. Test Automation
- Gmail测试工程经理Ankit Mehta的访谈
- Patterns & Practices Acceptance Test Engineering Guide
- Continuous Integration is backed by several important principles and practices
- Continuous Integration
- What TDD Is and Is Not
- 7 Deadly Sins of Automated Software Testing
- How Is Automation Return-On-Investment (ROI) Calculated?
- Continuous Delivery in a nutshell
- Testing WPF Applications - TestComplete
- Continuous Delivery: Anatomy of the Deployment Pipeline
- Continuous integration is about keeping it all together
- YAGNI - You Aint Gonna Need It