TAP-ing Your Potential: My Test Automation Portfolio Journey
By Beth Marshall
I will remember 2020 for lots of reasons. Among the many positives, this was the year I took the plunge and embarked on a journey of creating my very own set of automation frameworks, which I called my Test Automation Profile (TAP).
Here is how I did it, including mistakes I made and tips for others if you decide you want to give this a go.
The Journey Begins
My inspiration was an article written by the incredible Angie Jones. When I read her piece entitled “10 portfolio projects for aspiring test automation engineers,” something just clicked. I am not an automation expert myself, but I always love to learn. So when I thought the idea over, creating a suite of test automation frameworks seemed to promise a lot of advantages for me:
I love my current job, but if I ever did find myself in a position where I am looking elsewhere, new employers or recruiters will be able to find a well of info on what I can actually do
I think you learn most by doing, making lots of mistakes along the way, so this was a great chance to start on my automation learning curve and improve my coding skills
I’m a big believer in improving your reputation as a tester by being visible, and a series of blog posts that accompanied my journey would be a great way to do this
I’m a very open person, and I like to share my work in the hopes of being able to help someone else in a similar position. Having actual working code in GitHub repos that can be forked and used out of the box, instead of static narrative descriptions, seemed the best way to help others.
After I committed to the idea, I decided to set myself a challenging goal. Rather than picking a single portfolio project, I wanted to demonstrate breadth in the the following areas:
Automation of different testing stacks: unit, API, UI
Tooling: Cypress, Postman, Gauge
Sites tested: Restful Booker, Opencart, my local gym (more on that later)
I set a reasonable timeframe too. I believed this was going to take me a year as I had to do it in combination with full time work and family responsibilities.
My completed project plan looked like this:
Reaching My TAP Goals
The first TAP task that I completed involved Robotic Process Automation (RPA) testing. Now, this isn’t something I hear a lot of folk in the testing community talking about, but I took an exam on this earlier in the year and it was something I wanted to explore more. It involves writing code for “robots” to perform, but has a lot in common with more well known frameworks and coding concepts in general, such as checking for elements and the use of conditional logic. It is also famed for being straightforward and user-friendly. So I figured starting with an easier jumping-off point would give me the impetus I needed to carry on.
Example block of code using RPA framework UiPath
After I was done with the RPA framework automation, I converted some of my existing NUnit tests into a bonus TAP task, since it seemed like an easy win. Then I moved on to Taiko, Postman, Cypress, and finally C# with Selenium WebDriver.
Writing the frameworks all followed a similar pattern. I am a firm believer in “learn the why, Google the how”, so the first thing I generally did was to try to find a course to learn the basics, such as the best IDE to use with a particular tool and how to get set up. Or I would try to find a GitHub repo that gave me similar information. After that, I had to modify the code to do what I wanted it to on the sites I wanted to test, from using smart locators in Taiko to find an element to upgrading to Selenium 4 to try out relative element locators. I even created short video tutorials when I’d overcome something particularly sticky:
If you are considering taking on this challenge, I can’t overstate the importance of a growth mindset with a hefty helping of resilience thrown in for good measure. As someone who is used to working in teams of test automation engineers, where the frameworks are mature and help is plentiful, I did not find this easy. No matter how “easy” the framework promised to be, there was always something that absolutely flummoxed me. Sometimes I had to walk away and come back after I’d taken a break, and other times I asked the community for help.
I always knew that these things were surmountable. But I had to break the task down into its constituent parts and keep moving forwards. I also had to know when to stop working on a framework. For example, I could have added numerous features into my C# Selenium framework that were mentioned in the course I was following, but it seemed overkill to me. Although I intended to revisit and develop the frameworks in future, I didn’t want to make perfect the enemy of good.
All of my code can be found on GitHub here.
I’m the sort of person who, once I set myself a target, I will graft my bum off (work my butt off, for you folks across the pond) to achieve it. Due to lockdown, I had a significantly larger amount of spare bum to graft with (both metaphorically and literally), so I was able to complete the whole project in under four months. I was kept going by the support I had from the amazing software testing community each time I reported that I had completed one of my TAP tasks, as well as my own sheer bloodymindedness that often helps me to push through challenges.
Mistakes And Room For Growth
I learnt a lot of lessons along the way. Most notably: don’t assume that everyone knows everything. Most of my frameworks came from online courses, which I converted to use the websites and features I wanted to test, and I kept making the assumption that when my tests didn’t work, it must be something I had done wrong. Damn you, Imposter Syndrome. Often, it was simply that the original code was so outdated it no longer worked, or else the website under test was down or had changed since the course was developed.
I also learnt the hard way not to try to automate websites which require a paid membership. For the RPA task, I decided to automate booking a session at my local gym. However, when the gym closed due to the coronavirus pandemic, I could no longer log in. This also meant that other people could not benefit from using my code. From that point forward I made sure to use only generic test sites, not third-party sites in production, as recommended by the Ministry Of Testing.
Finally, I learnt to reach out for help. People are typically generous with their time and many helped me overcome sticky obstacles. If you’re tempted to give up because you’ve hit a hump, then I’d really encourage you to lean on those around you. Use StackOverflow or resources from the testing community liberally and without shame.
Tweet of me asking for help
Results And Inspiration
When I completed the final portfolio task, I celebrated with a huge class of jammy red wine. I’d done it! I was so chuffed with myself: as the project progressed, the feedback I got reinforced my instinct that it was worth my time and commitment to get the TAP over the line. Or, better still, not to TAP out (#sorryNotSorry).
There have been several unexpected wins from my journey of creating a test automation portfolio. I’ve received lots of positive praise from the likes of Taiko, Postman and Cypress. My work has appeared several times in online communities and newsletters such as Ministry of Testing, Software Testing Weekly, and Testing Bits. This led to people asking me to pen articles or deliver talks on the TAP idea.
Making my journey (and results) public has also helped others, and I take a lot of pride in the messages I’ve received from folk who have taken something from my TAP and the blog I wrote alongside it. When I was younger I wanted to follow in my mum’s footsteps and go into teaching. I love what I do now, but being able to impart knowledge in this small way feels very close to teaching and addictively satisfying.
Positive feedback from a junior tester
I think TAPs are a great idea, especially for people looking to demonstrate and improve their automation knowledge. You will grow a lot, and if you publicize your efforts, you’ll get a lot of encouragement, praise, and visibility from the wider testing community. My advice would be to set yourself an achievable goal, don’t be afraid to ask for help, and go for it!
Beth has been working as a software tester for the last 12 years, currently as Senior Test Engineer at Safeguarding Technology firm Smoothwall. Based in Leeds, UK, she has taken advantage of the extra downtime in 2020 to start a blog and present at conferences and meetups, including Testbash Manchester.
Her next goal is to speak at her first International Testing Conference in 2021, which she hopes will be face to face.
Feel free to connect with Beth and see more of her work here:-