Rev up your career with powerful project enhancements using this comprehensive guide to test architectures and methodologies applicable to every area of testing
Key Features
Explore the full test architecture spectrum
Discover a range of challenging automation applications with real-world scenarios
Learn with easy-to-follow start-up examples including DevOps for testing, AI, XR, and cloud
Book Description
From simple websites to complex applications, delivering quality is crucial for achieving customer satisfaction. How to Test a Time Machine provides step-by-step explanations of essential concepts and practical examples to show you how you can leverage your company's test architecture from different points in the development life cycle.
You'll begin by determining the most effective system for measuring and improving the delivery of quality applications for your company, and then learn about the test pyramid as you explore it in an innovative way. You'll also cover other testing topics, including cloud, AI, and VR for testing.
Complete with techniques, patterns, tools, and exercises, this book will help you enhance your understanding of the testing process. Regardless of your current role within development, you can use this book as a guide to learn all about test architecture and automation and become an expert and advocate for quality assurance.
By the end of this book, you'll be able to deliver high-quality applications by implementing the best practices and testing methodologies included in the book.
What you will learn
Identify quality maturity levels and processes to step up your product quality
Develop the ability to think outside the box when testing methodologies
Examine the various types of tests and their applications from an unconventional perspective
Understand how to apply different technologies to the testing process
Practice and polish your testing skills with practical code exercises
Expedite your career growth with quality assurance
Who this book is for
This book is for test owners, developers, managers, manual QAs, SDETS, team leads, and systems engineers who wish to get started or improve the current QA systems. Test owners looking for inspiration and out-of-the-box solutions for challenging issues will also find this book useful.
Author(s): Noemí Ferrera
Publisher: Packt Publishing Pvt Ltd
Year: 2023
Language: English
Pages: 481
1
Introduction – Finding YourQA Level
Technical requirements
Tips for absolute beginners
Figuring out which quality assurance level your company has
What development process is being followed?
What coding language to use?
What is the relationship between developers and testers?
What is the size of the company?
Questions about the development
How to get to the next QA level in a company:
Convincing upper management of the need to test
Convincing other team members
Getting a full framework up and running
Identifying priorities, improvement areas, and skills
Identifying improvement areas
Building the right team – testing roles and skills
Scaling
Automating the automation
Moving on
Summary
Further reading
2
The Secret Passages of the Test Pyramid – The Base of the Pyramid
Technical requirements
What is inside the base of the pyramid?
Unit testing
Other dimensions
The secret passages
How to cheat on unit testing to achieve coverage and why you should not
Statement testing
Edge testing
Loop testing
Branch testing
Error testing
Parameter testing
Data providers
Do not kill the mockingbird – how to level up your unit testing with mocking
How does mocking affect TDD?
The dangers of mocking
Secret passage – automation at the base of the pyramid
Summary
Further reading
3
The Secret Passages of the Test Pyramid – the Middle of the Pyramid
Technical requirements
What is inside the middle of the pyramid?
Integration testing
Service testing
API testing
Contract testing
System testing
Understanding API, contract, and integration testing
Testing APIs
Contract testing
Integration tests with APIs
The secret passages – shadowing testing
Shadow testing with an API
Shadow testing without an API
Static versus dynamic shadow testing
The dangers of shadow testing
What shadow testing looks like
The other side of the middle of the pyramid – performance testing
The performance... of what?
Load testing
Stress testing
What should a performance test look like?
Summary
Further reading
4
The Secret Passages of the Test Pyramid – the Top of the Pyramid
Technical requirements
What is inside the top of the pyramid?
End-to-end tests/user interface tests/frontend automation
Other dimensions
Secret passages
The secret passages – making your UI tests more efficient with API calls
Covering repetitive parts
Playing with test data
Alternatives to APIs
The secret passages – headless testing
The secret passages – remote execution
The search for other tests
Scaling your tests
When to write each T in TDD
Summary
Further reading
Part 2 – Changing the Status – Tips for Better Quality
5
Testing Automation Patterns
Technical requirements
The POM for UI automation
Inheritance in the POM
A PFM – an antipattern?
Exploring a FOM
Handling localization
EPOM
RPOM
Putting it all together
Automating the automation – a practical example
Recognize automatable tasks
Write some code that does that task for you
Identifying when the code needs to be executed
Identify success measures
Dealing with dynamic object IDs
Items with dynamic locators
Angular/React dynamism
Summary
6
Continuous Testing – CI/CD and Other DevOps Concepts You Should Know
Technical requirements
What is continuous testing?
Continuous integration
Continuous delivery
Continuous deployment
Continuous testing
CI/CD and other DevOps concepts that you should know
Pipelines
Branches
The difference between a branch and a pipeline step
Secret variables
Feature toggles/flags
Load balancers
Rolling
Re-creating
Rollback
Metrics, alarms, and reports
Types of continuous tests
Unit tests/code review testing
Integration tests/system tests/contract tests/API tests
Build verification test
E2E/UI tests
Deployment testing
Performance monitoring
Tools for CI/CD
Programming languages
CI/CD tools
Packaging tools
Performance monitoring tools
Version control systems
Workflow applications
A basic CT example
1. Running tests programmatically
2. Logging
3. Creating a YAML file
4. Executing the commands
5. Getting notified
Summary
Further reading
7
Mathematics and Algorithms in Testing
Technical requirements
Algorithms, mathematics, and testing
Graph traversals
Understanding the role of data science in testing
Creating a dashboard
Reviewing some techniques for test case analysis
What should go in the BVTs?
The early approach to AI – it’s all thanks to mathematics
Identify repetitive tasks
Write code that would do these tasks for you
Identify when the code needs to be executed
Identify success measures
Summary
Further reading
Part 3Going to the Next Level – New Technologies and Inspiring Stories
8
Artificial Intelligence is the New Intelligence
Technical requirements
Is AI taking my job? Why learn about AI?
Will automation take my job?
Why should I learn about AI?
Core concepts of AI
Types of learning
Data curation
AI for testing
Games
Data analysis
Test case creation and/or automation
Grouping tests
Automated visual testing
Smart DOM finder
Testing by voice
Smart test balancer
Optical character recognition (OCR)
Test case analysis with machine learning
Testing AI apps
Types of AI apps
Considerations about AI apps
Sending your code to the Gym
Other cool AI projects and tools
Other tools for AI
How to learn more about AI
Summary
Further reading
9
Having Your Head upin the Clouds
Technical requirements
What exactly is the cloud, and how can it help you?
Creating a benchmark to measure testing performance
Testing appropriately in the cloud
Parallelizing tests
Orchestrating tests
Dangers of the cloud
Considerations for creating your own device farm
Using test cloud providers securely
Testing applications in the cloud
Thinking out of the box about the cloud
When not to use the cloud...
Summary
Further reading
10
Traveling Across Realities
Technical requirements
Getting started with XR
How to get experience in XR
VR and testing
VR development
Testing in VR
AR and testing
Finding XR bugs and testing in XR
Base layer
Middle layer
Top layer
Other testing
Testing with XR
Quaternions and why they are important in XR
Tools for XR development
XR definitions
Sumerian [5]
Unity [8]
Unreal [9]
O3DE (Open 3D Engine) [10]
Other applications
Creating an XR application with Unity
The camera
Tools for XR testing
Unit testing in Unity
XR automation
Unium [21]
Airtest Poco [22]
Hardware automation
XR emulators
The metaverse
Summary
Further reading
11
How to Test a Time Machine (and Other Hard-to-Test Applications)
Technical requirements
How to test a time machine
By analogy
Bottom-up
Challenges in game testing
Automating the impossible
Automating for a higher purpose
Record and playback tools
Last-minute tips and best practices for your automation
Architecting a system
Summary
Further reading
12
Taking Your Testing to the Next Level
Technical requirements
Challenging your career
Finding hot topics
Finding your style – horizontal versus vertical knowledge
Finding time to work on that hot topic
Quality growth
Roles for testing
Helping people in your team grow
Transitions and career opportunities
Impostor syndrome
Closing thoughts
Finding your why
Ethics in testing
The future of quality
The future of you
Summary
Further reading
Appendix – Self-Assessment
Index
Other Books You May Enjoy