image

The career development of a testing engineer: Continuous learning, extending one’s knowledge and following the trends are key factors for success.

Interview with Renata Karajanova, Intermediate Testing Engineer at Seavus

Automation and the technological revolution have urged many people to completely shift their career into this profession.

Software testing consists of a wide range of activities aimed to check if the final results of the software system meet the expectations, to find defects and identify errors. The process of software testing can be done manually, by a human, or automatically, with the help of automated tools (scripts or software).

Quality Assurance is focused on managing the life cycle of the software solution and ensuring that the software meets the standards of quality. Testing is part of Quality Assurance. It helps evaluate and improve the quality of the software. Finally, at the top of the pyramid is the Automation Quality Assurance (QA), which establishes an automated process of quality assessment.   

We talked with Renata Karajanova, engineer at Seavus, about the automation of Quality Assurance.   

 

1. Tell us something about your beginnings and career development at Seavus.

My story with Seavus began at the Academy for Software testing at Seavus Education and Development Center     . I had already graduated from the Faculty of Economy and had been working in the field for a few years when I decided to drive my career into software testing, a profession that I find very interesting; it allows for creative freedom and offers tremendous opportunities for career advancement. So, I enrolled at the Academy and, right after completing the course, I was offered an internship and later an employment at Seavus. 

The first project I was involved in was one assigned to the Embedded Division. It was a very interesting project, and I was fully dedicated to my manual testing. The team I was working with made me feel welcome from day one; their trust motivated me to spare no effort and learn new things as much as I could. In the meantime, I earned two ISTQB certificates and, with the support of my mentor and Technology Line Manager, I went through a number of training sessions on automated testing. Soon, on the very next project I started doing automated testing. Of course, the road wasn’t always smooth, but by being dedicated to continuous learning I’ve managed to completely move to automated testing and become an Intermediate Testing Engineer.

 

2. What does an intermediate testing engineer do? What projects are you currently working on and what does your working day look like?

At the moment, I’m working on a project for the banking industry.

A typical working day always starts with a big cup of coffee. ☺ I read and respond to emails, and then attend our team’s daily meeting, where we discuss what has been done so far, agree on a schedule for the day, and try to resolve any impediments. After the meeting, I focus on the activities scheduled for the day. These activities can vary from writing new testing scripts (which includes preparing test scenarios, coding and debuging test scripts) to maintaining and improving the existing ones. I’m also responsible for running the scripts, analyzing the results, and preparing them for submission to colleagues who need them. During the day, I can have a couple of other meetings as well. For instance, twice a week we hold a meeting in which we suggest ways to improve our work, discuss using new testing tools, and try to resolve problems. I finish the day with a summary of what has been done and a plan for the next day. There are challenges every day, but I don’t mind. It is, in fact, one of the main reasons I enjoy my job. 

 

3. What kind of knowledge and skills does a software testing engineer need?

Software testing engineers need a combination of both technical and nontechnical skills. Understanding the techniques of manual testing is essential because manual testing provides the foundation for automated testing. They need to have general knowledge of object-oriented programming and be familiar with at least one programming language; they need to have knowledge of databases (SQL), Linux commands, API testing, and Version Control Systems, and be up-to-date with the latest testing tools and technologies. Experience with the Agile methodology is also desirable. As for the nontechnical skills, testers need to think analytically and critically, have good communication skills and understand the domain industry. A successful tester should always be ready to explore, try new things on their own initiative and find better ways to make the processes more efficient.

 

4. What is the role of software testing in quality assurance? How do you decide when to use manual and when automated testing?

Software testing is part of quality assurance. Its purpose is to identify potential errors, evaluate the quality of the software and see whether it complies with the specific requirements and criteria. All this helps us improve the software. Whether to use manual or automated testing depends on different factors, such as the budget and time available, as well as the requirements and structure of the project. Both methods include specific types of testing, like system testing, integration testing, functional and non-functional testing. However, some of these are better done manually, while for others relying on automated tools is preferred.

One of the main indications to use automated tests is the frequency of the test scenarios. Tests that are recurring and need to be run frequently are obvious candidates for automation. Another factor in the decision-making is the number of tests. With few test scenarios, automated testing is redundant, even if the scenarios are recurring. This makes the Regression test scenario and the Smoke test scenario typical cases that call for automated tests, which need to be done after each cycle of introducing new functionalities and after repairing defects. The Smoke tests are end-to-end scenarios that are used to check whether the most important functions of the application are working properly. These types of testing are a perfect example of when to use automated tests because they rarely change and consist of a great number of test scenarios. In other words, they are recurrent and need to be run frequently. You usually need to perform one set of Smoke tests before running the entire set of Regression scenarios. Other cases that make automated tests the preferred option include: the non-functional Performance and Load Testing; the tests that need to be performed in multiple configuration environments, operation systems or browsers; and the tests that require a large volume of data.     

Manual testing, on the other hand, is suitable for isolated tests that don’t need to be run frequently, and its success relies heavily on the tester’s skills, creativity and intuition. Most common examples of manual testing are the Exploratory, Usability, and Ad-hoc Testing. Exploratory Testing depends on the tester’s expertise, experience, analytical and logical skills, creativity and intuition, and it is therefore impossible to automate. Ad-hoc Testing doesn’t have a predefined approach; it is performed randomly on any part of the application/software and is also unsuitable for automation.

5. Software and technologies are changing rapidly. What are the current trends and how has this branch evolved in recent years?

The first thing that comes to my mind when talking about trends is automated testing, which is rapidly becoming an integral part of the software testing process. This is because companies have recognized its numerous advantages, such as faster test results, lower costs and more extensive test coverage across the software. With the growing popularity of Agile software development methodologies, the use of automated testing is becoming increasingly more important. In the process of continuous integration and continuous delivery (CI/CD), automated tests are introduced from the very beginning and at each phase of the software development, which helps discover defects as early as possible. 

Testing the non-functional aspects of the software, such as its performance, stability and usability, is another trend that is gaining ground. With the Waterfall methodology, testing used to be performed at the end of the product’s development cycle, usually manually and with a sole focus on validating the software against the functional requirements. Agile methodologies, on the other hand, as well as the various tools for automated testing, make testing the non-functional aspects much easier and more widely used.

I would also like to mention the API (application program interface) testing, which is becoming more and more popular. It can be used at different stages of the product’s development, enables developers to write less code as compared to the UI automated tests, generates faster results, and detects errors more promptly.

A much talked about issue is software testing powered by artificial intelligence and machine learning. Although this testing approach is still in its early stage, it is definitely a trend worth following.      

These are only a few of the latest trends, and following them is essential for any testing engineer to be able to respond to clients’ needs.

 

Seavus’ Expert Panel on Test Automation will be held on April 18 in which the experts in test automation will discuss the trends, best practices, tools, and ideas that have been shaping the working environment of QA Automation in 2022.

Save your seat!