TEST & INFRASTRUCTURE AS A SERVICE a.k.a TEST CLOUD
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
Outline/structure of the Session
- Describe challenges which acted as motivations to come up with this idea/solution
- Describe the idea/solution
- Go through the high level architecture and provide details on each of the component
- Benefits of the solution/idea to Dev/QA
- What's next? Further improvements/Roadmap
# Learn about the technique which reduces testing efforts, abstracting the testing complexity – be it test bed creation or quickly testing the features.
# Learn about the framework which could be offered to Developer community from QE, which helps Developer to help ensure quality of their fix by running
various feature tests (before fix goes into main branch and breaks other features), as needed by themselves without much dependency on QE. This includes
testing to be carried out on Sandbox builds.
# Take it forward and think how this technique enhanced or modified further and be applied to their work (products).
# Learn about the open source tools used which minimizes test bed creation and test run effort
QA, Sr. QA, DEV professionals. Ideal for both in IC and Managers