Agile Automation Framework
#BehavioralDriven #Cucumber
A passionate tester, problem solver and an automation architect with over a decade of experience in developing innovative automation solutions and managing large-scale projects. As an advocate of enhancing quality in software using test automation, he has helped testers and organizations globally to become better at quality assurance. He brings along his vast hands-on experience working in 3 continents, 4 organizations, 5 countries, and a long list of clients in the Banking, e-Commerce, Publishing, Telecom, Airlines and Services industry.
Automation Frameworks | Behavioral Driven, Test-Driven, Data Driven, Page Object Model, Hybrid |
Automation Tools | Selenium WebDriver, Appium, UFT, LeanFT, Cucumber, Specflow, JMeter, Applitools, EggPlant AI, ConformIQ |
Test Management Tools | HP ALM, VSTS, VersionOne, Jira, Xray, Bugzilla, TestLink |
Programming Languages | Java, Python, Shell |
Web Services | SOAP, REST, Postman, Karate, RapidAPI, SOATest, Virtualize |
Web Development Languages | HTML, PHP, JavaScript |
Other Languages | XML, SQL, XSLT, JSON, VBScript, XQuery |
Platforms | Database (Oracle, MySQL, POstgreSQL, MongoDB), Microsoft Azure, Application Server (Apache HTTP, Tomcat), Docker, Web Development (Bootstrap), Mobile (Android, IOS) |
Big Data | HPCC Systems/ECL, Mark Logic |
CI-CD | Jenkins, Git, Bitbucket, SonarQube, Maven, Gradle, Junit, TestNG |
Reporting/Analytics Tools | Tableau, Power BI, MicroStrategy, RapidMiner |
Domain Experience | Banking, Airlines, Publishing, Legal, e-Commerce, and Services |
Spearhead the Quality Engineering practice for the Commercial Banking and Payments Technology. Modernize the test automation, test data management and non-production test environments management with a proactive, preventive approach to implement quality systems. With a mission to enhance productivity, quality and profitability across the delivery teams within the line of business, led the way in enhancing and implementing newer tools, standards, and best practices to QA including in-sprint test automation and model-based test development. Managed automation deliverables directly for Smart Business Banking, Cash Management Online, Payments Services Hub, Trade360 and many more.
Developed innovative test automation solutions to improve testing effectiveness, efficiency, minimize risks and costs. Managed the automation center of excellence for tools, and framework. Provided technical guidance and support to develop, implement and maintain automation test suites, tools, and technology stacks for several portfolios. Accountable for developing and maintaining the automation framework used by 350+ globally distributed associates. Improved test automation code quality multifold and led continuous testing initiatives for the group. Acted as a change agent; Provided thought leadership by researching best practices, conducting proof of concepts, and collaborating with other leaders in the testing competency. Helped with recruiting, train and mentor agilists and quality engineers for multiple clients across Canada.
Spearheaded the development of functional and automation test strategy for two key areas namely customer data platform and the enterprise integration for Air Canada’s revamped loyalty program. Played a pivotal role at the start of this large transformation in building a holistic end-to-end test strategy for the program, improve testing efficiency, introducing agile process improvements, recruit and train associates in onshore and offshore, and help in aligning the strategic vendors/partners with the program goals. Introduced the API automation tools and techniques, integrated it with the existing framework to transform it into a single full-fledged end-to-end hybrid automation framework. Developed the test strategy and approach for an AI-driven cargo management system. Key architect in transforming their existing web automation framework into hybrid framework to enable robust end-to-end test automation.
Led the quality assurance practice and kick-started the transformation of the predominantly manual test organization into an automation center of excellence. Built a robust and integrated test framework to validate the front-end web application, Sitecore, and Salesforce Commerce Cloud backend and their associated APIs using Behavioral Driven Development (BDD) approach for clients such as Alberta gaming, liquor, and cannabis commission, and Dexcom.
Agile Champion, aided in the smooth transformation of the testing organization into Agile. Defined automation test strategy and test approach for multiple large portfolios. Created advanced software test automation solutions for Big data testing. Responsible for overseeing the quality assurance of content fabrication and enrichment systems delivering content to client’s flagship web application. Managed a team of offshore testers who are validating and automating an NLP based entity recognition, linking and master data management system on a proprietary "Big Data" system named HPCC.
Responsible for the quality assurance of a flagship web application used by professionals globally for their legal research. Managed a globally distributed team of 15 testers in a multi-vendor environment, performing functional, regression, content-application integration and system integration tests on Web and Mobile applications.
Responsible for the quality assurance of a backend collection and conversion platform built for documents procured from vendors in different formats.
Managed a team of five functional testers to validate the e-Sales and e-Services platform for a major broadcasting and telecommunication service provider in the UK.
Part of a quality assurance team which validated the CRM platform called “Chordiant” for a major broadcasting and telecommunication service provider in the UK.
Developed this plain vanilla automation framework using open source tools for a client when their organization moved from a waterfall to agile methodology. The Behavioral driven development using Gherkin and Cucumber replaced the legacy automation framework. It brought in transparency and high reuse, enabling progressive automation within the sprints. Achieved ~80% in-sprint automation across teams within 6 months.
While the cucumber framework increases re-use and reduces effort spent in result analysis, considerable effort is still required in running them as data-driven tests. Implemented a cucumber hook that enables defining the test data instructions rather than actual test data in the test case. It will dynamically pull the test data in runtime and pass it to the test case there by reducing effort spent in test data preparation. Introduced automatic bug tracking as well to further reduce the overheads in the testing processes.
In most cases, the Test Automation has been limited to automating the manual test cases to replicate an user's action. I wanted to change this and implemented NLP techniques to analyze test logs, and previously found bugs to identify test data. Further, create "Smart Data" using techniques like pattern recognition and prioritization to eliminate redundant test data and improve test effectiveness. With the new AI platform, enabled continuous learning and adapt with each test run.
For a client, due to the complexity of all components coming together early, 90% of their content testing was forced to happen using the front end application. As a result, there wasn't enough time to fix the issues in the upstream components. Introduced an automation approach and developed a tool that can be used to validate content without the need for an user interface. As a result, 70% of content testing was shifted left and ended up finding ~65% defects earlier. Test coverage also increased by 250%., Yes! its two hundred and fifty percent. My analogy on importance of early testing is given above.
Reduced the manual effort involved in test case management by introducing an automated process for handling new and updated tests whenever someone checks-in their changes to the central repository. The custom test case management script pulls the tests, apply pre-defined rules, transform them and upload them to an ALM tool automatically. The living document generator also gets updated. If there are issues with the Gherkin tests, any parsing the users are also notified.
Simplified the process of result analysis and bug reporting by introducing the automated bug logging and tracking. In addition to the test logs, the application logs are also validated for any errors and bugs are logged without a person manually looking at it.
To reduce the manual effort spent in writing queries everytime and retrieving required test data from a BigData repository, created a standalone tool with the most widely used options throughout the organization. The tool uses XQUERY to search the MarkLogic repository and returns a sub-zero second search result with required data. It is widely used across the organization with over 100 users spread across the globe.
Created a standalone utility to transform the gherkin tests and upload to a test management tool like TestLink. It also enables migration of test cases from one tool to another. Example: HP ALM to TestLink. Implemented in three different portfolios for a client and 50+ users.
Instead of validating individual documents explicitly for every feature implemented, introduced the process of comparing the pre and post deployment versions of the same document. If there are no differences found, we could confidently certify that nothing is broken from regression standpoint in the most efficient way. Only the differences that is not expected (not in the known difference list) needs to be investigated.
Resolved the problem of not having enough test metrics in AGILE projects by developing a custom dashboard with Apache, MySQL and PHP. Dashboard gets the data from tools like VSTS, VersionOne and automated test logs. The dashboard provides valuable trends that enable data-driven decision making.
Introduced a health report for different systems using the BVT and Smoke test results already setup for individual components. It helps the development, test engineers and managers access real-time system availability.
Even though hundreds of production tickets and internal defects are handled everyday, most organizations do not have any visualization of this data to enable data driven decision making. I developed a tickets analysis and automatic ticket resolution system by orchestrating a number of carefully selected open source tools.
One of the common problems in large organizations is the non-availability of a generic platform to generate analytics from unstructured data. For example, the customer sentiments are not available from user comments, feedback, production tickets and any other unstructured data which might provide valuable insight on the current state of products. I built a text analytics platform which takes any unstructured data as input and provide required insights based on the data type.