Skip to Main Content
Software development life cycle consists of various stages like requirements, design, implementation, testing and maintenance. In a typical enterprise level project number of testcases to be executed for each release would be in thousands. One known way of segregating the testcases is using component or module names and one can also classify them based on level of importance like unit testing, functional, sanity etc. With iterative development models like Agile, the release cycle is short and it is prudent to execute the testcase selectively majorly concentrating on impacting components. In this paper we provide a generic way to manage the tests and provide an efficient mechanism to run the tests selectively. In our approach we make use of well-known build management tool called Jenkins for running the tests on-demand. One unique benefit of our approach is that the input is a single comma-separated-value (CSV) file and it is very easy to add/modify existing tests. The tests are tagged using well known keywords (viz. database-layer, configuration, regression). When some particular tests need to be run, the user enters `Tag' in the job parameter and testsuite will be generated dynamically. In this paper we also describe an end-to-end test management system that supports running selective tests with help of jobs created in Jenkins environment. The proposed model of Tests execution is highly useful in high demanding environments like agile software development model, Test driven development model where feature development is many times faster than traditional water fall model. The approach suggested in this paper makes optimum use of cloud resources by distributing the jobs, so this can be utilized specially for testing under virtualized environment.
Date of Conference: 13-15 Dec. 2012