Preface
- Purpose of the book
- Who the book is for?
- Send me feedback
Introduction
- What is End-to-End Software Testing?
- E2E Testing is mostly a form of functional testing
- E2E Testing: Automation vs Manual
- E2E Testing involves the entire development team
- E2E Testing vs User Story Acceptance Testing
- E2E Testing vs Regression Testing
- Good E2E Regression Testing enables frequent releases
Wrong Mindset: Developer-Focused Approach
- E2E Test Automation is Black-Box Testing!
- Scripting Language, Frameworks and Tools
- Most Software Developers Lack Proficiency in Test Automation
- Hard to Steer Away even after it is Proved Wrong
Wrong Opinions
- Anti-Pattern: E2E Test Automation is easy
- Anti-Pattern: E2E Test Automation is not feasible, unit/API testing is enough
- Anit-Pattern: Don’t Really Believe in Functional Test Automation
- Anti-Pattern: Assuming E2E UI Test Automation Is Either Trivial or Impossible
- Anti-Pattern: Assuming the Primary Effort in E2E Test Automation Is Test Creation
- Anti-Pattern: Aiming for 100% Coverage in Test Automation
Hypes
- Anti-Pattern: Keep Migrating to a new Framework
- Anti-Pattern: Codeless Test Automation
- Anti-Pattern: Cypress Component Testing
- Anti-Pattern: Visual Regression Testing
General Practices
- Anti-Pattern: Record and Playback
- Anti-Pattern: Using Gherkin (Cucumber, SpecFlow) Frameworks in E2E Test Automation
- Anti-Pattern: E2E Test Scripts are Not in an Independent Git Repository
- Anti-Pattern: Semi-Automated Execution
- Anti-Pattern: Defect Tracking for Failed Automated E2E Tests from Regression Testing
Scripting Practices
- Anti-Pattern: Use of node_modules or alike
- Anti-Pattern: Test Interdependency
- Anti-Pattern: Test script fails after the first successful run
- Anti-Pattern: Excessive low-value alternative and edge path tests
- Anti-Pattern: Lack reliability
- Anti-Pattern: Accept Extremely Inefficient Test Creation
- Anti-Pattern: Long suite execution
- Anti-Pattern: Use of “Await” and “Promises”
Web Test Automation
- Anti-Pattern: Headless Browser Testing
- Anti-Pattern: Cross Browser Testing
- Anti-Pattern: Not Using Raw Selenium WebDriver
- Anti-Pattern: ‘Design a new Test Automation Framework’
- Anti-Pattern: ‘Auto-Wait’
- Anti-Pattern: ‘Test-Replay’
API Testing
- Anti-Pattern: Fixated with GUI tools such as SoapUI or Postman
- Anti-Pattern: Lack of text manipulation skills
- Anti-Pattern: Lack of Continuous Execution
- Anti-Pattern: Lack of dynamic test data management capability
- Anti-Pattern: Confined to a proprietary tool
Mobile/Desktop Test Automation
- Anti-Pattern: Attempting Mobile Test Automation Before Achieving Successful Web Test Automation
- Anti-Pattern: Not using raw Appium
- Anti-Pattern: No Parallel Testing Lab
- Anti-Pattern: Fixated with Real Device Testing
Test Execution
- Anti-Pattern: Execute a Suite in the Development Tool
- Anti-Pattern: Assuming Automated Tests Will Always Pass After Creation
- Anti-Pattern: Run in CI Servers
- Anti-Pattern: Full Test Suite Runs Overnight Only
- Anti-Pattern: Prioritizing Tests in Execution
- Anti-Pattern: Don’t run the whole suite often
- Anti-Pattern: “Parallel Execution on one machine”
Performance Testing
- Anti-Pattern: Conducted too late
- Anti-Pattern: Don’t run performance testing frequently
- Anti-Pattern: Skip AJAX Operations
- Anti-Pattern: Optimizing Without Automated End-to-End Regression Testing
- Anti-Pattern: Lack the comparison history
Load Testing
- Anti-Pattern: Only Testing Simple Operations
- Anti-Pattern: Protocol-based Load Testing for Modern Dynamic Web Apps
- Anti-Pattern: Overestimating the Required Load
- Anti-Pattern: Rely on Expensive Tools or Patch with Money
- Anti-Pattern: Don’t run it frequently
Leadership
- Anti-Pattern: Just Love The Idea of Test Automation, But No Commitment
- Anti-Pattern: No Time or Resources Allocated for Automated Test Stabilization and Maintenance
- Anti-Pattern: Developers delay fixing newly discovered defects by Continuous Testing
- Anti-Pattern: Lack of Team-Wide Adoption of E2E Test Automation
- Anti-Pattern: No Training Provided
- Anti-Pattern: Not Seeking External Help
AI Test Automation
- Anti-Pattern: “AI Test Automation Is Good Enough”
- Anti-Pattern: Using AI to Generate Many Test Scenarios
- Anti-Pattern: Very Slow AI Test Execution
- Anti-Pattern: Lack of Flexibility
- Anti-Pattern: Unaware of Big Cost
- Summary
Miscellaneous
- Anti-Pattern: Testing in Production
- Anti-Pattern: Manual and Performance Testing Operate in Isolation, Not taking Advantage of Automated E2E Testing
- Anti-Pattern: Production Releases Do Not Require Automated End-to-End Testing Reports
Afterword
- My 35-Word Functional Test Automation Strategy
- My Test Automation Formula
Appendix I: Anti-Patterns List
Appendix II: Benefits of E2E Test Automation and Continuous Testing
- To Wise Executives
- To Software Managers
- To Business Analysts
- To Developers
- To Software Testers (Auto & Manual)
- To Customers
Resources
- Books
- Tools
- Blog