It’s a well-known fact for professionals that they must achieve the satisfaction of their clients through early and continuous delivery of their valuable product, say their software. So, professionals must sail on the boat by balancing early feedback and continuous delivery, which should happen constantly. Some customers don’t mind your valuable efforts if they are invested in the work, which will better impact their requirements. For example, consider that you made some enhancements and made the application UI look even better. The reason is that they might be expecting just the functionality to work correctly now, and UI enhancements might not be their priority. And even after professionals had invested their client money and time in doing this, it failed. This could be because of the lack of continuous feedback from the client. We have another example that says if a team had done the estimation of the software delivery wrong. And if they thought they could deliver the product early and committed the same to the client. Later, they analyzed that they couldn’t do it as they might have underestimated the process, which might also lead to failure due to continuous delivery.
In today’s world, the need for software is fundamental. Right from the start of the day, we will come across and interact with various types of applications like one for grocery ordering, commuting applications, and much more. People are using software for all kinds of needs. And the point to be noted is they are used to frequent updates of the software they are using. The reasons might be many as there is too much competition between software providers to grab clients and then continuously provide their best service to clients. There are chances to lose their clients at any point of time if any one of the two early feedback or continuous delivery fails.
And the point to be remembered is even to date the 12 agile principles like deliver value frequently, Satisfy Customers Through Early & Continuous Delivery, sustainable development, Face to face conversation and others which were introduced in long back 20-21 years to speed up the development and to bring the new quality software into market faster are relevant and followed till date. There is not that much change in them. Deployments have become more robust, and their frequency has increased, reducing the gap between professionals and clients.
The main change to be noted here is an increase in test automation scope, which will continue along with the need for continuous automation. So here there are two points. One is that more features and functionalities need to be automated. Automation needs to happen in hand with delivery, say a feature is delivered, and a plan to automate it should be in place. The other one is we should have room to accommodate changes to address enhancements and changes in the corresponding feature even after the test automation.
There is an agile principle that says Business and Developers together, which means the technical team and a business team should work hand in hand, which will remove the barriers among them and help achieve a better product and promote transparent and healthy communication. Here one thing to remember is delivering a QUALITY product to clients with fast-paced development. So there is a reason to bold and capitalize the word “QUALITY,” as that won’t be achieved entirely without including Quality Assurance. And there is a need for continuous testing and maintenance of the product, and for sure manual testing effort alone can’t address this need. Thus we have a crucial place for test automation which assists in covering more testing scope. And the basic core testing principles like Pesticide Paradox, Exhaustive testing is not possible, Defect Clustering, and others should be the basic ones to be adhered to.
So basically, what agile methodologies say about managing a project by splitting it up into several phases. First, it requires continuous collaboration with all people involved in the business and people involved in making the business process happen, i.e., for communication between stakeholders, partners in business, and technical people who are the reason for developing and maintaining the software. At any point in time, any new requirement needs to be answered with less or no effect on business. But in fact, it’s not simple as we quoted here. For example, consider a bank needing a customer login application to enhance their business in attracting customers interested in banking online. So, the bank’s job and technical people will not end with just developing and handing over the software to the client. There should always be a space to accommodate the changes in existing features and address the customer’s new needs in this competitive world. Of course, professionals will achieve this for sure, and they can also estimate the circumstances once the new requirements are added. But to identify how these changes affect the software and have prevention measures to address them in advance and rectify the future effects, there is a need for quality assurance people right from the beginning of the project.
Responsibilities of a Quality Assurance Engineer
The quality assurance team needs to be involved in discussions about the feasibility and the possibility of implementing the requirements. Moreover, testing the requirements individually and in harmony with other integrated applications, addressing defect retesting once they are fixed and estimating the impact of the defect fixes, and retesting the features around that defect, are essential. The agile methodology encourages continuity in the process as well as business and same the quality assurance process. I repeat the quality assurance process, not just ‘Software Testing’ also supports the continuity, and we can say this quality assurance process in software development is a key factor. So when going in-depth into the quality assurance process, a typical QA, i.e., Quality assurance engineers, have below responsibilities.
A. Requirement analysis: Unlike traditional ways, this will not come into the picture once the software is developed or late in the testing phase. Due to this old process, professionals might have a chance to underestimate the effects of requirements and plan to implement them. For example, clients need a login page, but that doesn’t mean that it should be implemented with the present trending technology. The most important thing is it should satisfy the main requirement, i.e., the client should log in to the application. In addition, there should always be a space to welcome new requirements. The client may, for example, come back and say we need to make changes to support multiple login methods like via OTP, Username password, MPIN, SSO, etc.; these upcoming features might not be there, but we need to have a plan and prepare to welcome and address these situations. This requires the experience of Quality assurance folks, even as they might have faced these situations earlier.
B. Test Plan Creation: The quality assurance process has a plan about exactly where and when to get involved in test plan creation and test environment preparation. Now here also, testers need to develop timelines about their test plan, tools, or process they are going to use to achieve their test plan. When coming to an agile approach, there is a need to estimate and develop a strategy in support of a long-term process that should address the required changes, and the testing strategy should be in line with this entire process.
C. Test Case Creation: Unlike agile processes, they have the functionality of splitting requirements into epics and then to stories. Here also, we have scenarios and then test cases. Testers will analyze the parameters involved in a particular feature and come with possibilities in testing and its so-called authoring test cases. For all this to happen, we need to invest time and money. No one wants to invest in doing the same repetitive process again and again. The test automation process comes into the picture to avoid it, but there is always a human intervention. We need to remember the basic testing principle that is performing the same testing without updating it in all aspects right from methodology; there is no use. As requirements are updated, it means the process also should be updated. Using the same old knife, we cannot achieve our goals. So, coming to the automation side here also we will automate test cases and scenarios using code or natural language with no-code tools. We will create a test suite and then design executable scenarios automatically, and the corresponding test case runs. In this agile process, we need a tool/ framework to welcome future enhancements and changes in scenarios with less turnaround time and money to continue the race.
D. Test Case Execution: And this is the primary phase. In manual testing, it’s entirely human intervention. So, the factors like application environment, OS, Browser, screenshot capture, and execution will be in the hands of humans, and they will ultimately use their experience by comparing with corresponding proofs to judge the result. But in the process, there are some unseen factors. What if there are defects identified around a feature and need frequent retests around it? What if we need to test the same feature in different browsers?What if we need to test the same scenario with different parameters. So, it’s the responsibility to thoroughly test the new features and, in parallel, automate them to facilitate future needs like regression testing.
E. Defect Logging, Fix, and Reverification: The sole purpose of the quality assurance process is to identify what is not proper at the right time and get it fixed. As the psychology of testing states about pesticide paradox, i.e., if the same set of test cases are executed repeatedly over the period, these tests are not capable enough to identify new defects in the system. So regular updates are needed from the product release point of view, and the test cases also need to be updated accordingly, whether manual or automation. We need a robust test automation framework/ tool that can at least try to achieve this and make the quality assurance process inclined in the agile methodology.
There is more than just authoring test cases for a QA who is working in agile methodology. They are the representatives for product owners and ensure quality products are delivered to the client. Thank you for your valuable time. Happy testing!!!
Venkata Raghunandan Raghammudi | QA Engineer | Legato Health Technologies
Passionate Software Tester with 5+ years of experience in Software Testing. Leads and mentors Software Testers implementing quality assurance and quality-control methodologies in multiple products to ensure compliance with QA standards.