Skip to content

Latest commit

 

History

History
95 lines (72 loc) · 5.3 KB

README.md

File metadata and controls

95 lines (72 loc) · 5.3 KB

Test Automation Workshop

Background

This is the material for my workshop at GovTech STACK Conference 2024 (Slides).

This workshop will take folks on a learning adventure of how software engineers in GovTech use Automated Testing in building high-quality software products for public good. Attendees will be introduced to the different layers of the Testing Pyramid and the tools that software engineers in GovTech use to support that layer of automated testing.

Attendees will be given a number of self-paced hands-on labs to have a taster on the different kind of testing tools available. Through these, participants will learn about different kinds of test automation tools used in software engineering. Specifically for full-stack web development.

Pre-requisites (for attendees)

  • Basic understanding of programming concepts.
  • Familiarity with JavaScript, Python or Java programming languages.
  • Familiarity with Git and GitHub (you will need a GitHub user account).
  • Familiarity with web development concepts.
  • Familiarity with REST API concepts.

Concept

Through this workshop, I aim to introduce the different testing tools used by modern full-stack software engineers in developing web applications.

We will cover the tools used in the Test Pyramid: Unit Testing, Integration Testing and End-to-End Testing.

Test Pyramid

Sample Application

We will use a To Do List app to help illustrate the concepts. The To Do List app will have these features:

  • List of To Do Items
  • Add new To Do Item
  • Delete To Do Item
  • Edit a To Do Item
  • Mark Item as Done / Not Done
  • Clear Completed To Do Items from the list (to be implemented as part of the exercises)

Components

  • Frontend App
    • The To Do List frontend is a web application built with JavaScript.
  • Backend App
  • End-to-End Tests
    • This will automate a web browser and interact with the application like a normal user. This way, we have a repeatable and predictable way of verifying the features.

Hands-on Lab Exercises

We will be using GitHub Codespace (via Devcontainers) for these exercises. You can use this IDE3 in the browser or in Visual Studio Code on your laptop.

Other ways of running this workshop code

Coding with AI

Footnotes

  1. Single Page Application

  2. Object Relational Mapping 2 3

  3. Integrated Development Environment