The role of Quality Assurance in Software Development
/An interview with our senior QA engineer Maria/
Quality assurance goes hand in hand with software development. We at Panaton know it and this is why we pay great attention to ensuring that we produce the highest quality of code. Having great professionals like Maria on our side makes things easier not only for us but also for our clients. Read what she has to say about being a QA engineer for 14 years.
Hello, Maria. Thank you for taking the time to make this interview with us. Please tell the audience a little bit about yourself. Who you are, what made you chase bugs? Who am I? I am the best, the smartest, and the most beautiful one on ... my desk! A pure coincidence (in the form of a friend) led me to this office and to the QA career, which was not so well known 14 years ago.
Tell us about your test planning process and how do you create a test strategy? The word “planning” plays a critical role here. In every test plan for a project, we set clear goals at the beginning. Once achieved, we can stop for a minute and be assured that we have done a good job. The planning itself largely depends on the type and longevity of а project. Some of the goals include creating a set of test cases covering the functionality; creating automated tests for API calls and/or UI; determination of User Acceptance Criteria.
How early in the process of software development do you start testing? Explain the difference between the QA of every stage? The earlier the better. Of course, sometimes happens that I get involved in a project at a later stage. If the QA begins at the "start of the project" stage, then there is enough time to go into detail about the functionality. Sometimes there is a need to look for additional testing tools, and to explore new methods for automated testing. In case when a QA engineer is included at a later stage, the challenges are significantly different - you need to get into the functionality in detail pretty quickly.
Share some secrets with us: what are the appropriate techniques for test execution? How often do you need to test manually? My day can't start properly if I don’t do some manual testing ;) In my personal opinion, every QA engineer should test the application manually so they know it in the smallest details. Only then do they have to think about moving on to automated UI testing. Things look a little different for backend testing, but you still need to have the core knowledge of the application.
If a test fails – how do you find the root cause? First, I try to find out if the problem comes from the backend or the frontend. Then I change some of the parameters of the test and run it again, and again until I find out at which set of data and sequence of actions the application breaks.
What type of products and processes have you tested the most? In recent years, I've been testing mostly web applications for the USA market.
What are the challenges of your job? - To test manually and complete the current tasks on time, while simultaneously I want to complete an automated test. - To be able to quietly and gently convince fellow programmers that there is a problem, while at the same time I want to send them on a permanent vacation. - To have strong nerves and on the day of the release to test with full attention all the tasks "accidentally" completed at the last moment. - To be ready to learn something new with each new project.
What do you like the most about being a QA engineer? Sometimes finding the right steps to reproduce a bug is like putting together a puzzle. And then you feel like a discoverer.
What skills and qualities should a Trainee QA / Junior QA have? Logical thinking, attention to detail, and a desire to learn new things.
Tell us a scary story with a lot of bugs. On my first workday, I was confronted with a glitch. Beginner’s good luck. It turned out that colleagues have been struggling for days to reproduce this bug. The cause of the problem was discovered ... a year later.