how to build a proper software staging environment for testing
DESCRIPTION
TRANSCRIPT
How to Build a Proper Software Staging Environment for Testing
Andrei HriscaQA-Testing Group Leader
MIND CTI Ltd November 2013
How to Build a Proper Software Staging Environment for Testing Slide 4 of 22
Agenda
Topic
What is a staging environment?
Why do we need this? Who is the beneficiary?
How do we build it?
What is a staging
environment?
How to Build a Proper Software Staging Environment for Testing Slide 6 of 22
What is a staging environment?
Typical types of environments (from purpose point of view): Development environment
The software is developed
Testing environment The developed software is internally tested
User acceptance testing (UAT) environment The software is tested with or by customer
Staging environment (pre-production) after QA and customer sign-off and before operations sign-off “dress rehearsal of deployment”
Production environment
Why do we need it?
Who is the beneficiary?
It doesn’t work.
I need help!
It’s working on my
machine
How to Build a Proper Software Staging Environment for Testing Slide 8 of 22
Why do we need it? Who is the beneficiary?
Development environment (nice to have)
Testing environment (might be)
UAT environment (should be)
Staging environment (must be)
Production environment
Development environment (must be)
Testing environment (must be)
UAT environment (must be)
Staging environment (must be)
Production environment
What if?....
How do we build it?
How to Build a Proper Software Staging Environment for Testing Slide 10 of 22
How do we build it?
Assess the scope
Estimate the appropriate sizing
Choose the methods and tools
Set up working procedures
How to Build a Proper Software Staging Environment for Testing Slide 11 of 22
How do we build it?
Assess the scope Building staging environments for testing and development Main capabilities:
Easy to maintain
Minimal costs
Portability: clone them “as it is” with minimal manual intervention
Ability to replicate them “on demand”, several times in a reasonable time
Ability to roll back to the initial stage
How to Build a Proper Software Staging Environment for Testing Slide 12 of 22
How do we build it?
Assess the scope
Estimate the appropriate sizing
Choose the methods and tools
Set up working procedures
How to Build a Proper Software Staging Environment for Testing Slide 13 of 22
How do we build it?
Estimate the appropriate sizing: How many projects (ongoing or upcoming) How many versions How many machines per environment
Sample:
QA - Testing Development
10 x 10 x 5 x
(10 x 2 x 3) + (10 x 1 x 3) + (5 x 1 x 3) = 105
Projects:
Versions:
Servers:
How to Build a Proper Software Staging Environment for Testing Slide 14 of 22
How do we build it?
Assess the scope
Estimate the appropriate sizing
Choose the methods and tools
Set up working procedures
How to Build a Proper Software Staging Environment for Testing Slide 15 of 22
How do we build it?
Choose the tools and methods Why Virtualization
Reduce power consumption Increased reliability Reduce data center footprint Better /automatic resource management Reduce hardware vendor ‘locks’ Easy to migrate in cloud
vs.
How to Build a Proper Software Staging Environment for Testing Slide 16 of 22
How do we build it? Hardware requirements
How many physical servers • 16 cores, 128 GB RAM can support 25 VM• building them incrementally
Resource allocation• CPU vs. RAM• I/O bottleneck (use dedicated storage)• Network capacity (separate adapter for management)
Scalability• solve performance issues by hardware upgrade
How to Build a Proper Software Staging Environment for Testing Slide 17 of 22
How do we build it?
Type 1 vs. Type 2
Host OS
Hypervisor Hypervisor
Type 1 (bare-metal) VMWare ESX Microsoft Hyper – V Server Citrix Xen Server Oracle VM Server
Type 2 (hosted) VMWare Player Microsoft Virtual PC Oracle VirtualBox KVM (open source)
Hypervisors
How to Build a Proper Software Staging Environment for Testing Slide 18 of 22
How do we build it?
Assess the scope
Estimate the appropriate sizing
Choose the methods and tools
Set up working procedures
How to Build a Proper Software Staging Environment for Testing Slide 19 of 22
How do we build it?
Set up working procedures Export / Import the production environment
Sanitization Identify and eliminate unnecessary data
Duplicate and distribute the environment Snapshots Automatic upgrade following iterative development
How to Build a Proper Software Staging Environment for Testing Slide 20 of 22
How do we build it?
Duplicate and distribute the environment Linked clones
Network isolation
10.0.2.1
10.0.2.2
10.0.2.3 10.0.2.1
10.0.2.2
10.0.2.3
192.168.0.2
192.168.0.3 – 0.5 192.168.0.6 – 0.8
Classic clone: Linked clone:
How to Build a Proper Software Staging Environment for Testing Slide 21 of 22
Conclusions
Developers will be able to easily reproduce most
of the bugs
Testers will not spend time to reproduce complex
bugs and validate the solutions for them
Customer will get a quality product with less
defects
Thank you!
www.mindcti.com [email protected] us in mind!