GUNJAN ARORA - Sr Quality Specialist, Tyro Payments
INTEGRATING AUTOMATED TESTING INTO DEVOPS AND AGILE
Being Agile and DevOps
Agile can be described as producing a continuous stream of value , at a sustainable pace , while adapting to the changing needs of the business. DevOps brought in a culture of continuous integration and deployment , but Testing really is the heart of DevOps.
How Test Automation fits with Agile and DevOps
Integration of Automation into the DevOps Processes and Agile Methodology has actually given birth to a term called Continuous Testing.
Though DevOps have given us the benefits of continuous integration and delivery but Test Automation is a key factor in succeeding, getting these small frequent changes deployed to production.
Why teams should integrate automated tests into DevOps and Agile
1. Reduced Costs
2. Shortened Testing Cycles
3. Early and continuous feedback
How to Achieve it
1. Setting up an effective Pipeline
2. Test Automation Strategy
3. Learning in Production
4. Whole Team Approach
DevOps is the future of Software Delivery Models, so we must gear up to drive the change and make the transformation a successful DevTestOps!
ERFANA SIKDER - Engineering Manager, Rokt
THE RISE OF TESTOPS
With the advancement of the software industry and more companies moving towards complete CI/CD, QAs are also evolving towards a blended role of operations and test engineers. These days we are building extremely complex software based on microservices, relying on interesting machine learning models and huge data points, therefore the traditional test and release process is a thing from the past and with this fast-paced development practice QAs need to come up with a process that fits for the purpose. Long gone are the days when QAs used to test all the code before it goes to prod or writes all the functional tests for the code developer is writing.
Continuous integration promotes continuous testing and it is not scalable if it depends on the QA team to add different levels of testing. Rather the QA can focus on paving the path for developers to write tests easily and also can provide all the necessary infrastructure support for running the tests as well as proper monitor and alert features. There starts the role of a TestOps who is not responsible for writing the test but responsible for providing everything that is necessary for the developers to write the test without thinking of the pipeline creation or managing the k8 deployment for the test or adding monitors in the test framework.
So why is it different from the traditional QA role or even automation QA role? In the traditional world, we consider QA as the custodian of quality and they are the people to add tests, write frameworks but depend on devs, DevOps or ops to manage the pipeline, create monitoring or maintain the infrastructure of the test framework. On the other hand, TestOps does it all except writing tests for features. The developer who is writing the code is the best person to write all the different levels of tests needed for this and s/he is the custodian of the quality of the code.
So what value TestOps is bringing? Nowadays we have teams working in different languages and almost detached from the development in other teams, often they reinvent the wheel by creating different frameworks for their purpose or there is no standard practice for making sure all the testing layers are achieved from the test pyramid. TestOps can come into the picture to solve this problem, coming from the testing background they have a strong understanding of different testing tools in the market and can build the right framework for the entire company, and can act as test consultants for the development teams. They can help the team adopt a new framework and make sure the teams are following the right level of testing practice. The test framework should be an easy plug-and-play tool that has a proper pipeline set, monitoring associated so that the development team can only add tests and they could get all the benefits out of the box. At Rokt, we built frameworks for E2E, Contract Test, Visual Regression Test, Load Test, Behavioral Test, and for all these, we have built the alert system, so if any test fails team gets notified. Also, we have built the monitoring dashboard on Datadog, thus the teams get an instant view of the entire system's health. For different frameworks we have picked up a language-agnostic tool thus it could be adopted by different teams easily. Also, we have built mechanisms to run different tests with tags and collect data from them, so that we get an overview of how often these tests are running, which tests are failing, and the different test coverage across services.
Why would you want to adopt this? With bigger organizations and complex products, if you want your QA team to scale up, you will hit a bottleneck very fast. Rather I believe having the right people doing the right job is the key to success. The people who feel passionate about testing and quality could help build the perfect network of tests in the big organizations by paving the best path possible for the development team and can make the dream of perfect CI/CD a reality.
SCOTT GRIFFITHS - Delivery Solutions Architect, Ampion
USING RELIABILITY ENGINEERING PRINCIPLES TO BUILD BULLETPROOF SYSTEMS
A cloud first approach to how we can use the methodologies applied in DevOps and SRE in order to develop and implement strategic automation solutions that aim to test and verify the resiliency of distributed systems
PAVITHRA NAVANEETH - Principal Test Automation Engineer
LATEST TRENDS IN MICROSERVICES TEST AUTOMATION
As per Gartner, 'by the year 2021, at least 1/3rd of organizations will have deployed a multitudinous-experience development platform for supporting web, conversational, mobile, and augmented reality development.'
With the enhancement of microservice architecture on the web as well as software development, the usage of application programming interfaces (APIs) is mounting every day. APIs are being utilized in almost every component. To keep this procedure highly effective, automated testing on the API and Service level are increasing.
In this topic; will showcase and talk about - what’s the need for Microservice test automation, how it can be implemented with latest toolset (example with C# /Nunit/ HTTP client library), how easily it can be integrated with CICD using Docker.
Also, will discuss on how this same toolset can be extended further for AB System testing and the advantages of AB testing especially for Monolith to Microservice migration.