The Sharing Knowledge series is meant to bring forward the various ways in which professionals in our organization put together their efforts, in order to fulfill their learning needs, and take advantage of the available resources.
Our QA automation study group
One of these learning initiatives is the QA Automation study group, which was formed to help RomSoft testers write their own automated tests and not depend so much on the developers in their daily work. They meet every week in one of our colorful meeting rooms and dive into the secrets of object oriented programming.
To find out the “whats”, the “hows” and the “whys”, I talked to Paula, the driving force behind the OOP study group and to Stefan, the trainer for this group. They shared with us the challenges and benefits of group learning, each from their own, personal perspective.
Paula Alixandrov: “Every meeting is like a two-hour brainstorming”
Paula is a dedicated test engineer who’s been working at RomSoft since 2013. When she is not testing software applications, she works on improving her communication and leadership abilities, and she won a prize in a Toastmasters competition last year.
Who had the initiative of the QA automation group?
As software testers, it never hurts to know a bit of programming. Moreover, it is required if you want to do automation testing. The fun thing is that the company encourages a couple of hours of study time per week, which means that our study group would cover this, and give us the opportunity to learn something that has true added value for us.
Why did you feel the need to organize this study group?
We used to organize some meetings with the testing community in Iasi but at some point things dragged and we stopped organizing new editions. Also, in our organization, we started to approach software testing differently. We were assigned per project and stopped working as an independent team. There are pros and cons to this, of course, but one of the cons is that we kind of got disconnected from the other testers in the company.
So we felt the need to get together sometimes, in formal or less formal environments, to see how we can keep each other up to date and how we can help each other. The first idea was to meet and learn Selenium. But things didn’t really take off.
Also, the biggest challenge we have in our work is that we kind of depend on the programmers to help us “tame” the code. In some projects we use testing frameworks written by colleague developers – but they are dedicated to the specifics of that project. And even with such a framework, we would still need developers to write helpers, so that we can easier access functionalities, get access to ID’s, etc. And the problem is that their time is also limited.
I think every software tester secretly wants (or should want) to know how to write automated tests. So that we don’t depend too much on the developers.
The next time we met, we dropped the idea to learn Selenium (you can learn that online, anyway) and decided to find somebody in the company who could teach us basic programming, so we can do automated testing independently from the developers.
How did you pick the trainer?
We needed to bring along a C# developer, because most of the applications are written in C#. And this is where Stefan enters the scene, with the comment that he expected it to be a 2-3 meetings engagement, but things turned out a bit different.
The first challenge for us was to synchronize our paces because we were really novices about programming and sometimes Stefan needed to go over things more than once. And a secret I learned is to get over the prejudices, and ask a lot of questions, even for the things that didn’t seem important.
How many people participate to a study group usually?
Usually, about eight people show up to every meeting.
I noticed that people prefer to move their other priorities around in order to participate, and I guess that proves the big added value they feel they are receiving from the group.
What do you actually study at the group?
We study C# basic programming and how to write automated test cases. After three or four meetings where we discussed theoretical things, we decided we needed to choose a project in the organization where testing is already fully automated. The project is called Office Timeline.
Do you also need to study individually? Do you have homework?
At the moment, during our meetings, we are writing automated test cases for Office Timeline, where we all have access through GIT (a continuous integration tool) and where we can check-in our work, and also see the tests written by our colleagues. At some point we will have homework, but we still need to go through all the basics.
What programming skills does a software tester need?
A software tester should have basic programming knowledge: how to write a method, a class, a function, how to call them, access identifiers…
What is the coolest thing you’ve learned?
For example, in one meeting, although I had a different opinion, I decided to hear Stefan’s solution for a specific test all way through. And I was surprised by his way of thinking and the solution he thought of. I think it is very interesting for a tester to find out a developer’s point of view. And of course, it goes both ways.
What’s next?
We want to write a testing framework, it’s actually in works.
What are your benefits as a team from these meetings?
It feels good to know that we have support to learn and develop new skills. That we can look beyond the daily tasks, and that initiative is welcome. Also, this is good training, every meeting is like a two-hour brainstorming where we can see how each of us sees the process of building a test, and ultimately, how different points of view can lead to valid results. Or at least useful learning experiences.
Stefan Dascălu: “This group is helping me learn how to teach”
Next, I talked to Stefan, the trainer of the QA automation study group, as I wanted to see how things look like from his perspective. Stefan a dedicated software engineer, always inclined to land a hand to colleagues or teams who need his expertise.
What are the challenges you had to deal with in this program?
The technical challenges are minor, like the fact that some of the functionalities Selenium offers are usually not presented by most online courses you can find. You end up looking stuff up and find a whole new set of functionalities that you didn’t think the software was capable of.
The non-technical challenges, I would say, refer to getting the right balance between what I want to teach them and what they have to do during a normal work day. In a software project, the tester should bring a perspective that is different from that of the programmer’s.
My purpose in the end is that they learn as much as possible from a developer’s point of view, but not affect the way they see things from a tester’s point of view.
Can you give us an example of an automated test you are writing at the group?
Sure, as long as you don’t use it too much, as this is not the final version of the code 🙂
What should software testers learn in this program?
They should gain general OOP knowledge. The goal is that, at the end of this program, they are able to write their own tests, to isolate code areas that could be used for multiple tests, in order to avoid duplicates, in other words to make their work easier.
Of course, problems will still arise. If it’s a known problem, they can access it through the GIT sources, if it’s a new problem, they can always ask for the help of a developer.
For the web part, in the end, they should know how to address specificity in CSS and choose the right identifiers so that they don’t have to rewrite the test every time the developer makes a change.
How would you describe this entire experience?
Coming from a longer period of having to deal exclusively with developers, I have the tendency to speed up, and speak fast, and not wait for feedback from my interlocutors. This group is helping me learn how to teach.
To sum up…
Most of the times, especially in the IT industry, we are educated to be good self-learners, as technologies are rapidly changing and expectations are set really high. Actually, you will see the self-learning ability mentioned in so many job descriptions out there, that it’s almost cliché.
But in many instances it’s easier to learn from others. And some of us learn a great deal by teaching others. The obvious thing is, we can team up to share our knowledge. And, apart from getting to the technical insights a lot easier, as a bonus, we learn communication, teamwork and empathy.
More to come
Curious to read more information about our knowledge sharing experiences? Stay tuned, we’ll publish more articles soon on this blog.