How to build a proper software staging environment for testing

487
-1

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
487
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
33
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

How to build a proper software staging environment for testing

  1. 1. How to Build a Proper Software Staging Environment for Testing MIND CTI Ltd Andrei Hrisca QA-Testing Group Leader November 2013
  2. 2. 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
  3. 3. What is a staging environment?
  4. 4. 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
  5. 5. It doesn’t work. I need help! Why do we need it? It’s working on my machine Who is the beneficiary?
  6. 6. 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
  7. 7. How do we build it?
  8. 8. 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
  9. 9. 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
  10. 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 12 of 22
  11. 11. 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
  12. 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 14 of 22
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. Thank you! Keep us in mind! www.mindcti.com sales@mindcti.com

×