The blog

Error message

  • Warning: Use of undefined constant q - assumed 'q' (this will throw an Error in a future version of PHP) in nebb_preprocess_page() (line 132 of /home/62/w143230/nebbd7/sites/all/themes/nebb/template.php).
  • Warning: Use of undefined constant q - assumed 'q' (this will throw an Error in a future version of PHP) in nebb_preprocess_page() (line 133 of /home/62/w143230/nebbd7/sites/all/themes/nebb/template.php).
  • Warning: Invalid argument supplied for foreach() in nebb_preprocess_page() (line 185 of /home/62/w143230/nebbd7/sites/all/themes/nebb/template.php).

QA in Smart DevOps Culture

2020 was a year of unprecedented disruption that has had a global impact. We saw that many companies underwent a digital transformation in the way of rethinking the business strategy, shifting the work to remote-first environments and implementing new communication technologies. Of course, developers were those who supported this transformation, helping organizations become more agile and resilient. Now that the first quarter is over we can say it is an exciting time to be agile as we see many of the changes already underway.

In this blog, I will point out the importance of collaboration of QA and development teams in achieving common objectives in a modern DevOps culture.

Ever since the release of the Agile Manifesto (2001), which is primarily based on iterative development, the software development landscape changed and stirred the teams into working smarter and more efficient.  

DevOps is a natural extension of the agile software development approach that has emerged from businesses' necessity to respond more quickly to market changes. It is a combination of cultural philosophies, practices, and tools to continuously deliver business value. DevOps cultural movement changes the perspective in the design, architecture, and operation of software, taking the view that "the software does not exist separately from the people who use it and the people who create it."

As a way of thinking and smart way of working and organizing, DevOps is successfully integrated into Nebb's culture of sustainable work practices. DevOps is larger than the development and operations teams, it is an intersection of programming, testing, operations, and the business.

               Diagram

Testing is a constant activity starting from the beginning of the project, where the whole team contributes to covering various aspects of quality since it is the leading and crucial aspect of the development process.

Our Quality Assurance (QA) team is an integral part of the smart DevOps concept, where QA activities are performed alongside development and operations. The whole team collaborates around shared business goals, a common set of agile processes, and shared software delivery tools.

How DevOps facilitates the QA process and improves my skills?

DevOps encourages automation, allowing me to expand my skills and scope of testing into the automation area.

Understanding the product's business logic and its specifications from an automation perspective enables me to identify areas of the functionality that can or cannot be automated and define the test strategy. Automated tests are the best way to increase coverage. They help me reduce the time to run repetitive and regression tests from days to hours and can be reused multiple times for any frequent code change.

Automating the proper tests by a wise selection of tools that meets the requirements of our QA team lead to a faster feedback cycle and frequent releases.

Also, the QA testing process can be automated further within DevOps and its key components of Continuous Integration (CI) - of minor code changes, Continuous Testing (CT) - for each step of the development process and Continuous Delivery (CD) - of working software. Thus, a smart selection of automated tests can be integrated into the already implemented setup of building pipelines and run automatically on every build across different environments. The results are integrated back into the pipeline, enabling the whole team to have immediate feedback for the current build.

Networking

On the one hand, being a part of this approach as a QA means constantly upgrading my skills. I am familiar with the concept of building pipelines and the usage of the integration tools. I also understand the branching strategy and release management and I have access to different environments and control over the test execution. All of this allows me to visualize and have an overview of the whole software development process.

On the other hand, automation means more time for exploratory testing, which adds additional value to the testing process. It is based on our experience, intuition and creativity, generating new ideas and scenarios. In this way of "thinking out of the box", the QA team gives a unique perspective on the entire system from an external point of view.

Continuous learning of new techniques, tools and ideas is part of my growth as a QA in Nebb where we nurture continuous improvement culture. All team members contribute to constantly improving the working processes, the product, and their skills. And excellent communication and coordination of distinct roles, as a unique team, is fundamental for success.

