Skip to content

basdijkstra/a-test-automation-project

Repository files navigation

A test automation project

There is a lot of good content out there on how to build tests with different tools. However, what's often lacking is the opportunity to put what you have read, seen or heard into practice.

That deliberate practice, though, is essential when you really want to learn a new skill. Reading, watching or listening alone isn't going to get you there (ever tried to learn swimming just by watching other people swim?).

This is the reason I published this project. It will give you an opportunity to get your hands dirty on a test automation challenge, covering several different tools and technologies that a test automation engineer encounters when they work on real-life projects.

By going through this project step by step, you will build a solution that serves as a portfolio project for your current or prospective employer.

This project is an ongoing piece of work, meaning that updates and new challenges will be added over time.

What am I going to learn?

This project covers:

How is the workshop material presented?

This project will not hold your hand through every step. I will not provide you with instructions that tell you exactly what to do and what to type where. The point of this project is to figure things out and build things yourself.

I will, however, make sure that there is a logical progression from one step to the next, and I will provide information on the 'why?' and 'what?' (but again, not the 'how?') for every step. Links to relevant learning material will be included where applicable, for your review.

If you're really stuck, by all means have a look at one of the reference implementations for inspiration. The goal, though, is to build a solution yourself. Getting stuck, trying to find out how things work and the frustration that comes with this is part of the learning process.

What tools can I use for this project?

That's up to you. I deliberately set up this project to be tool- and programming language-agnostic. So, whether you want to use Java, C#, Python, JavaScript with your libraries and test frameworks of choice, or if you want to use low-code tools like Robot Framework, it's up to you.

I will provide reference implementations for some of the most popular languages, tools and libraries, and I am happy to include yours, too.

What if I'm stuck?

Are you stuck? Awesome! That's how you know you're learning something new. Here are some tips to help you get unstuck:

  • Ask an experienced coworker for help
  • Pair up with a fellow learner
  • Ask Google / ChatGPT / StackOverflow / ...

If you're really, really stuck and still can't find an answer, please open an issue on this repository and I (or maybe someone else) will gladly have a look at it.

How can I get my work reviewed?

Here are some ideas to get feedback on your code:

  • Pair program with a fellow learner while working on the exercises
  • Ask an experienced coworker to have a look at your code

Unfortunately, I don't have the capacity to give detailed feedback to individuals on their code myself.

Reference implementations

Link Language Test runner API library UI library CI platform
Click C# NUnit RestAssured.Net Playwright GitHub Actions

Can I contribute to this project?

Absolutely! There are several ways to do this:

  • Provide a reference implementation for the project
  • Submit a pull request containing improvements or additions to the workshop material
  • Spread the word about this project at your company, on social media, or any other place

Is this workshop available as an in-house project for my organization?

I am more than happy to discuss options to bring this project to your organization. We can then tailor the content to your specific requirements, and we can perform the exercises in your context, using your technology stack and applications. Send me an email at bas[AT]ontestautomation[DOT]com for more details.

About

A test automation project for everyone to help them learn how to build and run their own tests locally and in CI.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published