Business Problem:
A product
company that releases a new version every quarter is facing challenge such as
-
the
product released had untested features and regression bugs resulting in
compromised customer experience.
-
many
issues fixed in the development stage were getting delayed to move to
production.
Continuous Integration
and Testing helps in overcoming these problems.
This article
describes how Continuous Testing can be implemented in a product engineering
group.
Continuous Testing:
As
enterprises continue to evolve processes and practices so that they can reduce
the time from development to production, Continuous Testing plays a key role in
facilitating this.
Continuous
testing in its most advanced form is seamless integration of code repository,
build, unit tests, functional tests, and deployment to stage / production
server.
However,
organizations cannot reach the final stage in one go. They have to implement the
process stage wise in order to avoid disruption in operations during the implementation.
Recommended Approach:
1.
To improve the quality of the code,
it is recommended that
-
The
source code repository (SVN / GIT) is integrated with code quality tools PMD
and FindBugs to ensure that the source code maintains the technical quality as
per the defined baseline.
2.
To shorten the testing time for the
monthly release, the following process and tools are recommended
-
The
code repository is integrated with a CI tool like Jenkins. A build job defined
in Jenkins is triggered every time a new code is checked in or updated.
-
The
development build is automatically run through unit tests using Junit.
-
Automate
the testing of stable features
-
The
automated tests – smoke tests and functionality tests – are run continuously
using a tool like Jenkins.
-
The
issues are reported to the development team and a new build is generated as a
result of code changes.
-
The
release is done once the new features are tested and product is stable
The above
set of steps is repeated for every release.
Current Status:
In the
product group, the process of continuous testing is a combination of manual and
automated tests. It is implemented as follows:
-
The
test sets are divided into Smoke Tests Set and Functionality Tests
- The Functionality Tests are grouped into different batches
- The functionality tests batches are scheduled to run alternate day
- The smoke tests are scheduled to run every day.
- The tests run continuously and on the test environment.
- The Functionality Tests are grouped into different batches
- The functionality tests batches are scheduled to run alternate day
- The smoke tests are scheduled to run every day.
- The tests run continuously and on the test environment.
- The tests
sets are basically covering the regression tests and will make sure that there
are no regression bugs when a new release is planned.
- For testing
new features for every release, manual testing approach is adopted.
The product
group has reduced the regression test time by 2 weeks for every release. It has
also removed the manual effort for regression testing by using Selenium test
automation tool.