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