Full Stack Testing

Book description

Testing is a critical discipline for any organization looking to deliver high-quality software. This practical book provides software developers and QA engineers with a comprehensive one-stop guide to testing skills in 10 different categories. You'll learn appropriate strategies, concepts, and practical implementation knowledge you can apply from both a development and testing perspective for web and mobile applications.

Author Gayathri Mohan offers examples of more than 40 tools you can use immediately. You'll acquire the skills to conduct exploratory testing, test automation, cross-functional testing, data testing, mobile testing, and visual testing, as well as tests for performance, security, and accessibility. You'll learn to integrate them in continuous integration pipelines to gain faster feedback. Once you dive into this guide, you'll be able to tackle challenging development workflows with a focus on quality.

With this book, you will:

  • Learn how to employ various testing types to yield maximum quality in your projects
  • Explore new testing methods by following the book's strategies and concepts
  • Learn how to apply these tools at work by following detailed examples
  • Improve your skills and job prospects by gaining a broad exposure to testing best practices

Publisher resources

View/Submit Errata

Table of contents

  1. Foreword
  2. Preface
    1. Why I Wrote This Book
    2. Who Should Read This Book?
    3. Navigating This Book
    4. Conventions Used in This Book
    5. O’Reilly Online Learning
    6. How to Contact Us
    7. Acknowledgments
  3. 1. Introduction to Full Stack Testing
    1. Full Stack Testing for High Quality
    2. Shift-Left Testing
    3. Ten Full Stack Testing Skills
    4. Key Takeaways
  4. 2. Manual Exploratory Testing
    1. Building Blocks
      1. Exploratory Testing Frameworks
      2. Exploring a Functionality
    2. Manual Exploratory Testing Strategy
      1. Understand the Application
      2. Explore in Parts
      3. Repeat Exploratory Testing in Phases
    3. Exercises
      1. API Testing
      2. Web UI Testing
    4. Perspectives: Test Environment Hygiene
    5. Key Takeaways
  5. 3. Automated Functional Testing
    1. Building Blocks
      1. Introduction to Micro and Macro Test Types
    2. Automated Functional Testing Strategy
    3. Exercises
      1. UI Functional Tests
      2. Service Tests
      3. Unit Tests
    4. Additional Testing Tools
      1. Pact
      2. Karate
      3. AI/ML Tools in Automated Functional Testing
    5. Perspectives
      1. Antipatterns to Overcome
      2. 100% Automation Coverage!
    6. Key Takeaways
  6. 4. Continuous Testing
    1. Building Blocks
      1. Introduction to Continuous Integration
      2. The CI/CT/CD Process
      3. Principles and Etiquette
    2. Continuous Testing Strategy
      1. Benefits
    3. Exercise
      1. Git
      2. Jenkins
    4. The Four Key Metrics
    5. Key Takeaways
  7. 5. Data Testing
    1. Building Blocks
      1. Databases
      2. Caches
      3. Batch Processing Systems
      4. Event Streams
    2. Data Testing Strategy
    3. Exercises
      1. SQL
      2. JDBC
      3. Apache Kafka and Zerocode
    4. Additional Testing Tools
      1. Test Containers
      2. Deequ
    5. Key Takeaways
  8. 6. Visual Testing
    1. Building Blocks
      1. Introduction to Visual Testing
      2. Project/Business-Critical Use Cases
    2. Frontend Testing Strategy
      1. Unit Tests
      2. Integration/Component Tests
      3. Snapshot Tests
      4. Functional End-to-End Tests
      5. Visual Tests
      6. Cross-Browser Testing
      7. Frontend Performance Testing
      8. Accessibility Testing
    3. Exercises
      1. BackstopJS
      2. Cypress
    4. Additional Testing Tools
      1. Applitools Eyes, an AI-Powered Tool
      2. Storybook
    5. Perspectives: Visual Testing Challenges
    6. Key Takeaways
  9. 7. Security Testing
    1. Building Blocks
      1. Common Cyberattacks
      2. The STRIDE Threat Model
      3. Application Vulnerabilities
      4. Threat Modeling
    2. Security Testing Strategy
    3. Exercises
      1. OWASP Dependency-Check
      2. OWASP ZAP
    4. Additional Testing Tools
      1. Snyk IDE Plug-in
      2. Talisman Pre-Commit Hook
      3. Chrome DevTools and Postman
    5. Perspectives: Security Is a Habit
    6. Key Takeaways
  10. 8. Performance Testing
    1. Backend Performance Testing Building Blocks
      1. Performance, Sales, and Weekends Off Are Correlated!
      2. Simple Performance Goals
      3. Factors Affecting Application Performance
      4. Key Performance Indicators
      5. Types of Performance Tests
      6. Types of Load Patterns
      7. Performance Testing Steps
    2. Exercises
      1. Step 1: Define the Target KPIs
      2. Step 2: Define the Test Cases
      3. Steps 3–5: Prepare the Data, Environment, and Tools
      4. Step 6: Script the Test Cases and Run Them Using JMeter
    3. Additional Testing Tools
      1. Gatling
      2. Apache Benchmark
    4. Frontend Performance Testing Building Blocks
      1. Factors Affecting Frontend Performance
      2. RAIL Model
      3. Frontend Performance Metrics
    5. Exercises
      1. WebPageTest
      2. Lighthouse
    6. Additional Testing Tools
      1. PageSpeed Insights
      2. Chrome DevTools
    7. Performance Testing Strategy
    8. Key Takeaways
  11. 9. Accessibility Testing
    1. Building Blocks
      1. Accessibility User Personas
      2. Accessibility Ecosystem
      3. Example: Screen Readers
      4. WCAG 2.0: Guiding Principles and Levels
      5. Level A Conformance Standards
      6. Accessibility Enabled Development Frameworks
    2. Accessibility Testing Strategy
      1. Accessibility Checklist in User Stories
      2. Automated Accessibility Auditing Tools
      3. Manual Testing
    3. Exercises
      1. WAVE
      2. Lighthouse
      3. Lighthouse Node Module
    4. Additional Testing Tools
      1. Pa11y CI Node Module
      2. Axe-core
    5. Perspectives: Accessibility as a Culture
    6. Key Takeaways
  12. 10. Cross-Functional Requirements Testing
    1. Building Blocks
    2. CFR Testing Strategy
      1. Functionality
      2. Usability
      3. Reliability
      4. Performance
      5. Supportability
    3. Other CFR Testing Methods
      1. Chaos Engineering
      2. Architecture Testing
      3. Infrastructure Testing
      4. Compliance Testing
    4. Perspectives: Evolvability and the Test of Time!
    5. Key Takeaways
  13. 11. Mobile Testing
    1. Building Blocks
      1. Introduction to the Mobile Landscape
      2. Mobile App Architecture
    2. Mobile Testing Strategy
      1. Manual Exploratory Testing
      2. Functional Automated Testing
      3. Data Testing
      4. Visual Testing
      5. Security Testing
      6. Performance Testing
      7. Accessibility Testing
      8. CFR Testing
    3. Exercises
      1. Appium
      2. Appium Visual Testing Plug-in
    4. Additional Testing Tools
      1. Android Studio’s Database Inspector
      2. Performance Testing Tools
      3. Security Testing Tools
      4. Accessibility Scanner
    5. Perspectives: The Mobile Test Pyramid
    6. Key Takeaways
  14. 12. Moving Beyond in Testing
    1. First Principles in Testing
      1. Defect Prevention over Defect Detection
      2. Empathetic Testing
      3. Micro- and Macro-Level Testing
      4. Fast Feedback
      5. Continuous Feedback
      6. Measuring Quality Metrics
      7. Communication and Collaboration Are Key to Quality
    2. Soft Skills Aid in Building a Quality-First Mindset
    3. Conclusion
  15. 13. Introduction to Testing in Emerging Technologies
    1. Artificial Intelligence and Machine Learning
      1. Introduction to Machine Learning
      2. Testing ML Applications
    2. Blockchain
      1. Introduction to Blockchain Concepts
      2. Testing Blockchain Applications
    3. Internet of Things
      1. Introduction to the IoT’s Five-Layer Architecture
      2. Testing IoT Applications
    4. Augmented Reality and Virtual Reality
      1. Testing AR/VR Applications
  16. Index
  17. About the Author

Product information

  • Title: Full Stack Testing
  • Author(s): Gayathri Mohan
  • Release date: June 2022
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781098108137