Introduction to QAOps framework
Nowadays, the IT industry is changing constantly. These changes require the systems to be even more efficient, scalable, and reliable no matter the system’s complexity. In all the segments of working of an IT system, one of the most important things it’s the Quality Assurance (QA).
As probably you have already guessed by the title of this blog, this is something similar to DevOps. That’s correct because this framework uses the basic approach and mindset already defined in DevOps.
Think about 7 or 8 years back when there were not any mentions about DevOps. When books and presentations for DevOps came on the scene, the people from the IT industry started to develop ideas and later software tools to help the world to better understand where, when, and how the DevOps will be applicable. So the position of DevOps engineer was listed as required by the IT companies.
Something similar is already present in the QA as part of the IT industry and it will be more and more present and required by the companies in the years that will follow. That something is called QAOps framework.
Definition of QAOps framework
Although there is no official definition, this framework can be defined as:
An infinite process with a set of activities that will allow the QA engineers to work closely alongside developers and operation personnel in order to bring the best possible product for the clients.
As part of the QAOps framework, the activities of the QA engineers besides the standard software testing activities will include developing, triggering, and maintaining automotive jobs as a part of the continuous integration (CI) and continuous delivery (CD) pipeline[1].
When it comes to software testing and quality assurance, these jobs are related to all the test scenarios that we need to cover in order to have the complete picture for the tested IT system.
How we implement the QAOps framework in Interworks
In our company, the QAOps framework is a process that the QA team is practicing on a daily basis. As per this, the implementation of the QAOps framework is defined as an infinite process of learning and putting in use the best QA practices through-out the following phases:
1. Plan – all the initial things start with a plan. By definition[2], “Planning is the process of thinking about the activities required to achieve the desired goal”. At this point, we come with a document known as a Test Plan. The Test Plan will include and describe the strategy and the objectives that we want to achieve. Some of the software tools that we are using in this phase are Spira Test Management by Inflectra and XRAY – Cutting Edge Test Management by XRAY. Also, we have years of experience in using TestLink, Pairwiser, TestRail, Zephyr, and qTest.
Using the above-mentioned software tools, we create detailed test plans and test suites for each type of testing activity (Functional and non-functional testing, Regression testing, Smoke testing, etc.) These plans and suites contain very well described test cases with detailed test steps that are clear and understandable for everyone from the testing team, the dev team, and also by the client.
2. Test Development – our main activity and our biggest challenge as QA engineers. In this phase, we perform most of the activities that were defined in the previous phase of planning. Here our testing activities are divided into several types of testing:
- Automated testing – writing and execution of automated test scripts according to the test plan in order to meet the client’s requirements. In this type of testing, we are using some of the latest and well-known software tools such as Rapise by Inflectra, Selenium (with all programming languages: Java, Python, JavaScript, etc.), Robot Framework, Katalon Studio. Also, we have years of experience in creating and executing automated tests with tools like Cucumber, GhostInspector, TestNG, etc.
Using the above-mentioned tools, we are constantly decreasing the time and costs on any architecture level such as front-end, middleware, and database level. - Performance testing – with the performance testing we allow our clients to reduce the production risk and user discontent by having an application performance assessed and tested with real scenarios. In this type of testing, we use well-known and established tools such as the Apache JMeter and LoadUI. Also, we have experience of using BlazeMeter, WebLoad, LoadRunner, etc.
- Mobile apps automated testing – detailed, fast, and cost-effective automated testing on mobile apps regardless of the OS – iOS or Android. In this type of testing, we are using tools such Appium and Kobiton. Also, it’s good to know and worthy to be mentioned that we have experience in Selendroid, EggPlant, etc.
- API testing – validating complete business flows on API level is also a well-known practice in our QA team. As a part of the API testing, we use software tools such as SoapUI and Postman. Also, we are creating and running automated API tests using some of the tools mentioned previously in the Automated testing part of this blog.
- Robot Process Automation (RPA) – In order to reduce the processing time and decrease the costs, we offer not just to test but also to automate complete business flows by using robots created in the RPA tools such as UiPath. Also, we have solid and verified knowledge in other RPA tools like Automation Anywhere by the Automation Anywhere and Tosca by Tricentis.
- Agile testing – making sure that every feature from an app is 100% functional by implementing the agile testing as part of our testing approach. This will allow us to test the app as it is being developed.
3. Automate – In order to meet the criteria of higher efficiency, to fulfill all the defined requirements and to create tests in the previous 2 phases, we always find a way to automate all previously created QA related jobs. Also, this is the first phase that makes QAOps framework different from the other traditional approaches in software testing. Throughout the years of proven experience and rich knowledge, we are proud to say that we have very good and solid knowledge in using tools such as Apache Jenkins, Azure DevOps, Maven, Hudson, etc.
4. Trigger – Automating the job with the previously mentioned tools (Apache Jenkins, Azure, Maven) is not the only important thing. Triggering the right tests at the right time is also very important. In this phase of the QAOps framework, from a business aspect is important to mark and to select the right tests that will be part of the execution in the current CI/CD pipeline.
5. Execute – the objective of this phase is to perform a real-time validation before the code goes to production. In this phase, the automated test scripts from different types of testing are executing. In order to increase the efficiency and to reduce the costs we have combined the different ways of testing: for example, execution of the automated tests combined with manual testing for verifying the final results in end-to-end testing. Software tools like Jenkins and Azure make this possible from anywhere and any device.
6. Release – it’s important to keep different versions from a software. It’s the same with keeping versions from automated tests. For this purpose, we are using tools like SVN and Git in order to have better management and control on the automated test scripts.
7. Report – this step happens in all previous phases somehow. For example, when we open a bug ticket that we have found during the Agile testing, we report some anomaly in the system. However, from client’s perspective, it’s very important to have an overall picture of everything that happened previously. For this purpose, tools like Jira, Spira Test and XRay to generate and to create reports can be really handy.
Flow Diagram 1 – QAOps framework in InterWorks
From all of the above-mentioned software tools, it’s good to mention that we are official partners with 2 companies: Inflectra and XRAY. This is just one of the many ways that we expand our knowledge and keep us up-to-date with all that is related to software testing and QA. Also, this gives us early access to the latest information related to their products and allow us to have a better understanding of the newest trends in terms of QA and software testing in the market.
All of the above-mentioned will be of help for the QA engineers when it comes to performing some of the testing activities, such as regression testing.
Flow Diagram 2 – A simple example from the Regression testing as per the QAOps framework in InterWorks
Final Thoughts
No matter the industry they come from, the companies always want to stay in the game and to be one of the key players on the market. From an IT perspective, the QAOps framework brings the collaboration between the QA engineers and the Dev Team on a new, better, and higher level. This increases productivity, efficiency, and creativity on both teams (QA and Dev).
Throughout each phase, from planning to release, the QA engineers are learning constantly new things, and their productivity and efficiency increase. All this leads to a decrease in the client’s costs. Besides reducing the client’s costs and the fact that this framework unites the QA and Dev teams, the QAOps framework also allows the clients to actively participate in each phase of the SDLC in order to have a better and clear picture of their product.
Currently, on the market, there are software testing tools like XRay, Rapise, JMeter, and Jenkins. These tools are very useful and powerful, provide most of the things that should be done in terms of software testing, and practically make the implementation of this framework easier and possible.
By implementing the QAOps framework as one of our main strategies, we continue to seek out challenges in improving our knowledge and work in order to bring the best values for our clients on a daily basis.
[1] Lambatest, Guide to Implement QAOps Framework https://www.lambdatest.com/blog/guide-to-implement-qaops-framework
[2] Wikipedia, Planning, https://en.wikipedia.org/wiki/Planning