Search Results
31 results found with an empty search
- Case Study 13: Page Object Model (POM) Implementation in Test Automation for a ERP system
Project Background: This continues the insights of Case Study 12 which describes the modular framework for the ERP system. Here, more insights will bring about Page Object Model (POM) Implementation in ERP Test Automation. The team implemented the POM to improve the maintainability of the test scripts. Strategy: The core strategy was to introduce a modular, reusable, and scalable automation framework using Page Object Model. Key steps in the strategy included: 1. Creating Separate Page Classes: Each module's UI elements and actions were encapsulated within dedicated Page Object classes. In an ERP system, different modules such as Finance, Stock, Purchasing and Sales have distinct UI components, workflows, and functionalities. If test automation scripts directly interact with UI elements in each test case, maintaining them becomes difficult when UI changes occur. ERP system consists of multiple modules that have different interfaces, workflows, and functionalities. If the test automation scripts interact with the UI elements at the test case level, maintaining them is difficult UI changes occur. To improve maintainability, POM introduces separate page classes for each module. These page classes maintain the UI elements and actions specific to that module. Therefore, whenever, there was a change, it handled in Page Object Model level. For example: Creating a Separate Page Class for the Sales Module Let's assume the Sales module of the ERP system requires processing the Sales Invoice: Selecting the Sales Order Generate the Sales Invoice Complete the Sales Invoice for a particular custome r Using POM, we created a SalesPage.java class by taking the above as the methods. When designing test case scripts for the Sales module, the methods defined in the SalesPage.java can be called/referred to by maintaining the logic separately. Therefore, whenever, a change is required, as all UI elements are located in the Page class level, the changes can be done in the Page class level. It affects the entire test scripts of the module to which the methods have been referred. The same logic was applied to the other modules and test scripts. 2. Implementing a Centralized Utilities Layer: Common functionalities like login, navigation, and error handling were abstracted into reusable utility classes. In ERP test automation, modules such as Finance, Sales, Stock, HR, and Procurement require repeated actions. Across the modules of the ERP system, there are repeated actions such as User Login, Form filling and submission for the different workflows, Navigation across the modules/pages, and Error handling. Therefore, maintaining these repeated features in every test script will lead to duplications, inconsistency, and higher maintenance costs whenever there is a change. To overcome these challenges, creating a Utilities Layer with reusable methods was the solution that ensured that all test scripts across different ERP modules use the same implementation for repeated actions. The Utilities Layer consists of multiple helper classes. Therefore, instead of hard coding the same functionality in required test scripts, these methods were reused in the scripts. Therefore, whenever there was a change, it did in this utility class level. ERP systems require frequent form submissions for invoices, purchase orders, stock entries, etc. A Form Utility ensures consistent input handling that saves effort and time effectively by reusing a single method for multiple forms. For example, LoginUtils.java to handle the user login NavigationUtils.java to manage module navigation FormUtils.java to standardize form filling and submission ErrorHandlingUtils.java to capture and logs exceptions 3. Parallel Execution Support: The POM framework was integrated with TestNG to allow parallel execution, reducing test runtime. In ERP systems, multiple modules require extensive test coverage. Because of the availability of many test scripts across the multiple modules of the ERP system, the execution of test scripts needs a long time, especially for regression testing. Therefore, the test scripts of the modules are executed simultaneously with TestNG in a POM Framework. Conclusion: Implementing the Page Object Model (POM) in ERP Test Automation has provided several benefits: ✔ Reduced Test Maintenance: Centralized page classes allow easier updates when UI changes. ✔ Improved Test Reusability: A modular framework enables shared functionalities across ERP modules. ✔ Enhanced Scalability: Test execution is optimized with parallel execution and Selenium Grid. ✔ Faster Bug Detection: With structured automation, defects are identified early in the cycle. By adopting POM along with a scalable automation framework, ERP testing can achieve efficiency, reduced costs, and high maintainability, ensuring robust application quality. #softwaretesting #testautomation #erp #vitesters #reusability #costeffectivestrategies
- Case Study12: Building a Modular Test Automation Framework for ERP Systems
Project Background: This is regarding an ERP system of a manufacturing organization. It comprises many modules including manufacturing, finance, inventory, purchasing, sales and human resources. It was their product and it was sold to different clients with the customizations. The ERP system was implemented with regular updates and new feature implementations according to their client's customizations. Therefore, executing the regression cycles should be required by ensuring these implementations are ready for the needed clients as soon as possible. That's how they required test automation. To address their requirement effectively, the Test team had to build a test automation framework to reduce script maintenance costs and provide long-term scalability for their ERP testing processes. Strategy: To tackle the challenges, the team designed a comprehensive test automation framework tailored to ERP systems' unique needs. The framework emphasized modularity, scalability, and maintainability, ensuring minimal manual effort for future updates. In this article, we discuss building a modular Test Automation Framework for ERP System and we hope to bring the other best practices from our next articles. Modular Framework Design: Key features of a Modular Framework 1. Test case design by modular-wise categorization A modular test automation framework built with categorized test cases for each module (Finance, Stock, Sales, etc...) of the ERP system. In an ERP system, each module should be considered as a separate entity. So, the test scripts were grouped according to the particular module's functionality. Example: Finance Module: Test scripts for invoice generation, payment processing, and budgeting, etc... Inventory Module: Test scripts for stock level updates, inventory adjustments, and stock audits, etc... Sales Module: Test scripts for order placements, sales reports, and customer discounts, etc... The directory structure needs to be organized based on the ERP modules. AutomationFramework ── Finance ── Inventory ── Purchasing ── Sales ── HR This segregation and logical structure helps separate and handle the impact by making test maintenance manageable if there are modular-specific changes. Maintaining independent test cases for each module helps to isolate and debug failures easily. Because failure of the test script of one module is not a cause for the failure of the test script in another module. For example: If the Sales module scripts fail, other modules like Finance and Stock remain unaffected. The other thing is this modular framework supports scalability. If there are new modules or functionalities, those can be taken to this module structure easily. 2. Reusability There can be common functionalities such as login, certain forms, and navigations. These shared functions can be taken into reusable methods. By using reusable components for shared functionalities, duplication across test scripts can be reduced. Abstracting these functionalities into a shared functionality library ensures code reusability, improves maintainability, and reduces redundancy. A shared functionality library is a central repository of methods or functions that can be reused across test cases for different modules. These methods encapsulate common tasks that are not specific to any single test case but are essential for executing tests. For simple example: Login Functionality ERP systems often require users to log in before accessing modules like Finance, Inventory, or Sales. Instead of duplicating the login logic in every test case, the process can be abstracted into a reusable login() method. As an advantage, this single method can be referred to in relevant test scripts without coding the same logic in the test script. It increases the code reusability. If anything needs to be changed in the login feature, it is enough to make the changes to the login method. It improves scalability as adding new modules or test cases becomes easier because shared components handle common tasks. 3. Parameterization with dynamic inputs With parameterization, test cases can be handled with dynamic inputs. It allows a single test script to cover multiple scenarios. It really helps in conducting comprehensive testing as many test combinations are involved in each module. With parameterization, these different combinations of inputs can be handled without duplicating the scripts. The unavailability of duplicated scripts helps reduce maintenance efforts and enhance efficiency. For example, Testing of payment processing in the finance module needs to be done with different conditions such as different payment methods with/without Tax and with/without discounts, etc... Once these dynamic data are stored in an external data source like Excel or JSON file and once the test script is parameterized accordingly, that single script can be executed for these multiple test combinations This brings many benefits for the maintenance. If the team needs to add more combinations, they can add to the source file without making amendments to the script. The ability to handle various test scenarios via a single script fast the test execution. Challenges and Solutions: Lack of domain knowledge for Automation Engineers - Understanding the business logic and workflows of ERP modules like Finance, Inventory, and Sales is essential for creating accurate test cases and reusable components. Even though the manual test engineers are domain experts, the domain knowledge of automation engineers was less than them. As a solution these functional specialists were allocated with them to give the domain knowledge and Automation test engineers collaborated with them when working on framework design. Dependency Management - Shared components are reused across multiple test cases. A change in one component can unintentionally break other tests. As the solution, the team maintained versioning for shared components and test changes. As there was a regression test suite, it helped quickly identify issues caused by changes to shared components. Maintenance Overhead- When there are frequent updates, it requires continuous updates to the shared components. If those components affect multiple test cases, updating the shared components will be a time-consuming task. As the solution, the team used dynamic locators in test scripts to handle UI changes with minimal updates. However, the team had to think about performance bottlenecks as well. Apart from that, getting the support of the development team to work on the maintenance part was another good solution because they knew about the code changes they did. As that awareness does not come to us directly, that solution minimizes the maintenance effort. Conclusion: A modular test automation framework provides substantial benefits but comes with challenges that require strategic planning and execution. By addressing these challenges with the proposed solutions, teams can build a scalable, efficient, and maintainable framework that significantly reduces testing costs and improves the overall quality of ERP systems. #vitesters #blog #testautomation #automationframework #softwaretesting #softwarequalityassurance #erptesting #erp
- Case Study 11: Tailored software testing solutions for different projects & domains
Introduction: Software quality is non-negotiable. Yet, the path to achieving high-quality software is as diverse as the projects and domains it serves. Every project has a set of unique requirements. Therefore, those requirements must be addressed differently via unique testing strategies. The same test strategy applied for one project won't be a suitable one for another project. There should be tailored testing solutions to align with the project requirements, domains, and business goals. Why Tailored Testing Matters Every project has its own challenges, development methodologies, target audiences, compliance requirements, and technologies. Likewise, different industries work on different operational procedures. These are some key categories where we have to think about different testing strategies. 1. Domain-specific project needs The project's domain is the key fact we have to think about when designing the test strategies. Because the testing types we should do, the way of doing the test executions, test data preparation, requirements of their audit preferences, and business priorities are different from domain to domain. For example, if we consider a Banking application, certain functions will be triggered after the end of the day and month end. Interest calculation and tax calculation are some examples. The way of handling test data varies from domain to domain. For a Banking application, synthetic data will be prepared for testing. For the eCommerce project, test data will be arranged as pairs to do the pairwise testing. What should be the Web API testing plan to test the integrated payment gateways and what should be the Performance testing plan for handling simultaneous user load and transaction volume during the peak time? So, these are some key things that will be considered when designing the test strategies for eCommerce projects. For the verification of the reconciliation process of a Telecom project, you may request past customer and transaction data to verify the accuracy. Therefore, our testing strategy should be aligned with those domain-specific features and requirements. There is no way of going without a tailored solution. 2. Agile or Waterfall? The project's development methodology is the other key thing. The strategy you implemented for the Agile project is not aligned with a waterfall project where you have to do testing for a fully developed application. If we consider shift-left testing with our involvement in the early SDLC phases, it won't be applicable as it's already done at the time we were involved with it. So, in such situations, we had to think about risk-based testing by prioritizing testing based on risk, complexity, and business importance. Competitive evaluation testing we do to suggest improvements won't be done with the mutual agreement with the client if they are not ready for further developments. If it is agile, then identifying the road map of the project, story values allocation according to the functionalities' complexity, resource allocation, regression testing plan, automation testing plan, test scope for manual testing, close collaboration with the development teams, partner testing, way of involving in the requirement and designing phases, production testing and releasing, bug tracking and way(s) of communicating are the key aspects that need to be considered for testing strategies. As the sprint lasts for two weeks, if our testing strategies include putting an effort into reviewing the requirements and design before the implementation then many bugs can be avoided as a preventive action. If our testing strategies include getting the status of the Smoke testing from DevOps before starting working on Production testing, then the additional effort the test team has to put into differentiating issues from configuration mismatches can be avoided. These two points have been suggested via our testing strategies and we saw the best results. The last one is really impressive. :D 3. Project duration and time allocation for testing The duration of the project is another key aspect. If the project is limited to one testing cycle without recurring cycles, then there is no need for automation testing. If it is a long-term project, then what should be an automation framework we should use? If the client does not need parallel testing, then can we go with a tool like Cypress for better speed? If the client needs to go with an in-house developed tool, then how should we adhere to it without previous experience? How to handle that learning curve? We faced a similar experience where that organization had its own automation tool and it was for back-end automation. In that situation, handling the learning curve without community support and by merely depending on the few ones who knew that tool was really challenging. Then preparing the automation test suite with the areas that need to be considered for the automation, the capability of fully or partially automating the features, test script maintenance, CI/CD integration, etc... should be done with a proper testing strategy. Time allocation for testing is also a key thing. If it is limited, then it will be a tight schedule where you have to go with a strategy with proper resource planning and prioritization of testing tasks according to the business prioritization and risky areas. It does not mean that you skip the less-priority areas. The testing strategy should be addressed properly by allocating time in the later releases. Test automation will be one of the best ways to address this. But again if you have to maintain the test scripts due to development changes or configurations, then you should have a proper manual testing plan to ensure the coverage. 4. Customized applications Because of the lack of awareness about system applications, we have seen how organizations face various problems when it comes to operating their transactions via customized products. For example, if there is an ERP product that gives customized products will be suitable for a manufacturing company but not for a real estate company even though after making customizations they need. The thing is usually the one who purchased is not aware of all the associated features of the product and that leads to having unnecessary features for their operations. Sometimes, the workarounds they suggested also may have a negative impact on the features they need. Therefore, when it comes to testing such an application by matching their business requirements will be a nightmare. For testing such a system, the test engineer should have good domain knowledge to recommend what needs to be omitted, and what needs to be kept and to see the impact of new workarounds. When going through the applications, we have seen how they have wasted their money on unnecessary features and for the customizations they need. Therefore, in such circumstances, the testing strategies we had to use were totally different from a normal project. In such cases, our testing strategies had to focus on identifying those irrelevant features by recommending disabling/hiding from the application. Because keeping those features allow the users to do fraudulent transactions, face performance issues, generate unnecessary logs, and reports. Doing an impact analysis for the customizations they did and the workarounds they have added are the other key things we had to think about. Therefore, for such projects, merely ensuring flawlessness and suggesting improvements won't be sufficient, and taking additional steps for the above matters is required to avoid the associated risks. 5. Special project needs Some projects had special requirements and these are a few things. - Audit preferences or Adherence with the standard models like CMMI/TMMI Some organizations adhered to the standard models like CMMI/TMMI to get the certification of the desired level. Therefore, test procedures, processes, and artifacts need to be aligned accordingly. According to the preferences of audit and to present certain evidence to show the adherence with certain standards, there were some requirements. So, our test strategies had to be tailored accordingly. - Ensuring adherence to new regulatory standards. This was a requirement of Banking and Finance projects. According to the regulations of the government, when they had to change certain operations, we also had to adhere to those requirements by making necessary changes to the testing tasks. - High cart abandonment rates. Even though this is something out of Software Quality Assurance, some ecommerce project owners wanted to get our support for analyzing the user's behavior to understand the drop-off stages where the end-user left the system or canceled the ordering process without continuing with it. Therefore, apart from testing, our testing strategies were focused on doing the user behavior analysis part and giving recommendations for improving the user interfaces and user experience. So, we continued it as a part of UI/UX testing. Benefits of Tailored Testing Solutions Improved Time-to-Market and Cost Efficiency: Tailored testing strategies address the exact project needs including business goals and priorities. Then testing tasks will be prioritized accordingly and critical and high-severity bugs will be identified early stages of SDLC that shorten the development lifecycle. Early bug identification reduces fixing time and bug-preventing actions taken in the early phases also contribute to it by cutting costs. Finally, the software will be ready for the market with the most stable and required features by letting the team work on the rest of the features. Enhanced Customer Satisfaction: As the tailored testing strategies are focused on exact business needs, every aspects will be considered for testing. Avoiding high cart abonnement rates according to the previous explanation is a good example. Even though it is something out of testing scope, we could work on it by bringing value addition to the final. In the end, these strategies deliver a high-quality product that meets the user expectations and finally, it leads to building the customer's trust, loyalty, and brand image. Mitigation of Business Risks: Customized testing strategies identify domain-specific risks and provide proactive solutions to mitigate them, ensuring compliance with industry standards and protecting business integrity. Scalability and Flexibility: Tailored solutions adapt to the unique demands of each project, whether it's a small-scale application or an enterprise-grade system, ensuring consistent quality across varying scopes and complexities. Competitive Advantage: Superior software quality achieved through tailored testing enhances a company's reputation and competitive position in the market, fostering customer retention and attracting new clients. Conclusion: Tailored software testing solutions are essential for addressing the unique needs of different projects and domains. By aligning testing efforts with specific challenges and goals, organizations can achieve superior software quality, enhanced user satisfaction, and a competitive edge in their industry. https://youtu.be/4lfnzwboW3Y Check out our newsletter! #vitesters #blog #newsletter #costeffectivestrategies #businessgrowth #softwaretesting #softwarequalityassurance
- Whitepaper 01: Early bug detection and cost savings
In today's digital landscape, organizations depend substantially on software and online systems to deliver exceptional experiences to their customers. However, unnoticed bugs in those systems can result in surprising and frequent major interruptions. Even though those problems would possibly appear minor at the initial stage, if they stay undetected, they can profoundly affect the user experience, adversely influencing sales and customer confidence. Consider a situation where a customer is in the process of making an online purchase. They've selected their items to the cart, filled out their payment and delivery information, and are approximately to finalize the transaction. Unexpectedly, a glitch in the checkout process causes the transaction to fail, or even worse, it freezes the page. The client, feeling frustrated and uncertain about whether the purchase was completed, comes to a decision to leave the cart behind by contributing to the cart abandonment rates. For example, a bug within the payment gateway can lead not only to immediate revenue loss but also to a decline in long-term consumer trust. If the problem isn't resolved, returning customers can also decide not to return back, and first-time buyers may give negative feedback. The problem affects more than the current transaction; it spreads at some point during the brand's image and might cause considerable revenue loss over time. The Growing Significance of Software Quality Modern consumers anticipate flawless experiences with competitive features from the applications and websites they use. Whether it’s banking, shopping, or a service request, any disruption resulting from bugs can lead users to lose trust in your business. User frustrations can bring about reduced brand loyalty, bad online reviews by damaging the reputation. This undertaking is principal in any area in which even a minor bug can considerably affect the user journey, leading to abandoned transactions and customer dissatisfaction. 01. The Importance of Early Bug Detection Detecting bugs early is important for businesses working to uphold high-quality standards while reducing the cost. Bugs detected during the software development stage can be fixed before they become major issues that affect customer experience or require costly post-releases. Bugs that remain undetected until later stages, particularly after product launch, become greatly more expensive to fix. This is because once a product is live, those bugs may have already affected various users, leading to adverse customer experiences, lost revenue, and damage to the brand. Sometimes, you may receive complaints from one or two customers even though it has affected many. In such a situation, if you do not understand the root cause of that bug, the bug fix will give a temporary solution. The complaints of the others will come later once it is triggered to them only. With the rush of fixing it quickly, we have seen how some developers go for quick and temporary fixes that impact badly the existing features of the application. Therefore, the bugs in the production phase are not an easy task to handle. That's why many studies point out that fixing bugs after the product launch can be ten times more expensive than resolving it during the development phase. Via early testing strategies, such as shift-left testing, automation testing, and risk-based testing, businesses can detect these bugs before they reach customers. Early detection allows you to: Save money by identifying and resolving bugs sooner when they are less complicated. As the Software Testing team got the chance to be involved in the requirement analysis phase, completeness and validation of the requirements can be done at that stage. So, it helps develop a perfect feature from the very beginning by avoiding the cost of development and testing effort required for bug fixes and to handle requirement change requests. Ensure a positive user experience, making certain that your product operates smoothly from day one. Safeguard your brand reputation by providing a reliable and bug-free experience for your users. A positive user experience always brings you a brand reputation. Early bug detection not only enhances the quality of your product but also protects your business from the potential consequences of expensive downtime, lost customers, and reputational damage. Consequently, businesses should prioritize early-stage testing and proactive bug detection within their development process to secure long-term success. This helps prevent bugs more than detecting bugs. 02. The Cost of Bugs: Why You Can't Afford to Wait Multiplier for Bug Fix Costs - When bugs are found late, especially in production settings, businesses often need to redirect resources to address urgent fixes. This not only disrupts regular development processes but also incurs additional costs in terms of: Overtime for Developers and Testers: Urgent fixes frequently require that teams work continuously to quickly deploy patches and limit further damage. Not only them, but other stakeholders also have to pay attention. Because in some cases, only the clients can work on the Production environment by entering data which cannot be done by the developers or testers. Therefore, a portion of testing goes to them also. It will not give them a good experience. Code Revision: Fixing a bug after release often requires developers to rework, which can be time-consuming. Deployment Costs: If the bug is Critical or High severity one, it may require new software patches or updates quickly, resulting in higher operational expenses. Customer Support: Addressing bugs in live systems usually demands additional efforts in customer support and handling unfavorable feedback. Example Statistics: A bug found during the design phase might cost $100 to fix. The same bug identified during development could require $1,000. If that bug goes undetected until production, fixing it could easily exceed $10,000, considering customer impact, downtime, and other related expenses. This emphasizes the importance of early testing strategies like shift-left testing and continuous integration, which allow teams to detect bugs at the most cost-efficient points in the SDLC. 2.1 Hidden Costs of Late Bug Detection In addition to the direct costs of fixing bugs, there are many hidden expenses resulting from late bug detection, many of which can greatly affect your business over time. 2.1.1 Effect on Customer Trust and Brand Image One of the most harmful consequences of bugs in production is a loss of customer trust. In a time when customers expect smooth experiences, encountering a bug—especially one that impacts essential functionality can cause them to doubt about your product or service. The immediate result is lost revenue, but the longer-term effects can be even more substantial. The customer is likely to link this unpleasant experience to the brand, resulting in: Negative feedback on social media or review sites. Decreased loyalty, as customers may turn to competitors that provide more reliable services. Word of mouth damage, where unhappy customers share their experiences with others. Over time, these accumulated impacts can harm your brand image, making it challenging to restore the trust of both existing and prospective customers. 2.1.2 Potential Loss in Revenue Due to Broken Features Bugs that make their way into production can cause critical system failures or broken features, directly affecting revenue. Whether it’s a checkout issue on an eCommerce site or a security flaw in a banking application, the outcomes remain the same lost sales and missed business opportunities. Examples of Revenue Loss: Checkout Errors: A bug that interferes with payment processing can lead to abandoned shopping carts and lost sales. Subscription Problems: If a bug stops users from renewing their subscriptions or signing up for services, businesses may experience a major decline in recurring revenue. Functionality Challenges: Bugs that render essential features unusable (like booking systems, search capabilities, or communication tools) cause customer frustration and a direct impact on sales. The long-term financial consequences of these bugs can be considerable, as prospective new customers may never reach the conversion point, and current customers may exit due to dissatisfaction. 2.1.3. Additional Time and Resources Needed for Emergency Fixes Operational Interruptions: Regular business functions may need to be paused or slowed down to concentrate on resolving the urgent bug, impacting overall productivity. To deploy the necessary fixes, there should be a downtime. Even though this can be handled in different time zones up to some extent, it won't be possible for major/critical issues where a long time is required to fix the issues and re-testing. Customer Support Pressure: With more bugs in production, customer support teams are bombarded with complaints, prompting businesses to invest in extra support staff or temporary measures. System Downtime: Major bugs can lead to system outages, and every minute of downtime results in lost revenue, customer dissatisfaction, and potential SLA (service-level agreement) penalties for B2B companies. For example: For an online retail platform, every minute of downtime during peak shopping periods, such as Black Friday, can translate into thousands of dollars in lost revenue and damaged customer trust. Likewise, for SaaS firms, a single critical bug in the product could prompt customers to request refunds, cancel services, or even initiate legal action if SLAs are not fulfilled. 03. Early Bug Detection Strategies To effectively detect bugs early, a proactive testing approach is essential, wherein testing is incorporated from the very beginning of the software development process. By identifying and fixing bugs at an early stage of SDLC, businesses can avoid the high costs associated with bug fixes after production launch and enhance the overall quality of the software. Here are four important strategies for early bug detection: 3.1. Shift-Left Testing Shift-Left Testing is a proactive testing strategy that involves moving testing activities to the earlier stages of the software development lifecycle (SDLC). Traditional testing often occurs at the middle or end of the SDLC, but with Shift-Left, the focus is on catching bugs early by involving testers from the start. The term "shift-left" refers to moving testing tasks to the left in a typical project timeline. How It Works: Early Involvement: Testers are involved in the requirement-gathering and design phases, allowing them to identify potential flaws or misinterpretations before any code is written. The requirements can be validated with their involvement and it lets the client finalize all requirements by avoiding costly requirement change requests in the later stages. Collaboration: Developers, testers, and other stakeholders collaborate from the very beginning, ensuring that potential risks and edge cases are considered early on. By keeping everybody on the same page can avoid many issues in requirements misunderstandings. 3.2. Continuous Integration & Automated Testing Continuous Integration (CI) and Automated Testing are essential strategies for ensuring high-quality software throughout the development process. CI is a practice where developers consistently integrate code into a shared repository and automated tests are conducted with each new integration to promptly catch any bugs. How It Works: Continuous Integration: Whenever a developer commits code, it is automatically built and tested within a shared environment. This process ensures that new changes do not introduce errors into the current codebase. Automated Testing: Test scripts are created to validate changes in the new code. These tests vary from functional tests (which evaluate individual components) to integration tests (which ensure that different components work together correctly) and UI tests (which check the user interface for problems). Regression Testing: Automated regression tests are performed to verify that new code changes do not disrupt existing functionality. Example: For a banking application, Continuous Integration combined with automated tests can allow for a comprehensive suite of tests to run every time a developer updates the code, thus identifying potential bugs in critical functions like user authentication or transaction processing before the code is deployed. 3. 3. Comprehensive Edge Case Testing Edge cases refer to situations that occur under extreme operating conditions and are frequently ignored in standard testing methods. Although these situations are rare, they can lead to serious problems if not handled properly. Broad edge case testing aims to identify and test these overlooked issues, ensuring that the software can handle unexpected or unusual circumstances. How It Works: Identifying Edge Cases: Testers collaborate with stakeholders to determine edge cases based on real-world data. Or maybe via their past industry experience. This may include testing for high input volumes, unusual user behaviors, negative flows, invalid user transactions, or system overloads. Stress Testing: Simulating extreme scenarios, such as multiple users accessing the system at the same time or entering unexpected data, helps evaluate how well the system copes with such challenges. Boundary Testing: Testing inputs at the extreme limits of acceptable ranges, such as the maximum or minimum values a system can process. Negative flows: The system's behavior when the user makes an invalid transaction or steps in an invalid sequence. The system's capability to handle or avoid invalid transactions. Benefits: Prevents Unforeseen Failures: Testing edge cases ensures that the system doesn’t crash or behave unpredictably in rare but critical scenarios. Improved Reliability: By testing these uncommon cases, the system becomes more robust and less prone to failure in real-world conditions. Example: For an online booking platform, edge case testing may involve simulating thousands of users booking tickets at the same time or checking what occurs when a user tries modifying the booked ticket details. If the system does not restrict such erroneous actions, how the rest of the processes can be managed accurately? Handling edge cases is really important to avoid fraud as well. It is the other important thing. As an example, if the higher approvals are in place, then we have seen how the systems are open to fraudulent transactions by allowing the same person to do the approval by making some modifications. How well your system is capturing audit logs? Up to what extent the system can capture necessary information via audit trails. How it is working for negative flows and invalid transactions. So, these are important things to cover that normally do not come as requirements from stakeholders. Because it is not possible to handle everything via requirements. 3.4. Risk-Based Testing Risk-based testing is a method of testing that prioritizes testing based on the areas that are critical to the business and most likely to fail Instead of trying to precisely test every part of the system. Risk-based testing highlights high-risk areas by allowing you to identify all bugs in complex, risky, and operationally critical areas as quickly as possible. This is really important to find and prevent bugs early. Otherwise, as an example, if the QA team cannot find the major bug of a risky feature and if it is developed further in an Agile development-based project, then the spread impact of that bug will be immeasurable. How It Works: Identifying High-Risk Areas: Testers and stakeholders determine the sections of the application that are most essential to the business (e.g., payment processing, user authentication, integrated features) and those areas that are most likely to contain bugs. Prioritizing Testing: These high-risk areas are addressed first, guaranteeing that any critical bugs are identified early on. Continuous Risk Assessment: Risks are reassessed as the project moves forward, and testing strategies are adjusted to focus on the most at-risk areas. Benefits: Focused Testing: By concentrating on the most important areas, teams can make certain that the most essential functionality is free of bugs, even when time and resources are constrained. Minimized Business Impact: Bugs that could disrupt business operations or affect revenue are given priority, decreasing the likelihood of severe failures. Example: For a financial services company, Risk-Based Testing would emphasize verifying the accuracy and security of transactions to make sure that sensitive customer data is safeguarded and that all calculations are performed correctly. By prioritizing this high-risk area, the company reduces the chances of financial loss or legal complications. 04. The ROI of Early Bug Detection Cost Savings Early detection of bugs results in significant cost savings for businesses. As the software development life cycle progresses, the cost of fixing a bug increases exponentially. By investing in early fault detection, companies can avoid the high costs associated with later repairs. Industry reports show that the overall cost of a project can be reduced by 15-30% by fixing defects quickly. Improved User Experience A flawless user experience is essential for customer retention and brand loyalty. Finding faults early assures that your product works correctly from the start, eliminating user frustration. Providing a simple, flawless product at launch increases user satisfaction and improves retention. Happy customers are more likely to return and recommend your product to others, which encourages business growth. Business Continuity Early bug detection also supports business continuity by avoiding critical disruptions that could affect daily operations, customer relationships, and revenue streams. An important bug in production can cause costly outages, emergency repairs, and harm to your company's reputation. A stable and trustworthy product strengthens trust among both customers and stakeholders. viTesters approach to early bug detection and advanced testing strategies ensure your software is robust, reliable, and ready for real-world challenges By investing in early bug detection, you can reduce costs, increase user satisfaction, and ensure business continuity—all delivering superior customer experience. Reach out to us today and schedule a free 30-minute consultation. We will see how we can contribute to your product/service. https://www.vitesters.com/boost-call https://youtu.be/jpptd4L5RPU?feature=shared Check out our newsletter! #vitesters #bugs #costsavings #softwaretesting #softwarequalityassurance #shiftleft #strategy
- Whitepaper 02- Unlocking the Power of the Committed Team Model for Software Testing
Introduction: In this digital space, ensuring the quality of software products is critical to maintaining a competitive edge. Software Quality Assurance has become a specialized field requiring both expertise and flexibility to address a variety of challenges, including tight deadlines, scalability, and evolving customer requirements with rapid changes. viTesters' Committed Team Model is a dynamic, cost-effective, and scalable solution that ensures clients receive high-quality Software Quality Assurance services, tailored to their unique requirements. This whitepaper describes the benefits of adopting a committed team model, how it works, and why it can be a strategic asset for your business. What is the Committed Team Model? Our committed model consists of a dedicated team of senior Software testing professionals who have vast experience in the industry and different domains. As we select the suitable ones from our pool, the relevant experts who have previous experience will be allocated to the particular client. Therefore, they can adapt to any project and culture within a short time without lengthy learning curves. The team can include test managers, test leads, test engineers, and automation experts depending on the project’s requirements and scope. Based on the client's requirements, the team member(s) will be allocated to a client’s project for an agreed duration of the project. The client can get the service as an on-demand-based service or a contract-based service. The client can adjust the weekly or monthly time limits if it is an on-demand-based service. The committed team is more involved and deeply integrated into the client's operations, resulting in higher consistency, better communication, and superior outcomes. Benefits of the Committed Team Model Cost-Effectiveness No more additional charges. You don't need to worry about lengthy recruitment procedures, or salary packages by considering other commitments. Instead of investing in building and training an in-house testing team for short-term project requirements, businesses can save costs by leveraging our committed team model. The approach optimizes resources, minimizing the overhead involved in hiring, training, and maintaining additional team members to the in-house testing team. Expertise On-Demand Clients can tap into a pool of experienced testing professionals. Each team member brings domain expertise in industries ensuring that testing is done with precision and insight into industry-specific challenges. Finding out bugs is not the only task they do. As they have past industry experience for a long time, they know what latest features and workarounds should be there in your software to provide the best and most efficient services to your customers. Therefore, they are in the position of pointing out suggestions for the necessary improvements that you won't be able to get from an employee who does not have sound industry experience. The other thing is recruiting a senior engineer within a short time is difficult. Because there is a notice period from their side, too. Seniors' movement from one to another takes time with their notice period. But with us, we have an on-demand-based team. We believe it is one of the key advantages you can gain from this service. Flexibility & Scalability As your project needs evolve, the team model allows scaling. Whether it's increasing the team size for a large deployment or adjusting for a smaller release, the committed team is designed to flexibly accommodate your project's requirements without delay. Data protection You don't need to worry about the confidential information. We go with NDAs and we are committed to protecting it as agreed. Quality and Visibility of work Our test engineers give better output from their work. They are self-driven individuals who can work under minimum supervision. Regarding work visibility, we communicate the progress of the work via fortnight or weekly status updates, daily standups, or according to your communication channels/procedures. Full transparency of the work will be there. Consistency & Quality The committed team works closely with the shareholders over time, gaining deep knowledge of the project’s requirements, technical environment, and goals. This familiarity leads to higher levels of collaboration and superior testing outcomes, eliminating bugs before they reach end-users. Focus on Core Competencies Outsourcing testing to a dedicated team allows businesses to focus on their core competencies, ensuring that development teams can prioritize feature innovation and improvements while testing experts ensure product stability and quality. Key Features of the Committed Team Model Customization: Our team is tailored to meet specific business requirements. Whether you need more manual testing experts or test automation specialists, the team structure is customized for your unique requirements. The work procedures including testing artifacts also will be customized accordingly under our flexible work model. Long-Term Team who knows your domain: Over time, the committed team becomes an extension of your internal team, creating a synergy that enables smoother collaboration and higher efficiency. We know employee retention is one of the key challenges you are facing. With this model, co-module owners from our team can be allocated as backup resources whenever your team members are not available. Proactive Communication: Our team adopts the client’s preferred methods of communication, whether it's through daily standups, bi-weekly sprints, or monthly progress reports. Dedicated Resources: The model ensures dedicated tools, resources, and personnel that are focused solely on the client’s project, reducing the risk of split focus and delivering consistent attention to quality. Conclusion The committed team model is an innovative solution that provides the agility, expertise, and dedicated attention necessary for high-quality software testing. By leveraging this model, companies can benefit from having a team that not only understands their project but also provides long-term support and scalability. This model is ideal for organizations that require continuous testing, quick scaling, or specialized expertise. With a committed team, you don’t just get a service, you gain a trusted partner focused on delivering quality, improving efficiency, and ensuring success in your digital transformation. Check out our newsletter! #vitesters #blog #team #softwaretesting #softwarequalityassurance #costeffectivesolutions #businessgrowth
- Case Study 10: Ensure your software is truly ready for anything through comprehensive Edge Case Testing!
Project Background: Developers will verify the main flows and if the test engineers haven't verified the rest with edge cases, then edge case bugs will be detected by your customers! 90% of edge cases are not brought to the floor via business requirements because it is not possible. Edge cases are those rare, unexpected scenarios. Comprehensive edge case testing ensures that your system is ready for unexpected user behaviors, and flows. Users might input invalid data, navigate through negative paths, or alter the workflow sequence in unintended ways. This can lead to major issues that aren’t visible until after the product is in the hands of the end users. For this case study, the project was a web application of the Telecom and Finance domains. The key functionality was involved with receiving the customer's payments via various options including online transfers, bill payments via banks, cash payments, and payments via different supermarket outlets. Then all these transactions need to be reconciled daily and monthly. Per week, the daily reconciled amounts should be transferred to the Telecom service provider's bank account. Finally, the monthly transactions should be reconciled with the bank reports. Reconciliation processes were automated via robotic process automation and it was the system solution of this project. While the test team ensured that these key functions worked accurately, there was increasing concern about how the software would behave in rare or unexpected scenarios, known as edge cases. As it was a complex and risky system that was associated with the transactions with Telecom service providers' customers' money, the testing team had to think beyond expectations to identify what would go wrong, which points it would break, which user transactions would make the failures, etc... Generally, that identification comes through the test engineers past experience. Strategy: We understood that nearly 90% of edge cases are not identified in standard business requirements, as it’s impossible to predict every rare user scenario. Apart from ensuring the main functionalities, our strategy was to prioritize testing these unpredictable edge cases, which included: Unusual user behaviors Extreme input values Uncommon system states Business requirement identification with the discussion with the respective staff members: Ensuring that the test team accurately identified the business requirement was the first step of our strategy. Even though this is the first part of every project, here we gave more weight to this step. The team scheduled discussions with the in-charge staff members of the banks, supermarket outlets, and telecom service providers who handled the payment collection and reconciliation processes. Through them, the team identified practical issues they have faced. It was a great support for the team to have a big picture about the business requirements without limiting to the documentation. Creative Test Design: We applied advanced test case design techniques like mind maps to systematically explore and identify all potential scenarios that could disrupt the application’s functionality before moving to the Test case designing phase. Through mind maps and decision tables, we were able to visualize a vast number of potential test scenarios that the software could face, far beyond what traditional testing would cover. Those designs were reviewed by the lead engineers and Test cases were derived accordingly. This approach ensured the test coverage for all positive, negative, and exceptional scenarios. Challenges & Solutions: Apart from verifying invalid user inputs like what should be the system's behavior against payments for invalid telephone numbers, the team was more concerned about the negative and exceptional flows of the reconciliation process's algorithms and logic. Because even though the way of reconciliation process was the same it has been done in different ways according to the customer's payment collection processes' of different banks and supermarket outlets. Therefore, verifying the reconciliation process with different payment collection processes was one key challenge. The test team had to work with many data mappings and it was not an easy task that required an additional effort for test data management. When it comes to the payment handling processes of the banks and other centers, they deposit money to the Telecom service provider's account per 4-5 days. Let's say it is 5. If there were no continuous 5 working days due to holidays, there were many edge cases to consider. Because all of the holidays did not apply to every payment collector. For example, a Bank holiday is not a holiday for a supermarket outlet. The other thing is the same customer had more than one phone number and some of them used to make payments via different methods. When it comes to the data mapping with the phone numbers, customer names, and payment methods, it was a challenge. Tallying the actual money receival with the transactions was another challenge. Therefore, the many challenges involved with numbers and dates. As this was automated processes through Robotic process automation, the test team had to be conscious of the accuracy of the UiPath setup and its flows. Those were the key challenges of the unpredictable nature of edge cases. These cases are not part of the standard business flow and are often missed during typical development cycles. To overcome this, the team followed the above test strategies by using test case designing techniques like mind maps to ensure full test coverage. And having discussions with the ones who handled the payment collection and reconciliation processes gave us good confidence about the business requirements. As this dealt with huge data loads, performance aspects also were important. However, it was handled by another party. Results: The results of our comprehensive edge case testing were transformative. By identifying and addressing bugs in these extreme conditions before the software was released to users, we: Did not get critical and high UAT bugs and it proved the accuracy of our part we did. Enhanced the overall robustness of the application, ensuring it could handle even the most unlikely user behaviors and inputs. Significantly reduced post-launch maintenance costs and downtime, as fewer emergency patches were needed to fix issues reported by end users. Improved user satisfaction, as the application was now better equipped to manage unpredictable user actions without crashing or malfunctioning. Conclusion: By focusing on edge case testing, we helped the client move beyond standard testing practices and achieve a higher level of software resilience. Comprehensive edge case testing ensured that their application was ready to handle the unexpected, minimizing risks of post-launch failures. Our systematic approach, using advanced testing techniques and a good understanding of complex business requirements, provided the client with the confidence that their software could operate smoothly even under the most challenging and unforeseen conditions. Edge case testing isn’t just about finding rare bugs. It’s about ensuring your software is prepared for the real world. Check out our newsletter! #vitesters #softwaretesting #softwarequalityassurance #costeffectivesolutions
- Whitepaper 03: The importance of SQA's involvement in the requirement designing phase of SDLC
Introduction: Requirement analysis is the foundation of a successful software development project, whether it is Agile or Waterfall. As you know, many software development projects face common challenges such as delayed timelines and budget overruns. In this whitepaper, we will discuss how the involvement of the Software Quality Assurance team in the early phases of SDLC helps as a cost-effective strategy. In most Agile development projects, the SQA team has a chance to be involved in the requirement analysis phase. We have seen how our contributions have affected such projects compared to those where we started from the middle. In such projects, when we point out the best practices, improvements, and workarounds, sometimes those projects are not in a suitable status to consider. Because making such improvements in the latter stage is costly. When all the things are integrated, one single change affects many areas. Therefore, changing something in the latter stage will not be possible at all even though the business is interested in it. Why SQA team be involved in the requirement designing phase of SDLC? Cost Efficiency via validating the requirements early: When the product owners work on the requirements, they will focus on how to bring the business needs as the requirements. Business analysts will focus on capturing all the requirements and developers will focus on how to implement it as software. When the test teams review requirements, they will focus on validating the requirements. Apart from the validation, they will identify necessary improvements that can complete the requirements. When the QAs are involved in this requirement designing phase, they have higher chances to validate and complete the requirements by pointing out their views. If the particular requirement is not a completed one, then its respective changes have to be addressed later. Sometimes as change requests. As you know, all of these changes require additional budget. Based on their experience, they know what needs to be included in a particular feature. Taking that input gives everyone a very good understanding of the completeness, accuracy, and integration of the requirement. For example, if we consider a login function of a website, and let's say the requirement was given as only valid users should be able to login with valid credentials, and others' login should be restricted. In that case, if it has not been communicated about the company password policy and if it was limited to the expected format of the password, then that development needs to be considered later. If that password policy thing is embedded later, then both teams have to work on it again. The testing team should check the accuracy of passwords with many data not focusing on the implementation of the password policy but also on the initial implementation done. Otherwise, it will communicate as a system limitation in a later stage and it also requires a second round of effort. Therefore, if you think about the effort, both teams have made additional effort because that requirement was not completed. If that was validated and completed with the inputs of the QA team, you can see how that be a cost-effective strategy. Even though it seems like a small thing for this scenario, applying the same strategy to complex business features will see huge benefits. Key roles SQA plays in early SDLC phases: To give further explanation on this, let's see what roles SQAs can play in the Requirement analysis phase. 1. As requirements validators - Under this role, they will participate in the discussions and get the business idea about what they want from the system. From that step onwards, they can start validating the requirements by adding their points. For example, if the business needs to have about 1000 concurrent users, SQAs will point out how the resources should be optimized to have a better performance, what coding practices will reduce the performance issues, etc... Therefore, SQAs have a chance to consider about the requirements in different aspects and let the developers go with an optimized solution from the first place. 2. As UI optimizers - As they have worked on many UI interfaces, letting them point out their ideas at the design levels will be a great way. Because if they can point out what the UI should look like, and how it should be a user-friendly design across different devices, then they won't have any disagreements about the UI design after the implementation. 3. As Risk mitigators - When going through the analysis phase, they can identify what kind of risks will be there. Letting the SQAs contribute to this is a great strategy. Otherwise, this will be available in the Test plan and most of the time it won't be possible to work on certain mitigations. Benefits of SQA’s early feedback: Involving SQAs in the early SDLC is a good strategy for cost reductions. If you see the project's big picture and how its development and testing cycles work, you can identify how this brings cost benefits. Apart from that, collaboration among the teams is another advantage of this involvement. Because the development team has a chance to see and identify how SQAs' points of view. How SQAs will think? Which testing types will be considered? What are the best practices they are keen on when doing different testing types? What coding practices and hardware resource utilization the Dev should think about especially when there are plans to do automation and performance testing? Otherwise, we have seen many conflicts among the teams when SQA suggests a new thing or brings something up during the testing cycles. Therefore, their involvement from the beginning helps keep every stakeholder on the same page. Conclusion: The impact of involving QA in early SDLC phases as a transformative approach that aligns with modern software development needs. Reiterate that early SQA involvement helps deliver high-quality software on time and within budget, benefitting both development teams and end-users. This way fosters a team culture where quality is everyone’s responsibility, not just SQA’s. This way will encourage developers to think of potential issues and edge cases as they code, with SQA as their quality partner. https://www.youtube.com/watch?v=-9qmcWZlw9I Check out our newsletter! #vitesters #blog #softwaretesting #softwarequalityassurance #costeffectivesolutions #businessgrowth
- QJ15: Malin Amarasinghe's Career Path to Becoming a Software Quality Assurance Manager
Having over a decade of experience in software quality assurance, Malin Indrajith Amarasinghe is well-respected for his commitment to excellence and dedication. As a Software Quality Assurance Manager, he has significantly contributed to improving quality standards in both corporate sector projects and government initiatives, fostering a culture of excellence that inspires his teams. Known for his keen analytical skills and attention to detail, Malin ensures that every project he oversees meets the highest quality standards. Malin’s path began at Virtusa Pvt. Ltd. in 2006, where he took his first role as an Associate Software Quality Assurance Engineer. It was here that he developed a strong foundation in software testing, quality control, and team leadership. His passion for delivering reliable software led him to take on roles that required both technical expertise and leadership, a combination that has become a significant aspect of his work. Malin is known for his ability to connect testing and quality efforts with broader business goals. His experience includes managing requirements, designing test cases, preventing defects, and addressing issues as they arise. By identifying and resolving potential challenges early, Malin helps ensure projects run smoothly and deliver high-quality outcomes. Malin’s impact extends beyond his technical skills; he’s a natural mentor who provides his teams with valuable feedback and encourages them to develop their abilities. His supportive approach has fostered a culture of learning and improvement, where team members feel motivated to give their best. Malin’s career also includes time spent working in the UK, where he served as an Operational Readiness Test Lead for a major telecom provider. In this role, he was responsible for end-to-end testing to make sure systems were fully ready for launch. His ability to manage complex testing environments and work with multiple teams helped launch successful projects on a tight timeline. He’s also worked with the Information and Communication Technology Agency (ICTA) in Sri Lanka, where he ensured that large-scale government IT projects met high standards through Independent Verification and Validation Testing (IV&VT). His role was essential in making sure these systems were reliable and complied with strict requirements, contributing to their overall quality and security. Leading the software quality assurance team at Nimbus Venture Pvt. Ltd., Malin has played a crucial role in establishing rigorous standards that consistently elevate product quality, driving the company to exceed industry expectations. He is responsible for developing quality processes, managing defects, and training the QA team. Under his guidance, Nimbus Venture has progressed from meeting basic quality benchmarks to setting new standards in the industry. Outside his main job, Malin actively supports the QA community. He shares his knowledge as a visiting lecturer at The Open University of Sri Lanka and serves as an internal trainer in both his current and past organizations. In recognition of his commitment to training, he received the Training Excellence Award in 2014 from Virtusa Training & Development in Sri Lanka. Malin provides valuable insights that help bridge the gap between theory and practical application, giving team members and students a strong start in the field. Malin’s career reflects a commitment to growth and excellence. His technical expertise and leadership have raised standards in quality assurance, inspiring his teams and elevating each project’s quality. He demonstrates the dedication needed to make quality central to software development, leaving a lasting impact on his field and colleagues. Check out our newsletter! #vitesters #softwaretesting #journey #softwarequalityassurance #careerjourney
- QJ14: Prashant Hegde's Epic Journey from Uncertain Beginnings to Global Recognition
Prashant Hegde is a seasoned testing leader with over a decade of expertise in software testing. As QA Head at MoEngage, a pioneering customer engagement platform, he drives quality engineering excellence to deliver exceptional customer experiences. A sought-after speaker, Prashant inspires global audiences at software testing conferences, sharing actionable insights and expertise. With 50+ published articles, he's a respected thought leader in the testing community. Prashant prioritizes knowledge sharing, empowering others to succeed. LinkedIn: https://www.linkedin.com/in/prazhegde/ Blog:https://www.prashanthegde.biz/articles Website: https://www.prashanthegde.biz/ PROLOGUE - GAMES OVER GRADES Prashant Hegde, a respected international speaker, prolific writer, and inspirational leader, was a vastly different individual during his college years. Prashant was the classic backbencher, always finding ways to have fun and evade studies. His college mantra? "Games over grades." Prashant's passion for gaming knew no bounds, with Counter-Strike being his go-to game. He spent countless hours mastering strategies, conquering virtual battlegrounds. Academically, Prashant's 12th-grade performance suffered, with gaming and friendships taking priority. This had lasting consequences. Although he rebounded in engineering, finding balance, the past caught up with him. Missing the aggregate cutoff due to his 12th-grade grades closed doors to on-campus job opportunities. Prashant's academic record showed contrasting fortunes: good marks in engineering, but humble 12th scores. Prashant struggled to get a single interview as his classmates celebrated multiple job offers. Upon graduation, Prashant faced a bleak reality: no job offers, and no backup plan. no clear direction. PRIORITIZE WISELY, AS CHOICES HAVE LASTING CONSEQUENCES. YOUR CHOICES TODAY CRAFT THE STORY OF YOUR TOMORROW. CHAPTER 1 - BATTLING THE SELF DOUBT Prashant encountered criticism, skepticism, and doubt from those around him, eroding his self-confidence. Prashant's future remained uncertain. Personal struggles intensified. Prashant discovered a software testing course in Bangalore, seeing it as a potential gateway to a job. Software testing was just a brief chapter in his engineering curriculum. He had limited knowledge of software testing and its career prospects. With uncertainty looming and a pressing need for a job, he made a bold move. Prashant made Bangalore his new home, signed up for the course, immersed himself in software testing, and started looking for jobs. While few offered concrete help, there was no shortage of free advice. Many discouraged him from pursuing software testing, as they believed it was a stagnant field with little room for growth. Widespread misconceptions about software testing daunted him. Some advised Prashant to explore alternative careers, while others suggested pursuing a master's degree. His career struggles had begun to seep into his personal life, testing their resilience. Prashant faced a battle within. Prashant's mind wrestled with desperation for a job, personal issues, and skepticism about software testing as a career. Prashant strongly believed that success follows when you pour your heart into your work. Any job done exceptionally can lead to greatness. Defying naysayers and personal doubts, He embarked on a software testing career. His journey hit a speed bump with repeated interview rejections. Self-doubt crept in and rejections momentarily slowed him down. But Prashant was anti-fragile - Adversity became his ally, and he got better with every interview he gave. He learned from his mistakes and leveraged feedback to improve. Mistakes became valuable lessons, and feedback turned into fuel for improvement. Following a period of perseverance, Prashant finally secured his first job. PERSIST, BELIEVE, AND RISE. MAKE ADVERSITY YOUR CATALYST FOR GROWTH. CHAPTER 2 - DISTRACTION TO DESTINY GUESS WHAT WAS PRASHANT’S FIRST JOB? - A GAME TESTER!! Prashant was called for a job interview that needed knowledge in testing and expertise in gaming. He aced the interview. Life came full circle for Prashant as his passion for gaming, once a distraction, became his profession, landing him his first job as a game tester. Prashant gained valuable skills and experience as a game tester. Prashant got the opportunity to test iconic anime titles on PS3, X360, and other leading consoles. The seemingly dream job: game testing - quickly revealed its downside. The job offered low pay, less growth, no benefits, and more importantly lack of job security. Just six months after starting his career, Prashant found himself facing job instability, bringing back memories of advice against a career in testing. Like most testers, Prashant was an accidental tester. Whether intentional or accidental, did not matter to him anymore. He had developed a love for the craft. He chose to pursue testing wholeheartedly. Prashant evolved his testing and automation skills. He moved from games to web and mobile applications. Prashant swiftly regained momentum by joining innovative startups in the next phase of his career. Taking ownership early in his career helped him grow. Prashant excelled at seizing opportunities. He led initiatives and delivered outstanding outcomes wherever he worked. This helped him achieve early career success and ascend to leadership. Prashant took on big projects and delivered excellent results. Prashant recalls the early years of his career with late-night office stays and overnighters for high-stakes releases, but now cautions youngsters to prioritize health alongside work. He brought out the best in his teams by leveraging his leadership skills. Prashant went on to build a solid reputation becoming a successful leader. Prashant showcased his versatility by taking on diverse roles. Prashant wore multiple hats and served as a Tester, Scrum Master, Project Manager, and Product Owner, adapting to business needs. Prashant started blogging to share his thoughts and ideas. His writing emerged as a natural extension of his growth, driven by a desire to share his insights and expertise with others. Little did he know that this would unlock doors to a plethora of new possibilities and global recognition. ACT- ADAPT, CONTINUOUSLY LEARN, THRIVE CHAPTER 3 - THE TEST OF LEADERSHIP With a legacy of driving testing excellence in his past organization, Prashant joined MoEngage in 2017. Prashant was about to face the toughest challenge in his career. His journey at MoEngage began amidst the chaos with a struggling team plagued by exits, demotivation, and disorder. Testing practices and processes were subpar, products were not up to the mark. The testers lacked credibility and respect. His leadership and testing expertise were crucial in navigating this critical juncture as the team was on the brink of a collapse. As Prashant struggled to revive the testing unit, he faced discouragement from within. Some insiders suggested that he abandon the ship in the first few weeks of joining MoEngage. He heard the whispers: "Leave now, while you still can." Despite having other options on the table, Prashant chose to stay as he valued his relationships with leaders and the trust they had in him. This ultimate test of leadership required Prashant to draw on his resilience, strategic thinking, and people-centric approach. Prashant took up the monumental task: of rebuilding MoEngage's testing team from the ground up with a new squad of freshers. Parallely, establishing robust processes, and instilling a culture of testing excellence. Prashant’s leadership approach emphasized influence, communication, and empathy (ICE). Prashant believes in leading by example, walking the talk, and inspiring others. Prashant excelled as both a leader and individual contributor, juggling dual roles. As a leader, he focused on creating a psychologically safe environment for his team members to experiment and innovate. Prashant brought in new perspectives and several innovative practices to improve testing efficiency and effectiveness. Prashant championed testers' value showcasing their crucial role to stakeholders through their work. Prashant changed perceptions about testing and testers. Prashant created an environment where testers are valued and respected, ultimately contributing to better software and more effective teams. He empowered his team to make decisions on their own. Prashant gave them autonomy while maintaining authority. He did not act as a manager but as a mentor to his team. Instead of giving orders, he coached the team and led them to act independently. He enabled his team members to grow by assigning them challenging tasks and training them on the required skills to further their development. Prashant's leadership approach, centered on genuine concern for team members' growth and well-being, yielded exceptional performance. He transformed freshers into confident testing professionals. As engineering expanded, Prashant strategically scaled the team. MoEngage's testing team flourished under Prashant's leadership, transforming the testing team into a high-performing unit. Prashant's impact at MoEngage was far-reaching, as he introduced various initiatives that transcended QA, influencing many engineering practices and earning recognition and respect across MoEngage. Prashant’s entry-level recruits rose through the ranks to become QA leads. Prashant's tenure at MoEngage has been a defining chapter in his leadership journey, and he's deeply indebted to the organization and its leaders for their guidance, trust, and unwavering support. Prashant shares a strong bond with his team beyond work built on mutual trust, and respect. Prashant has earned the respect of his team members for making a lasting impact on their careers. TRANSFORMATIVE LEADERSHIP REQUIRES EMPATHY, TRUST, INNOVATION, AND INVESTING IN PEOPLE. EPILOGUE - GLOBAL RECOGNITION This chapter encompasses the period before and during his MoEngage journey. Prashant wrote his first article about leveraging mindmaps in software testing. Prashant's innovative approach to leveraging mind maps in software testing resonated with audiences. His well-crafted article sparked meaningful conversations. This encouraged Prashant to write more. Prashant began his writing ideas on his blog, gradually expanding to guest blogging. His growing reputation soon led to paid writing opportunities. While establishing himself as a blogger, Prashant started transforming his articles into engaging talks. Prashant made a remarkable debut, securing a speaking spot at an international conference on his first attempt, paving the way for future global engagements. Prashant started collaborating with software testing communities, engaging in various initiatives, and promoting knowledge sharing. Prashant Hegde emerged as a speaker in the software testing sphere, regularly addressing conferences, meetups, webinars, and industry forums. Prashant's testing excellence was recognized through several prestigious awards and competition wins. He developed a strong online footprint and built a compelling personal brand. As a mentor, Prashant paved the way for numerous individuals to launch their testing careers. Prashant's family played a vital role in his success. Prashant's wife's support and encouragement have been instrumental in shaping his ambitious mindset. Prashant's wife taught him to aim high and never settle for less. Prashant's wife took on additional responsibilities from taking care of their children to the household, giving him the time and space needed to focus. Prashant's mother taught him to Go the extra mile, a lesson he's carried into his professional life. He always strives to surpass expectations, a principle that has driven him to success. His father’s influence helped him develop a strong moral compass. His father instilled integrity, empathy, and authenticity in him. Prashant has used these skills throughout his career, building strong relationships with his colleagues and customers. His commitment to these values has been the foundation of his success. Prashant continues to challenge himself to reach new heights, and he is always looking for new ways to improve the lives of those around him. He has set a good example for others to follow, and his work has had a lasting positive impact on his community. It is not the end of Prashant's journey, it is just the beginning. Through his talks, writings, and community initiatives Prashant continues to inspire. He is determined to achieve even greater success. From uncertain college days to global success, Prashant’s story inspires, demonstrating resilience and determination. FOLLOW PRASHANT LinkedIn: https://www.linkedin.com/in/prazhegde/ Blog: https://www.prashanthegde.biz/articles Website: https://www.prashanthegde.biz/ Picture credits - MetaAI,ChatGPT
- QJ13: Maduka Dona Colombage – Director Quality Engineering
Maduka's Quality Assurance (QA) journey is a remarkable testament to perseverance, passion, and the power of education. Beginning as an Associate QA Engineer at Virtusa while completing her bachelor's degree at the University of Moratuwa, she exemplified a strong commitment to her career from the very start. Graduating with a Second Upper Class in Electrical Engineering, she didn’t stop there; her pursuit of further knowledge led her to earn an IT degree from SLIIT. Her rise through the ranks, from Senior QA Engineer to QA Lead highlights her dedication and expertise. Maduka's passion for sharing knowledge has made her a well-respected figure at Virtusa, known for her role as an interviewer and trainer for aspiring QA engineers. Her recognition as the top trainer in 2010 underscores her commitment to nurturing talent. With experience across various domains, including Financial & Banking, Healthcare, and Insurance, Maduka has successfully led a team of over 50 testers, showcasing her ability to manage large-scale projects. Her technical skills encompass functionality, database, automation, performance, and API testing, allowing her to adapt to multiple technology stacks throughout her career. In 2011, her exceptional performance earned her the opportunity to work with an onsite client in the USA, where she transitioned to a QA Manager role and celebrated 15 years with Virtusa. Her contributions were recognized when she was awarded the Top Contributor to the Healthcare Segment in 2019. Additionally, her pursuit of a Project Management Professional (PMP) certification in 2019 reflects her dedication to continuous improvement. Maduka's leadership qualities have shone through her roles, culminating in her current position as Head of Quality Engineering Practice at EvonSys. Here, she manages overall QA operations, focusing on low-code platforms like Pega, Salesforce, Mendix, and OutSystems, with a keen interest in workflow automation and AI-powered decision-making. Beyond her professional accomplishments, Maduka attributes her success to her father's unwavering support, who has been a pillar throughout her educational and career journey. Now residing in Delaware, USA, she enjoys exploring nature and spending time with friends, while still maintaining strong ties to her homeland. Through her involvement with the "Diriya Pawura- Akurata Diriyak" Association, she gives back to Sri Lanka by supporting underprivileged school students each year. Maduka is celebrating an impressive 20 years in her career, and her journey is truly an empowering example for aspiring QA engineers. Her commitment to continuous learning, collaboration, and passion has been the foundation of her success, inspiring many to strive for excellence in their own careers. She emphasizes that cultivating a mindset of growth and resilience is essential—traits that can make anyone unstoppable in the face of challenges. Maduka's story not only showcases her professional achievements but also highlights the importance of giving back, mentoring, and supporting the next generation. Her legacy will undoubtedly motivate many to follow in her footsteps and pursue their dreams with determination. Here’s to Maduka and the impact she continues to make in the field of Quality Engineering. Check out our newsletter! #vitesters #softwaretesting #journey #softwarequalityassurance #careerjourney
- QJ12: Journey of Kanchana Dilhara Samarakoon
Dilhara Samarakoon’s journey in the world of software quality assurance began with a spark of curiosity and a passion for perfection. Fresh out of university in Sri Lanka, she found her footing at NQUAL, where she started as a Software QA Engineer. Testing client-server applications, web portals, and a variety of systems, Dilhara quickly realized that QA wasn’t just about finding bugs—it was about ensuring the quality and reliability of products that people would depend on. In these early years, she gained hands-on experience in performance and stress testing. It was here, in a growing tech environment, that Dilhara laid the foundation for her career. Her thirst for knowledge and drive for excellence soon took her to Calcey Technologies, one of Sri Lanka’s most reputable software development firms. As a Senior QA Engineer, she quickly established herself as a critical asset to the team, taking on challenging projects that involved different types of testing. With her sharp eye for detail and natural problem-solving ability, Dilhara’s role expanded, and she became the go-to person for managing large-scale QA projects. She was known not only for her technical expertise but also for her collaborative spirit—mentoring colleagues and constantly pushing for better solutions. Her influence was pivotal in setting the stage for Calcey’s future growth, and she was soon promoted to Head of QA. For the next several years, Dilhara thrived in her leadership role. She grew the QA team, designed robust testing strategies, and led high-stakes projects that spanned web, mobile, and desktop platforms. Managing large teams and ensuring the delivery of high-quality software to global clients, she demonstrated that leadership is about empowering others while maintaining a laser focus on quality and results. Her work at Calcey Technologies wasn’t just about solving problems—it was about driving innovation and creating a culture of excellence. Dilhara became a respected leader within the company and the wider tech community. Driven by her entrepreneurial spirit, Dilhara co-founded Repute Digital Services in 2020, a company designed to offer QA services. Dilhara and her team provided comprehensive testing services, from functional and regression testing to automation and performance testing. Her leadership helped Repute Digital grow, and her strategic thinking allowed clients to achieve their QA goals without compromising on quality. For aspiring QA professionals, Dilhara’s journey from QA engineer to co-founder is a reminder that with the right mindset, QA professionals can make a lasting impact not only within teams but also as entrepreneurs who redefine the standards of quality in the industry. Dilhara’s dedication, leadership, and commitment to quality eventually brought her to Computershare UK, a large multinational company where she now serves as Lead - QA Engineering. In this role, she leads multiple QA teams and oversees the entire testing life cycle of a product that enables employee share plans. Dilhara’s work is not only about ensuring that software is reliable and performs well—it’s about creating systems that are efficient, scalable, and built for the future. She is responsible for managing cross-functional teams, implementing automation strategies, and driving continuous improvement in testing processes. Her journey from a QA engineer in Sri Lanka to a QA Lead at a global company is a story of growth, resilience, and passion. Along the way, Dilhara has proven that success in the tech industry comes not just from technical expertise, but from the ability to lead, innovate, and inspire others. For upcoming QA professionals, Dilhara’s story is a beacon of possibility—showing that with curiosity, continuous learning, and a commitment to quality, the world of software testing can open doors to a rewarding and impactful career. From her early days of manual testing in Sri Lanka to leading teams on the global stage, Dilhara’s career is a testament to what can be achieved with focus, perseverance, and a dedication to excellence. Check out our newsletter! #vitesters #journey #career #successstory #blog #linkedin #softwaretesting #softwarequalityassurance
- QJ11: The Journey of Test Chapter Lead - Ayesha Jayawardena
Ayesha’s Quality Assurance (QA) journey started as an Associate QA Engineer at Virtusa. She joined Virtusa while completing her bachelor’s degree at Curtin University. She didn’t stop there; she continued her further studies with SLIIT while working at Virtusa as a fresher. Ayesha always thrives for the best and successfully completed her second Bachelor’s Degree with a second upper class. During her final year, she worked on building a framework with her team, “Common QA framework for Saving business flow in the banking system” and published it at SLIIT Research Symposium in 2008. Ayesha is a natural leader who showcases her leadership skills in almost everything she is engaged with. Ayesha brings a lot of skills to her professional life by being a basketball player at school. She has played basketball for many years at school, Kurunegala district, Northwestern province, and the national youth pool. Her captaincy has helped those teams to win many championships. She has continued to play basketball at SLIIT and she was the secretary of the first sports council at SLIIT. Sports has helped her to strengthen her personality as a leader and excel in her professional career. At Virtusa, she got the opportunity to work as an automation tester on her first project. She is a quick learner and adapted well to new tools. This was a big milestone of her automation journey as it helps her to continue to learn many automation tools like QTP, WATIR, Robot framework and Selenium, etc, and move on to various projects within Virtusa. Ayesha is a tech-savvy individual who has self-studied WATIR tool & Ruby language and built an automation framework for her project. Later, she became the official trainer for WATIR tool in Virtusa. Further, she has submitted white papers on the WATIR tool in QA days. Her automation excellence helps her to be part of the “CMB Test Automation Specialized Group” that works on automation initiatives in Virtusa. She has worked in Banking, Telecommunication, Content Management and Network threat analysis domains. She was a top performer at Virtusa and within a time span of 8 years she excelled in to Associate QA Manager role. This includes 5 promotions; QA Engineer, Senior QA Engineer, Consultant and Senior Consultant and Associate QA Manager. She became the Overall lead for a 30+ testers pool that worked across 6 projects as a “Center of Excellence” across Banking and Financial Services (BFS) account. She is a well-known individual within Virtusa as an interviewer and also as a trainer for future QA engineers. She is an all-rounder who stepped into various activities within Virtusa. Another example of her engagement is to achieve CMMi level 5 in 2012. Ayesha has won many awards within Virtusa for her excellent service to the QA community, “Training Excellence Award”, “Service Excellence Award”, “Quality Award” and “Participation Award for CMMi Level 5 Achievement”. . As a Virtusan, she got the opportunity to be a visiting lecturer for Quality assurance (QA) subject at 2 leading universities, the National Institute of Business Management (NIBM - Sri Lanka) and the University of Colombo. While Ayesha is excelling in her career, she is also focused on getting her postgraduate qualification “MBA in IT” at the University of Moratuwa. She started her Masters when she reached her leadership level so that she could practice her learnings within the professional environment. This is a competitive academic qualification and Ayesha completed her master's degree within 2 years as class rank one (batch top). She not only excels at her career but also at academics. Her master's research was on “CMMi adoption of Sri Lankan software development companies”; she reached out to various companies to carry out the analysis and got the opportunity to engage with a wider audience in the Sri Lankan IT industry. This opened up many doors for her and she got invited to do a visiting lecture at the University of Moratuwa for postgraduate students. Ayesha’s family moved to New Zealand in 2016; she left great memories with her Sri Lankan IT professionals who are still in contact with her. She was a great leader/ mentor/ coach/ trainer/ teacher for many Virtusans and university students. In a new country, she again started her career from scratch as an Automation analyst at Datacom. Settling down in a different country with a young family is always challenging. Ayesha took the first few years to adapt to the country, IT industry, and ways of working. Her background of working with US and UK projects helped her to understand the team dynamics, technologies and culture. She has worked onsite with a few clients and built a good rapport with IT professionals. Later, she moved to ANZ bank as a Senior Test Engineer with a new challenge of learning Data warehouse testing. It was the first time she stepped into ETL testing and she accepted the challenge. She always takes these opportunities to expand her knowledge and add more skills to her technology spectrum. She learned cloud technologies and integrated data warehouse solutions with the latest technologies like AWS. She was a quick learner and adapted quickly to new project contexts. Once again, she showcased her leadership skills and was promoted to Test lead role within two years. She continues to excel in her career by moving to her next role as Chapter Lead at ASB Bank. She has been into the banking domain for more than twelve years (this includes 8+ years of PEGA testing). Being an Associate QA manager before helps her to settle down quickly within the Chapter lead role. Currently, she is managing more than 20 testers within engineering practice. Ayesha enjoys her new role as it involves working on new initiatives, learning opportunities for new domains & technologies, and people management with diversified team members & culture. She is a mentor in the “Women in Tech” program at ASB and also leads a few initiatives within Engineering practice. After working for a few years in New Zealand, she became a committee member of the Institute of Engineers Sri Lanka New Zealand (IESL NZ) chapter and contributed to supporting the Sri Lankan community in NZ. She was a member of the advisory panel in a Webinar organized by the IESL NZ chapter for migrant engineers. She is an active committee member and contributes to organizing various events for Sri Lankan Engineers living in NZ. This was another opportunity for her to build a network with like-minded professionals. Ayesha lives in Auckland with her husband and daughter. She loves spending her leisure time with friends and family. She still continues to play social basketball in NZ. She has volunteered to coach basketball and netball for kids in NZ. Ayesha’s QA journey shows how sportsmanship helps to build key niche skills that help to survive in the IT industry. Her story empowers next-generation QA engineers to build confidence and start their QA careers with high standards. Lastly, she mentioned that setting up a mindset of continuous learning, taking risks, accepting challenges, and working towards passion would make you unstoppable. Check out our newsletter! #vitesters #career #journey #software #softwaretesting #softwarequalityassurance