Prerequisites and Benefits of the Course

Learn about the tools and application workflow used throughout the course and the benefits of taking the course.

JavaScript prerequisites

Understanding the JavaScript programming language will help learners get the most out of this course. The course will use modern JavaScript syntax, including const and let variable declarations, arrow functions, and template strings. Therefore, knowledge of at least ECMAScript 2015, also known as ES6, is ideal. Here is an example of ES6 syntax:

Press + to interact
// const variables are used for constant data such as a social security number
const FIRST_NAME = "John";
// let variables are used for data that can change such as the day of the week
let currentAge = 21;
/*
We could use a function declaration such as:
function personInfo(name, age) {
return "The person " + name + " is " + age + " years old.";
}
However, we will use arrow functions and template strings in most cases.
*/
const personInfo = (name, age) => `The person ${name} is ${age} years old.`;
console.log(personInfo(FIRST_NAME, currentAge));

Let’s explain the code in the example above.

  • In line 2, we declare a const variable named FIRST_NAME. This variable is created in all caps because it’s a common practice for declaring constant variables.
  • In line 4, we declare a let variable named currentAge.
  • In line 14, we declare an arrow function named personInfo. Inside the personInfo function, we’ll use a template string to create a string including the variables.

Basic tooling prerequisites

The main focus of this course is testing applications. However, a basic understanding of the building blocks of React applications using the Next.js framework is useful. This course will provide readers with essential information in a later lesson focused on exploring the application to test. Finally, a basic knowledge of client-server communication with application programming interfaces (APIs) using JavaScript Object Notation (JSON) data via the Hypertext Transfer Protocol (HTTP) will help. The following illustration shows a basic client-server workflow:

The client makes a GET request to the /products API endpoint in the illustration above. The server responds by sending products data in JSON format.

Developing modern applications

In today’s digital world, companies value software development teams who can quickly build and deliver products to production without sacrificing quality. It’s all about surpassing competitors to market and providing valuable, defect-free products to retain current customers and add new customers. Test engineers (also known as quality engineers or QA) play an essential role in delivering quality software. Today, most teams use the agile approach to building and providing software. The agile approach employs an iterative process to deliver working software to customers quickly. Steps to build and deliver increments include planning, design, development, testing, and deploying to production.

The image above illustrates the typical agile workflow. The first step always involves creating a plan that details how to build the work. The orange arrows connecting “Design,” “Develop,” and “Test” mean that a team may repeat those steps multiple times before the final production: “Deploy.” There are three common frameworks in agile—Scrum, kanban, and Extreme Programming (XP).

Projects that are built using the Scrum framework typically consist of small colocated teams of three to ten members.

A Scrum team consists of the following people:

  • Product owner
  • Scrum Master
  • Developers

The Scrum Master ensures that the team effectively implements Scrum. The product owner manages the product backlog and maximizes the product’s value built by the team. Finally, the developers play a role in creating the final product to deliver to production.

Note: A developer is any team member who works on the product, so there are no specific job titles.

In the illustration above, all three circles are intertwined. This is because in agile, the whole team is responsible for providing quality software—everyone plays a part in testing the product. However, the test engineer brings specialized testing skills to help the team reach that objective.

Learning modern test skills and strategies

Test engineers need to have effective and efficient strategies and skills to test software in fast-paced agile environments.

Test engineers can assess the level of quality and reduce bugs for a product using several test types. Therefore, this course will teach modern testing strategies and tools to implement and automate the execution of said strategies. As a result, learners will gain essential skills to succeed and advance in a career in test engineering or in other roles applying testing activities. In addition, learners will gain the confidence needed to add value to teams in testing and quality assurance.