Engineering teams understand the importance of a comprehensive continuous testing strategy to build digital confidence, improve user experience, and accelerate release velocity. However, when beginning on the journey to continuous testing, the task of building and executing a strategy that provides clear value can be challenging. Whether it’s designing automation from scratch, understanding where you can scale the value of your tests throughout the pipeline and across teams, or demonstrating the value that quality brings to larger business objectives, building a test automation strategy sometimes creates a web that is seemingly too complex to untangle.
In this webinar, Yoosuf Maktoum, Senior Manager of Quality Engineering at Sysco Corporation, will share a test automation design and implementation strategy that helped his own team achieve success. Yoosuf will discuss a unique test automation design pattern that both supports and accelerates automation efforts. This framework, leveraging open source technologies, enables reusability, smarter and faster automation, and is suitable in both a DevOps and Agile workflow. He will then demonstrate how this framework can be applied to a single test automation script for functional and nonfunctional tests, test data management, and test environment management, as well as how it can support testing for both legacy and modern applications. Through these methods, his team is able to provide quality as a service across the organization.
Attendees of this session will learn:
- Basic design principles to consider when building out automation, and how open source can augment your strategy
- How to apply a single automation framework across various types of testing (web, mobile, API, and standalone automation)
- Strategies for aligning testing with business objectives to demonstrate value to leadership
2. Delivering the best customer expectation has become more complex
and complicated in the age of digital transformation. It is proven that
manual testing will not suffice to ensure the best digital confidence.
The need for test automation is dire, but the traditional test
automation approach will not be sufficient to build digital confidence.
Situation
3. Challenge
Building digital confidence in an enterprise with a diverse array of
applications and systems working together to fulfill customer
expectations.
6. Crawl
Walk
Run
Fly
Stand
Modular Hybrid Reusability As Service
Architecture Capabilities
QualityEngineeringCapabilities
Functional Test
Automation
Reduce
Execution Time
AI
Mobile Test
Automation
Performance Test
Test Data
Further Increase
Engineering Productivity
7. ROI of Test Automation
Engineering Capability
Retain Talent
8. • Integrate Performance Test Tool to Test Automation
• Hybrid Tooling Model
• Test Automation Service
• Hybrid Scripting
• Omni Channel
Engineering Capabilities
9. What to Automate
Development Operation
You Automate Tests
Based on Your
Assumptions
You Automate Tests
Based on Customers’
Feedback
10. Design to be Disabled
Use Mature Technology
Use Commodity Infrastructure
Scalability Needs
Isolate Faults
Test Automation Architecture Principles
11. Quality Engineering Architecture
Application Under Test
Test Automation as Service
HRERP
Transportation
Systems Finance
Identity
Management
Test Environments
Test Type Test Suite Application Type UX
Automation Tools &
Infrastructure
Test Data Test Results
12. Hybrid – Modularized
Scripting
Test Layer
Function Repository
Object Repository
Test Tool
Library
Utility
Library
Test Automation Architecture
Execution and Results Build CI/CD Execution Lab Reporting
Application Under Test
Test Data
Test Environment
Simulator
Hybrid Engine
13. Hybrid – Modularized Test Script Design
Test Suites
Test Class
Regression Suite BVT Suite Module Suite (E.g. Payment)
Order Suite User Management Suite Payment Suite
End to End Test Scenario 1 Feature Test Integration Test
Function
Class
Login Credit Card Payment View Order
Object
Class
Credit Card
Details Page
Credit Card
Confirmation Page
Split Payment
Page
Hybrid Engine
14. Test Automation as Service
Test Class Feature Test Integration Test
Function
Class
Login Credit Card Payment View Order
Object
Class
Credit Card
Details Page
Credit Card
Confirmation Page
Split Payment
Page
Hybrid Engine
Test Data Request Performance Test Request
Automation as Service
Good morning, Good after noon and good evening everyone.
Thank you for joining.
Recently, I red a article about digital transformation. According the article, despite budget concerns triggered by the COVID-19 outbreak, global spending on digital transformation technologies and services will grow 10.4 percent in 2020 to $1.3 trillion. The need to create a memorable digital experience for customers has never been greater.
I am Yoosuf Maktoum, Leading QE practice and platform teams at Sysco corporation.
Sysco is a fortune five hounded company and a leader in the foodservice industry. We have more than 300 distribution centers and 55,000 employees across the globe.
In the current digital transformation landscape, companies are aiming to create emotional brand connections with customers. But experiences can’t be meaningful if they aren’t frictionless. To achieve that standard, it’s important that companies don’t forget the importance of quality engineering. Customer expectations are constantly rising, and people want higher quality products, equipment, and software than ever before. At the same time, companies are becoming more fast-paced, with strictly defined deadlines and budgets. This is why quality is key for digital transformation.
But manual test will not work any more.
In Digital transformation, automation is the de-facto mantra for successfully ensuring seamless Quality. When I mean Automation, it’s no more the standalone approach where scripts are run by respective leads and individual status reports are collated later.
In an enterprise, the technology stack is very diverse. Most enterprises use both modern and legacy technologies. They might have different types of architectures, such as microservices, SOA, or monolithic. Also, they have a large number of integrated systems & different types of applications.
With all these complexity, An enterprise needs to give the best digital experience to both internal users and the huge, diverse external customers.
In this kind of environment, the quality engineering team has a tremendous responsibility to ensure that the Application meets every experience expectation. Most of the time, QE teams are overwhelmed.
We started our journey in 2016. Let me tell you a story. In 2014, I was assigned to a test automation project. The regression suite of that product had 4300+ test cases, and around 2100 test cases were automated with a pass rate of 60%. The automated test execution time was 157 hrs. Also, we couldn't execute the test remotely.
We decided to fix the problem in two phases.
In 1st phased, we fixed the problems in test automation. We achieved a 95% pass rate and brought down the execution time to 7hrs. Further, we introduced parallel execution and further brought down the execution time to one hour with seven parallel execution. We completed the phase one in three months.
In 2nd phased, we fixed the problems in the regression suite. We achieved an 80% automation coverage by optimizing the test cases.
We used a phased transformation to modernize out test automation.
We design the transformation base on our priority.
Today we a in run phase, and our next goal is Fly. In that we will be introducing the AI to our automation.
Simulate customer expectations
Meet delivery deadlines
Stick to budget
Talents
Performance Test
Performance of the application is of paramount importance as well. Every crash, outage and even slowing down of the application or processing/ working on a customer request has the potential to directly impact revenue and good will of the app among users.
Test Automation: A good test automation will have ROI. But, to have a successful test automation in a large enterprise, a large investment for labor and tools cost is required.
Test Data
Test Data is an important engineering artifact that is required in enterprise software development. Also, customers of the test data vary from developer to tester to businesspeople. Also, based on the customer, the test data format also changed. Providing the test data is challenging as multiple aspects have to be considered.
attrition rate
Hybrid Tooling Model:
We couldn't simulate the real customer experience by using only open source tools. In that situation, we have gone for licensed tools. Our testing capability would have been very limited if were limited our self to a few tools. We have implemented an API layer in our quality engineering framework to combine different types of tools. We haven't reinvented the wheel.
I am neither a fan of 100% automation coverage nor automate with the sprint. Even if I want, I can do so. It is a waste of money. I always prefer to automate most customers used scenarios. So, build a framework to identify what test cases need to be automated. When you build a framework, customer expectations need to be given first priority.
Design to be Disabled - Your design be able to add or remove test case, modules or features on demand.
Use Mature Technology - Use proven and matured tools and technologies
Use Commodity Infrastructure – Easily available and affordable to buy, cheap to maintain and replace.
Isolate Faults - The failures need to be identified quickly and easy to be categorized.
Scalability needs - You need to design the test automation considering the future needs and your company vision. The automation should support future releases too.
When it is come a test automation architecture, there a few areas needs to considered. Then each area needs to be layered.
You should start with User experience, then application type, what kind of test suite you going to maintain and what type of testing your going to perform.
Test data… Test data is an important in an enterprises. In an enterprise you will have different type of DBs and different types of data, and also you need to adhere to multiple data privacy policies. So you need to have solid a framework to manage test data.
Your automation frame is part of the architecture, but it is not the architecture.
We have divided the framework into four components , Application under test, execution and results, hybrid – modular scripting, libraires
These each components are loosely coupled, but give us the reusability
Hybrid – Modularized test script design has given us to use same automation code to use on different platform. We use same automation code to test on personal computer Oss such as Windows, Linux and Mac, then same code is used to test on iOS and Android.
We have Hybrid engine to determine the platform and OS and do the required changes on the fly. The Hybrid engine decupled. The engine is called by the Function class or object class when it is required.