Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
Happy 2019! Is this another new years resolutions post? Let’s not call it that since those seldom stick for me (or anyone for that matter I think).
This is the first year I start off as a freelancer. From what I read and hear around me, that means uncertainty, anxiety and much more. For me, that is not so much the case. I feel confident about finding new projects when needed and I look forward to learning new things in the following 12 months (and beyond).
Last year much of my time and energy went into the start of my freelance adventure. This year I want it to be about learning software testing skills and tools and work on my soft skills.
For starters I will finish the Udemy course on SoapUI. This means I need to refresh my memory on some functionality since it has been a little while since I last worked on this course. To make this specific: I want to use the first 2 weeks on 2019 to wrap up the Udemy SoapUI course.
Next up is the e-book Java for Testers by Alan Richardson. I picked this up last July as part of the Ministry of Testing challenge for 30 days of automation in testing. It was too much to finish then besides the daily challenges. I want to work hard at this and commit myself at least 5 days a week to reading/working through this book. That means I have worked through all of the book my the end of March (doing 2 chapters of the book per week).
Next up is going to be a course on Selenium and Cucumber. I plan to work on this throughout April and May. The course I am going to take for this is most likely from CodersCampus. I also have a Java, Selenium and Cucumber course on Udemy which I have taken partially in early 2018. There are some more alternatives for this incuding open source training material from Bas Dijkstra (ontestautomation.com) and training material from my previous employer where I took an excellent Selenium Webdriver course.
Next up or topics such as Maven, Git and Jenkins. I have worked with all of these but I want to get a bit more experience under my belt with them.
Also in my plan for 2019 are some extra certifications:
- Professional Scrum Master II (Currently I am certified at level I)
- ISTQB Advanced Technical Test Analyst
- ISTQB Advanced Test Manager
At the same time I want to use 2019 to further sharpen my soft and communication skills. I am considering joining toast masters meetups for this. At the same time I feel I can use some book-smarts on communication so I will probably take some time to read relevant books.
As mentioned, a very ambitious year. Of course it is only a plan and for many different reasons it can and will turn out different. I really want to take my programming, BDD, webbrowser automation and API testing knowledge and experience to a whole new level this year.
Now that it is the last day of 2018 I want to reflect on the past year. Reflecting on the past year is something I have done for the past few years and I find it very valuable. It helps me to appreciate what I achieved and it also tells me what was tough or did not go very well. This is also the time to look forward to 2019 and what my plans are.
From employment to freelance
At the start of 2018 I worked for a consulting firm as a software tester and I was very happy in doing so, in fact: I remember 1 year ago I said to myself I would not look for other employers in 2018 and enjoy my time with the employer I was at and that I would focus on following various training programs.
2018 carried on where 2017 ended, same project with the same people. A very enjoyable team and a project in Identy & Access Management. I had already agreed with my employer that they would find me a new suitable project in the first half of 2018 since my current project was coming to an end and I did not want to start up something new there (because of a long commute and I like a new environment every 2 years or so).
Early 2018 I was told they were already working on finding me a new project and it was going smoothly. Near the end of January I got a new project that would start per April 1st. Close to home and exactly the type of project I wanted to take on next.
In January however I was also contacted by another company to discuss the opportunity to start as a freelancer and join in a partnership with them. I had always considered going freelance as the ultimate career goal but never thought of it as something I would start at that time. Some more phonecalls and an in-person meeting convinced me this was something I should take up right away.
I met up with many freelancers and business owners in my network and spoke to many other testers I had previously worked with. I decided to go for the freelance opportunity but I was going to pass on the partnership. I felt (and still feel) that it did not resonate with what I wanted from working as a freelancer.
I informed my employer in due time to let them know about my plans and would thus not start in the new project they found for me.
Fast forward to April 11th which was my last day at my employer. A clean break-up and a much sooner end to my employment with them than either side expected.
April 12th which was my first day on my first project as a freelance software tester. A new field for me (broadcasting) and a very big and exciting project as well.
Right now on the very last day of 2018 I am still working on the same project and I expect to be here for at least 6 more months, possibly more. It is a great company and I see lots of extra opportunities related to testing here in which I can add value.
Training in 2018
At the start of the year my focus was mostly on improvind my Java programming and Selenium Webdriver skills.
Early 2018 my attention shifted towards learning about freelance related topics. Where to find projects, what types of projects, what administrative work does this bring, what does everything cost and how to deal with taxes.
Once I got all of the relevant knowledge and skills that I needed as a freelancer, there was time for software testing related training again.
In my project I get to do testing with API’s. I took an interesting course on SoapUI on Udemy which really got me up to speed quickly. So quickly that I actually never finished the course. I am now working on the final sections of this SoapUI course before I dive into the next topic.
In the summer I took a 30 days of automation in testing challenge, which I wrote plenty of blogposts about. Quite demanding but also very valuable. After completing this I actually found that I could use a break from the long work-related evenings. I felt like I had worked double shifts for the past 2.5 years and I needed a break badly. I have not done much besides trying to keep up with various blogs
Now that the new year is almost here I am excited again to pick up some evening work. I want to share my plans for 2019 in the next post.
For now I wish everyone a happy new year and a wonderful and healthy 2019!
One of the first challenges in #30daysoftesting was to pick a book related to automation in testing. I picked ‘Java for Testers by Alan Richardson‘. As I found out it was not the easiest pick. It requires a lot of work at the computer, writing tests. This is also what makes this book such a great choice!
So in this past month I managed to finish the first 8 chapters of the book. For me, a great result.
Around chapter 6 I noticed things become increasingly complex to me and the book becomes a bit more demanding in terms of the effort I have to put in.
What I learnt so far:
- Practice makes perfect when it comes to coding. The exercises in the book are great!
- A book is an excellent way for me to learn. I enjoy working through this from beginning to end.
- I greatly value the emphasis on coding standards/practices.
- The book is written for software testers – making it incredibly useful and relevant for me.
What I learnt in the first 7 chapters of the book:
- Installing the necessary software to program in Java
- Creating classes,
- Writing methods,
- Writing @Test methods,
- If else statements
- (for) loops
What comes next in the book?
- Random data
- Dates and times
- Properties and property files
- Math and BigDecimal
- and more…
A great book and I am definitely going to finish it. I highly recommend any testers looking to get into Java, to pick up a copy of the book and get started. It will surely help you build a solid foundation. Compared to some other resources I have used, the quality of this book is absolutely brilliant.
#30daysoftesting day 30! Yes, the last day (although there is a bonus challenge after this which I want to take as well.
If you could create any test tool, what would that tool do?
The test tool I would want to create is actually not directly a test tool. Automation in testing is still something many software testers are not comfortable with. I would have a test tool that would take the user through a step-by-step process to get a solid framework set up that ensures a solid, robust framework.
Rather than relying on tutorials from the very start for each separate functionality, you can get someone setup quickly with a framework with for example: Java, Cucumber, Selenium Webdriver and a test reporting tool (depending on whatever they selected to be a part of their framework).
Working from a solid foundation you can quickly get up and running with a basic testsuite by copying some examples that are provided. Digging a little deeper through more advanced tutorials would be a next step, but just getting a basic framework up and running in a couple of hours would be a great motivation for many aspiring test automation engineers.
I love open-source so my tool would definitely be open-source (not to say I would not include a premium version). Of course premium test tools could be supported as well. Whatever helps testers get a robust test framework up and running that suits their project, product or company.
The #30daysoftesting challenge is almost complete, today is day 29 and the challenge is:
Share how you manage test data in your automated checks
- First and foremost: Test data should be separated from your test framework. As mentioned in yesterday’s challenge where a developer on my team reviewed my automation code, I have not followed that principle consistently myself, but there always has to be room so improvement, so no worries there!
- The test data is created automatically with a script and in most cases managed in external files, so that end-users can also manage it easily if needed. It also allows me to more easily copy paste new test data directly from e-mails.
- The used test data is cleaned up after use to ensure tests always start in the exact same state when I run them again.
- Masking test data that initially comes from a production environment is more important than ever since the GDPR is live.
- Refreshing test data, to ensure it stays relevant. For example: The system under test launched in the United Kingdom but a year later they are also active in France and Germany. I want my test data to reflect this new situation and cover the added test cases this change introduces. (In my current project these possible changes are in the broadcasting world. Refreshed data can be needed when the company launches a new television channel (or they stop / sell a certain tv-channel.
There are plenty more things related to test data management. If you have any suggestions, let me know!
Happy testing 🙂
Pair with a developer and review some of your existing automation.
This time I checked ahead of time and actually did this challenge in time (before the weekend).
Quick summary of the feedback I received (I still have to implement some of these recommendations).
- Don’t repeat yourself (DRY).
- Some tests can be moved to another level.
- Not all tests add value.
- Still some flaky tests.
- Remove the Thread.sleep (This was on my to-do list already. I just like to use thread.sleep when I want to quickly add tests/checks. Refactoring this comes later).
- Some tests can be changed to be data-driven.
That’s it. Plenty things to improve on. I actually got a fair amount of compliments as well, but ofcourse I did not write those down (silly me).
Find, use and share your thoughts on a mobile testing tool
Already on day 26 of 30 days and still going strong. A mobile testing tool.
I have some prior experience with mobile testing, both with apps and mobile websites (responsive and adaptive).
Mobile testing tools I use are mostly based around testing the API behind the apps, for example:
Postman, SoapUI by Smartbear and Charles Proxy, check out this article on mobile testing with Charles Proxy. In addition I used to use a user agent switcher plugin for my firefox browser. That allowed me to view a website in the resolution and screensize combination in my browser. Not a perfect solution, but when you do not have a physical device handy, it can be the next best thing. You want to find a config file to extend the default devices in the user agent switcher with many extra devices so that you can get better device coverage.
It really depends on what you want to achieve with mobile testing. A tool like Appium together with Katalon seems worth investigating if you are looking for a more extensive mobile testing approach.
Happy mobile testing
Day 27 of #30daysoftesting:
Share all the tools, frameworks and libraries currently used in your automation along with why.
- Java based
- jUnit 5 – Unit testing
- Selenium Webdriver – Browser automation
- Cucumber – BDD
- Rest-Assured – Testing REST interfaces
#30daysoftesting day 25. Today’s topic:
Share what actions you take to make your automation maintainable.
There is actually a great thread on this on the Club of Ministry of testing, check it out here.
First thing that comes to mind when it comes to maintainability of automation is separating your framework from your test data, but there is more:
- Separating test data from the test framework. There are plenty of free examples available that are really good. For example Bas Dijkstra has a great framework available on his Github account for Webdriver, Cucumber and I believe jUnit and Rest-Assured. I have also seen some great automation framework posts on the blog of Angie Jones. Same with Nikolay Advolodkin from UltimateQA.com
- Documentation of test automation code and clear and concise descriptions.
- Follow coding standards. Test automation code is code as much as application code. (Think: KISS and DRY standards to name some).
- Work on creating a stable test environment.
That summarizes how I feel on this topic, at least in a nutshell.