Staff Engineer @ VMware software India Pvt Ltd
Member since 1 year
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