Book Image

How to Test a Time Machine

By : Noemí Ferrera
Book Image

How to Test a Time Machine

By: Noemí Ferrera

Overview of this book

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.
Table of Contents (19 chapters)
1
Part 1 Getting Started – Understanding Where You Are and Where You Want to Go
6
Part 2 Changing the Status – Tips for Better Quality
10
Part 3 Going to the Next Level – New Technologies and Inspiring Stories
Appendix – Self-Assessment

A PFM – an antipattern?

In a PFM, the initialization of all the objects is done in a method called initElements, where the driver that controls the objects is passed as a parameter and the page gets initialized. The benefit of this is that the code for the pages is easier, as we only need the definition of the elements and/or locators (@FindBy) and not any repetitive code for finding those elements (driver.findElement(webElement)), which will be replaced by the use of the webElement object directly.

The page class in this case looks like this:

PageClass.java

package package com.packtpub.PFM;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
public class PageClass {
    @FindBy(id=" __BVID__336")
    WebElement searchElement;
    public PageClass(WebDriver driver) {
   ...