Managed Project (QA Test Optimization)

Clients QA team was responsible for testing multiple products and there were multiple instances of shared and private components.

Business Case

Clients QA team was responsible for testing multiple products and there were multiple instances of shared and private components. Examples of Shared instances are HQ Server, LDVS, Voice and Trunk switches. Examples of Private instances are Mobility Router, Contact center, Fax and Scribe etc. Multiple product teams needed to test same version of shared components along with different versions of private components which resulted in multiple instances of test environments. To maintain and upgrade these environments manually was a major challenge.

Basic Solutions team was providing managed services for the Software/QA teams and proposed Continuous Deployment/Continuous Integration Model to the client using TeamCity and Octopus tools. This strategy instantly had a huge effect on time it took to complete the upgrade across multiple test beds and increased the productivity of whole QA team significantly.

Tool Used for Continuous Integration: TeamCity
Tool User for Continuous Deployment: Octopus

Strategy:

Continuous Integration (CI), is a practice which runs unit tests in an automated fashion by either running on a schedule or polling your build server to identify any changes in the code. This best practice helps to catch code-related problems at an early stage. This also helps with reverting your code base to a bug-free state quite easily, since you will know which commit is causing the failure.

For our client, we used TeamCity for doing the CI part which involved:

  • Detecting code changes and compiling the build/solution and run unit tests on newly built code
  • Inspecting code, gathering build metrics, etc.
  • Using TeamCity plugin, notify Octopus that a new release is available

Similarly, Continuous deployment (CD) helped in automatically upgrading multiple environments automatically whenever there is a new build. This helped in saving upgrade time that is spent manually to upgrade multiple systems across multiple environments. Octopus tool was used for the following:

  • Distributing the packaged applications to all the PBX and Switch build servers in a secure way
  • Extracting the package from TeamCity and installing them on multiple servers
  • Modifying configuration files with environment-specific variables
  • Invoking any custom deployment actions on the remote machines
  • Gathering all the deployment logs into a central place

Results

The client significantly improved QA Test team’s productivity by saving deployment time for new builds across multiple environments.