How can I learn [more efficient] a new testing framework ?

How can I learn [more efficient] a new testing framework ?
Photo by Ryland Dean / Unsplash

There are so many languages and software testing frameworks out there that sometimes it feels overwhelming. You have Selenium, Cypress, Playwright, TestCafe, Protractor, Robot Framework, TestComplete, Karate, Nightwatch.js, Webdriver.io and many more. You may find yourself in a situation where a new project will require you to learn a new software testing framework, or you are interested in changing your job and actively seeking something else. Transition to a new framework can be a hassle, but what if I suggest for you a way to make the transition more simple.

If you would like to learn a new testing framework, or in the same framework use a different language, then take on the Different Angle Challenge.

Here is how it looks like:

Create 4 tests in the language and framework you know and then do it exactly the same but in the new framework and/or language.

What exactly this challenge does? You are essentially changing your methodology or on our case your framework/language while maintaining the overall goal or objective. Having the same goal will simplify things exponentially.

Let me help you out a bit with a short and simple learning path :

Use this website to test https://magento.softwaretestingboard.com/

1. Create a test that will purchase a product
2. Create a simple smoke test - eg.: check if main links on home page are working
3. Create a test that will handle search functionalities
4. Create a test that will filter the products

Structure your framework with either POM or other suitable pattern
Reuse and Organize your selectors 
[optional] Have the tests run in CI using Github Actions or other

There are other topics here that you can cover, such as API testing, database testing, component testing, visual testing, logs, reporting and many others, but lets start with the basics and then based on your project and your needs you can expand.

By following the steps I've shown you above you will gain knowledge on the following topics :

How to configure the framework to get it up and running
How to locate elements and interact with them
How to wait for the elements
How to assert
How a design pattern can be applied in the framework
[optional] How to run tests in CI using the new framework

By using this challenge, learning a new software testing framework process will be faster,

You will not perform the whole process all over again, for example once you get your selectors ready for the tests you will just reuse them. Of course, remember to keep your selectors organized,

You will learn how to debug within the new framework,

You don't need to rethink the testing strategies or scenarios,

You will have a direct comparison between frameworks on how they handle the exact same task. For example some software testing frameworks like Cypress need a bit more knowledge on how to test cross-origin, when dealing with flows of a testing scenario that requires multiple domains.

You will gain confidence to tackle any new framework that will appear in the future.


Of course, what other way to encourage you in doing this than to show you how I did the challenge:

  1. Different Angle Challenge done with Cypress and Javascript
  2. Different Angle Challenge done with Python Selenium and Pytest
  3. Different Angle Challenge done with Typescript and Playwright (Work in progress)

P.S.: Let me give you a little secret if you think this is too much work. Do only test nr 1. And continue only if you feel like. You will still get 90% of the benefits.

Hit the clap button if you found this useful. Or even buy me a coffee if you want to motivate me even more.