Test engineering & QA: Why we often play with a software product until we break it
Posted 1 year ago by Anke Corbin
Petr Večeřa, a software engineer at profiq specializing in test engineering, shares his thoughts on his role as a technical QA and test engineer. Petr started at profiq three years ago in the Tech Research position where his task was to develop a prototype of test automation for a company from Silicon Valley. Now he is in charge of one of the QA teams and he is responsible for several products.
Q: Your position is called a Software Engineer but its goal is testing – how does it go together?
When you speak of testing, I think that everyone imagines manual testers. It means work that can be done by almost anybody. At profiq it is different as we use an engineering approach to testing. You have to have certain technical knowledge and be able to program in at least one language. But it is not necessary to know everything from the very start. I also learned many things during my work and quite quickly, also thanks to my colleagues who were always ready to help me.
Q: How did you become a test engineer?
I think that if you like programming, you can find your place here in technical QA. I know that there are a lot of testers who would like to do some technical work but it is not possible in their current job. On the contrary, we often have projects where a lot of automation is required or where it is necessary to learn to program in a language or acquire a new technology. On the other hand, if a person is good at technical work but does not like programming too much, there is enough work with minimum programming in it. And everybody gains a lot of new experience here through working with various technologies.
Q: What are the skills you need to succeed?
You definitely need to be able to learn new technology quickly. Each customer product can be different and it’s valuable when you can start delivering quality results fast.
It’s also important to be able to put yourself in the shoes of the customer. For example we often work with complex products where setting something up might be long and difficult task. In the end some people might be just happy that they were able to do it and it works but that’s not all, you need to look at the process and think about what was difficult there or what behaved differently than you would expect. Also it’s useful to approach the task with the mindset of a completely new user who doesn’t know anything except for what he/she has read in the tutorial. With this thinking you can always bring valuable ideas for improvements to the product.
Communication skills are also very important, not only because you usually work in team but also to properly present your work. For example sometimes you need to explain to the developer of the feature why the design is bad from the common user perspective.
And in the end don’t forget that some users always behave differently than was intended, so you should also try to do unexpected things and in general be curious about all the possible use scenarios and product features.
Q: A lot of people want to be a programmer. But in practice they are often faced with a situation that they only implement assigned tasks without being able to use their own ideas? What is the situation in your company?
In our company when you try to get to know the product and play with it, you already work. For example you get an idea: what if we did something, what impact would it have on the product? So I try it. Our work is quite varied and we can be creative. Not all the tasks are so concrete like for developers. I think that we are not under such a pressure as programmers in a large corporation who process one task after another and they do not have time to care about all of the connections. We emphasize quality, not quantity.
Q: That sounds like fun. So, can your work really be just playing with software?
Basically yes and that’s why I like it – in software testing I like finding bugs. Each of us has found a bug in software before which made them angry but they could not do anything about it. We can do a lot about it. We influence the quality of the product and suggest how to change things which do not work. We try to make it easy to use for customers. That’s why I am happy when we find weak points of a tested product and propose a solution which will contribute to its stability and reliability.
And another example: we got several Raspberry Pi devices in our office “to play with” and we were thinking what we could use them for. In the end we created our own web applications for fast transfer of files which saved a lot of our time and made our work more effective.
Q: Are there any difficulties in your job at all?
Of course there are, some of our products are technically difficult, even just to install and configure, not speaking of solving technical problems connected with their application. But the company provides enough space to get to know the job, learn about the technologies and be able to work dutifully. We also help each other a lot, for example we established channels about topics concerning various technologies. If someone has a problem, they can write about it in the channel and sometimes even people working on completely different projects can help.
Q: Can you give us an idea how you work for a client?
Typically, our team is in charge of several client products and we ensure their quality. In all aspects, we are present during virtually the whole development process, from the beginning to the end. We report to and solve problems with developers, propose new functions together with product managers and cooperate on the product improvement. Last but not least we are also in contact with customers and we process their feedback.
Q: What is it like to work for international customers? Where are most of them from?
Our clients are mainly from the USA, often from Silicon Valley, which is great. They are companies with global activities developing technological solutions. I like the fact that our customers often treat us as their own employees and we become a part of their team. It is because for most of them we also perform product development, not only the project one. It means that we work on the projects for a really long time, usually on several versions. Thus we also gain priceless contacts and we keep improving professionally.
Q: What is the key for successful work of a QA team for clients from Silicon Valley?
We strongly emphasize automation and thanks to that we are able to work on several projects at the same time. If it is used correctly, it can save a huge amount of time. It is great when the majority of testing processes are automated, all is included in the Continuous Integration and then it is started with one click. It is also crucial to emphasize quality. We constantly improve our products and tools we use. Every team member can come with an innovation or an idea. And if you think that something is not a good solution, you can also speak out.
Q: It is clear that it is important to have some space for self-fulfillment and for innovation at the same time. And what about interpersonal relations, do you compete with each other?
Perhaps only in football or chess. Otherwise in the company we pull at the same end of the rope and basically we are like a family. Nobody is afraid to ask about their problem and nobody even stands behind you and waits for your immediate results. For example every month one of us has a lecture about some technology which this person really uses and informs the others about it. He or she mentions its advantages and disadvantages for the particular work for which it is used. Good relations are reflected in our work.
To meet Petr and the profiq team, and to learn more about profiq and their approach to test engineering and development, please contact email@example.com