SQL Database Design For Developers at php[tek] 2024
How to build a proper software staging environment for testing
1.
2.
3. How to Build a Proper Software Staging
Environment for Testing
MIND CTI Ltd
Andrei Hrisca
QA-Testing Group Leader
November 2013
4. Agenda
Topic
What is a staging environment?
Why do we need this? Who is the beneficiary?
How do we build it?
How to Build a Proper Software Staging Environment for Testing
Slide 4 of 22
6. 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
How to Build a Proper Software Staging Environment for Testing
Slide 6 of 22
7. It doesn’t
work.
I need help!
Why do we need it?
It’s working
on my
machine
Who is the
beneficiary?
8. Why do we need it? Who is the beneficiary?
Production environment
Production environment
Staging environment (must be)
Staging environment (must be)
UAT environment (should be)
UAT environment (must be)
What if?....
Testing environment (might be)
Testing environment (must be)
Development environment (nice to have)
Development environment (must be)
How to Build a Proper Software Staging Environment for Testing
Slide 8 of 22
10. 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 10 of 22
11. 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 11 of 22
12. 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 12 of 22
13. 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
Projects:
Development
10 x
10 x
5x
Versions:
Servers:
(10 x 2 x 3)
+
= 105
(10 x 1 x 3)
How to Build a Proper Software Staging Environment for Testing
+
(5 x 1 x 3)
Slide 13 of 22
14. 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 14 of 22
15. 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 15 of 22
16. 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 16 of 22
17. How do we build it?
Hypervisors
Type 1
vs.
Hypervisor
Type 2
Hypervisor
Host OS
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)
How to Build a Proper Software Staging Environment for Testing
Slide 17 of 22
18. 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 18 of 22
19. 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 19 of 22
20. How do we build it?
Duplicate and distribute the environment
Linked clones
Linked clone:
Classic clone:
Network isolation
10.0.2.2
10.0.2.1
10.0.2.2
10.0.2.1
10.0.2.3
192.168.0.3
– 0.5
192.168.0.6
10.0.2.3
– 0.8
192.168.0.2
How to Build a Proper Software Staging Environment for Testing
Slide 20 of 22
21. 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
How to Build a Proper Software Staging Environment for Testing
Slide 21 of 22