Written by: Borka Strezovska
Category: Corporate

A Day in the Life of a QA Engineer

Each career path is unique and for quality assurance engineers, this is no different. When people think of those who work in IT, they probably imagine them sitting in front of their computers all day long doing the same repetitive tasks over and over. This, however, is simply not the case. Each day in the life of a QA engineer is different and being in QA means you never stop learning. 

QA is short for Quality Assurance and there are various job title names related to QA like Software Testing Engineer or Software Quality Assurance Engineer. Then there are Test Automation Engineer, Exploratory Tester, QA Evangelist, QA Analysts, etc. Personally, I would prefer if it stood for Quality Assistance because, as QA engineers, we are there to help the dev team and are an integral part of it. Thus, in this blog, I will talk about what exactly it is like to be a QA Engineer from my personal experience.

So, what does a QA working day here in Nebb actually look like?

Well, every day starts with coffee with colleagues, of course. Over steaming cups of coffee, we talk about everyday things and tasks, have a laugh or two and like so kick start the day. After that, the working mode is officially on. As someone who works in QA, I play a challenging yet specialized role in the software development cycle. From start to finish, our team provide a distinct purpose in product delivery and product quality. In a nutshell, the day consists of three things - scrum meetings, teamwork, and testing.

Networking

But let me get more into detail with that.

The first thing on my list is Daily Scrum. Since we are following the Scrum methodology, this is one of the events that happen every day on a regular basis. The meeting takes about 15 minutes, and every team member informs the team about three things: “What I did yesterday”, “Did I have some impediments”, and “What am I going to do today”. This way, we all get to know which tasks everybody from the team is working on and where does that indeed fit within the working process. What follows is hands-on testing. I get info about the development status of the features and feedback about what is ready for testing. One thing that I find is a great advantage to be a QA here in Nebb is that I have insights into which task is pushed for which environment and have access to dev environment at the same time. I find this important because sometimes when we do testing on dev environment together with a developer for a feature that is a little bit more complicated than usual, this can save us a lot of time and contribute to a faster development.

Light bulb

Now let’s move on to the “hands-on testing” part. Firstly, I run through all tasks that have been delivered in the test environment and start with the major or most complicated one. Then, I move on with reading the specifications, preparing test cases or updating if there are existing ones, doing the routine testing on how it is supposed to work. I try to finish with one task and then go to the next. This is, however, an ideal case scenario. Being a QA brings on the multitasking ability in you. If everything goes as planned, it is then time for exploratory testing! I must say, that is my favourite part of the testing. You are performing the testing by relying on your creativity. You can do whatever comes to your mind! With this testing technique, most undiscovered bugs can be found, proving useful later on. If there are bugs found, I register them with a detailed explanation, repro steps, screenshots of the actual results, etc.

Communicating with the developers during my process always helps. There is always something to discuss, whether it is an issue, a specification, an improvement, or just a simple question. I am also on board for customer support dealing with bugs or questions from the customer’s side, and if a support ticket arrives, it beats other tasks and quickly becomes the priority of the day. Investigating, finding solutions, reporting it - if it is a bug - and of course, if it is not in my zone of expertise, the dev team is always here to help.

Let’s not forget to mention that automation testing as a software testing technique is also performed to run tests on the software the dev team is developing. But I will not deep-dive into this subject now and leave it for some future blog post.

To conclude, QA involves much more than a just long list of testing activities. It is primarily a mindset that should be embraced by you and your entire team because quality is a whole team approach, each owning the responsibility of what they produce and confirm the reliability of a product. You need to be an insightful, resourceful, and persistent problem solver who works diligently to deliver products that meet and sometimes exceed client expectations. And don’t be surprised when your role expands beyond and into additional responsibilities. It’s just part of what it means to be a QA engineer today.

Differently

Written by: Bojana Jovanovska
Category: Corporate