Build Micro-Pyramids to test your MicroservicesAnand Bagmar
schedule 1 year agoSold Out!
CI (Continuous Integration) and CD (Continuous Delivery) are now a necessity and not a luxury! Testing (automation) is one of the important practices that needs to be setup correctly for CD to be successful. But, this is tricky and requires a lot of discipline, rigor and hard work by all the team members involved the product delivery. The Test Automation Pyramid is a great concept that helps teams focus on the "right" type of automation.
To add to the never-ending challenges, a new architecture style has evolved - Microservices Architecture. While there is no precise definition to explain Microservices style, it essentially talks about how to break a monolith application into smaller, independent pieces - usually based on business capability, automated deployment, and various other factors.
In teams building a complex product using the Microservice Architecture approach, the Testing approach also needs to evolve to be effective and validate the functionality quickly, and effectively.
In this talk, learn, via a case study of an Enterprise, a large Bank, the Testing approach required to take them on the journey to achieving CD in the Microservice world. We will also learn how to break down the test automation pyramid at a microservice level into smaller test automation pyramids - i.e. Micro-Pyramids to enable early feedback about quality of the product.
TEST & INFRASTRUCTURE AS A SERVICE a.k.a TEST CLOUDGururaj
schedule 1 year agoSold Out!
With the increased competition in Cloud industry, Software firms are under pressure to bring out software products quickly into the market, to hold onto their notch. In the race, they cannot compromise on quality of the product to be delivered. However, on the other hand, with ever increasing feature additions and critical bug fixes in product, complexity of testing has increased double fold making it difficult to keep up the pace with business needs. Often testing a software requires specialized tools and platforms, which adds to the testing process complexity. Adding work force to handle such situation is not a feasible solution.
This paper presents a testing technique, process which reveals how to possibly minimize the testing effort (by both Developer and Tester) and leverage the saved effort elsewhere, helping product to achieve faster time-to-market; yet maintaining high quality.
[1.2] Testing Technique
The proposed technique makes use of,
# Nimbus Platform is an integrated set of “open source tools” that allow users to easily leverage “Infrastructure-as-a-Service” (IaaS) cloud computing systems for creation of test environment / test bed deployment
# Jenkins is an open source application that monitors executions of repeated jobs. Jenkins focuses on the following jobs, Building/testing software projects continuously and Monitoring executions of externally-run jobs
# Test provider:
~ Custom tool to find out what exact tests to be executed, based on the product code change.
~ Providing pre-defined suite of automated tests
~ Allowing user to choose what all tests he wants to run
Through web application interface, developers / testers would place a request to Jenkins application for test bed deployment either by specifying what exact requirements (No., of Virtual Servers, Disks configuration, Memory etc.) OR chose one of the pre-existing configuration needed to run pre-defined feature test cases, along with specified product version builds to be installed.
All the while, the progress would be updated back to the user via email as well as on web browser, if session is active. Once all the tasks are completed, overall result would be returned by Jenkins back to the user who placed the request.
# Reduced code Fix check in time - No effort spent on manual test bed creation and running tests.
# Quick feature/bug fix validations (execution of regression suite to determine side effects)
# Thorough code fix validations before check-in. Developer could run the various tests, as identified by the Test provider tool OR chose exhaustive tests by himself, and ensure proper unit testing is done.
# Reduced testing effort via parallel testing - No effort spent on manual test bed creation and running tests and Parallel test bed deployment, test runs would help to complete the testing quickly.
# Reduced cross functional dependency