Preface
- Becoming familiar with an elephant
- Automation and chicken soup
- Lasting value
- A bit of terminology
Reading guide
- If you want it all
- If you want to set up or improve automation
- If you have a specific question
About the author
- Part one: Automation in Testing
1 The PUPPET model
- (Automation as a) Product
- Understanding (the essence)
- People
- Process
- Execution
- Techniques
- A complete and simple overview
2 Success (through strategy)
- The goal (or: the why)
- The vision (or: the what)
- The plan (or: the how)
- Part two: Understanding
3 Testing
- Testing a car
- Many components
- Where to test
- What does the business need?
- Repeated testing
4 Automation in testing
- Automation
- Testing cannot be automated
5 Automating is not testing
- Automating is software engineering
- Skill
- Technical debt
- Other skills relating to automation
- Three roles
6 It is not about the tool
- The tool is not the solution
- The tool is (probably) not the problem
7 The goal and scope
- Good goals
- Pick one – but feel free to adjust later
- Scope
8 The value of an automated check
- Is it being run?
- Is it telling you something interesting?
- Is it reliable?
- Is it fast enough?
- What happened here?
- Is it small enough?
- Is it independent?
- Two versions?
- Effective and efficient
9 Writing good checks
- Readable
- Understandable
- Effort
- Tooling
- Test data
- Data-driven
10 The secrets of the great pyramid
- Which one is the real pyramid?
- Using the original pyramid effectively
- What if there is no UI?
- Checks or instructions?
- The pyramid for other goals
- Many checks do not use one interface
11 The design of an automation solution
- The conceptual picture
- The technical picture
- Integrated tools
- Part three: Automation as a product
12 Automation is a product
- A paint factory
- The machine is a product
- Automation is also a product
13 Decisions (and issues)
- What?
- Who?
- What about the product owner or an external expert?
- How
14 The automation lifecycle
- The right time to (re-)start
- Further preparation
- Lifecycle stages
15 The goal
- Productivity
- Efficiency
- Fast feedback
- Quality
- Cost
- Sustainability
16 Scope
- Product
- People
- Processes
- Execution
- Techniques
17 Who automates?
- Decentralized internal automation
- Centralized internal automation
- Hybrid internal automation
- Outsourcing
18 The risk management stages
- The Proof of Concept
- Tool selection
- The roadmap
- The pilot stage
19 The later stages: Stability and decline
20 Additional support
??? Additional valid goals
- Happy testers
- Executable specifications and living documentation
??? Poor goals
- Automation because of Agile or Continuous Integration
- Let automation find more bugs
- ‘Automate everything’ and the like
- Focus on business value using ‘why?’
- Part four: People
21 Roles, knowledge, and skills
22 Learning and teaching
- Knowledge
- Skills
- Teaching
23 Culture
Team roles
Other roles
Manager
- Goal and objectives
- Support
- Culture
- Provide training and coaching
Hiring manager
??? The tester
- Part five: Processes
The test case lifecycle
Defining objectives
Optimizing value
Agile specification
Automating
Executing
Analysis
- Part six: Execution
Interfaces and deployment
- The kinds of interfaces
- Synchronous outgoing interfaces
- Considering all available interfaces
- Testability
- Deployment
Exploring further: The attributes of automated checks
- What does all this mean for you?
Test environments
- Usage
- Infrastructure
- Maintenance
Data
- Static and dynamic data
Selection and priority
Reporting
CI / CD
Speed
- Fully automated and reliable
- Automate or deploy differently
- Concurrent execution
- Prioritising checks
- Additional considerations
- Part seven: Techniques
- Related topics
Architecture
- Value
- Lasting value (at reasonable cost)
- Cost
Designing the automation solution
- Step one: Who will work with it?
- Step two: Which SUT interfaces?
- Step three: Integrated or not?
- Step four: Proof of Concept
- Step five: Tool selection
- Separation of concerns
- Tool and vendor independence
- Test engine independence
Selecting the tools
- The runner
- Interface tools
Engineering
- Page object
Test data
Introduction
- A bit of terminology