|
Vendor Accent
Test Lab Management
Rajesh Patil talks about how to leverage Test Lab
environments to the fullest
Testing
activities are an integral part of the strategic alignment to the business and
for many organizations relying on technology as the differentiator, this is
a critical aspect. Testing activities are firmly placed in the value chain creation
process to be the differentiator for new products and services that are required
to serve the dynamic nature of business. Organizations have realized that they
need to get testing right for creating and keeping credibility with customers
as well as partners.
One of the main challenges in testing is the cost and effort required to setup,
maintain and manage and test an environment. Test environments are quite capital
intensive on the onset and require significant operational budget to keep the
environments running. Historically, the utilization of the computing resources
in any given organization has been less than optimal.
Test environments are logistical challenges when organizations share computing
resources for testing activities. This is increasingly the norm. With centralized
testing becoming mainstream, the first order of business is to centralize computing
resources, processes and resources. Every development group plans to get the
most of the test environment for delivering a better product. This leads to
challenges as many groups may vie for the same set of computing resources. Test
environments especially for performance testing require a physical environment
that is similar to the production environment so as to perform the testing under
real life scenarios. There are multiple challenges due to the various testing
requirements, needs and duration.
Challenges of Managing Test Environments:
- Multiple configurations: Configurations/versions
that require a combination of specific hardware, software. In software alone,
there are dependencies on patches and versions across the application suite
and underlying technology platform. For performance testing, the need is to
setup an environment which is similar to the production environment for load
and stress tests. These tests are usually run for a few days if not hours
and then will be idle for a period of time. The requirement is one of a large
number of computing resources for a relatively short duration.
- Commission and decommission: Setting up the environment
as per specifications and then decommissioning the same for other projects.
This effort is the single biggest contributor to the time and cost for Test
Environment management. This can be quite error prone due to the various combinations
of Operating System and application stacks. Lack of efficiencies from this
task prevent an organization from tapping into the existing computing hardware
as neededan option to move some of the existing hardware from other
environments for a ramp-up for a specific test.
- Scheduling: This usually is a slice of time allocated
to a specific project/release. Lead times to get an environment setup are
quite large and in some instances exceed the actual time taken for testing.
Scheduling has to be coordinated between development, quality and operations
groups. Ensuring the availability of environment, the delivery of code and
completion of the testing per the specs takes pre-planning and flawless execution.
The non completion of the testing activity will impact the quality and extending
the testing time will lead to other scheduling challenges.
- Operations: Change, Release, Configuration management
processes followed to ensure that the environment setup complies with the
requirements. This ensures that there are no surprises during testing from
the Operating System and/or application code.
- Uptime: This directly impacts the testing efforts
and the quality output after the effort. Non-availability of the environment
will compromise the quality of testing and reduce the actual time spent finding
bugs. Though the expectation on availability is not as much as any production
environment, it has to be pretty close.
- Resources: Diversified needs from software, hardware
and operational skills to setup, configure and manage the requirements.
Optimal requirements for Test Environments are flexibility, reliability, lowest
time to setup and cost effectiveness.
Quite a few of the listed challenges are addressed via these approaches:
- Virtualization: Enables running multiple configurations
on a hardware platform increasing the capacity and utilization of the resources.
These are easy to setup, configure and manage. There are new generation tools
bundled with management consoles making it easy to setup using a simple point-and-click
interface.
- Configuration tools: Specialized tools to provision
servers and hardware are available and quite mature. The enable environments
to be setup at a rapid pace and in some instances can recreate a specific
configuration on demand. These combined with virtualization tools deliver
most of the requirements for an optimal setup and operational Test Lab.
- Operations: Following a mature operational processes
based on ITIL/MOF will ensure the efficient and smooth execution of tasks
required to create and maintain the environment. Tools used in production
can be extended to include Test Lab management for maximum benefits.
A combination of the tools, technology and processes are available to setup
and run a Test Lab in the most efficient way. Using the Test Lab environments
to the fullest is becoming one of the top priorities for organizations for cost
effectiveness.
The traditional approach of adding more hardware without
exploiting the existing capacity is fraught with both cost and operational
issues in the long run. As organizations are becoming more cost
and environment conscious, this specific area can provide benefits.
The author is Assistant Vice President at AppLabs
|