testing With more organizations adopting SharePoint, the importance of the service it offers has increased to the point where organizations are concerned about quality of service – fast and no outages. Specifically, how do IT shops support multiple farms – test (functional and performance) code and patches? Another question you might ask is how do I create a test environment that mirrors production and keep it that way?

Sounds like a lot of work? Well….there isn’t a simple answer and turnkey solution but I hope to offer some ideas to help you fast track to the results you want.

So what does a test environment look like from a cursory view? Here are some key areas to address in your plan:

  • Requirements gathering and Design – Utilize standard documentation for the requirements and design tasks and create a risk analysis to help determine whether the ‘change’ if low (Simple administration) or high risk (Application change). For example, simple administration changes usually don’t required as much rigor as application changes/adds – treating everything as high risk will cripple the development team.
  • Development Environment – Laptops with VMware workstation running Windows, SharePoint, SQL Server and Visual Studio. Usually a code management system is running on the development and test network as well. The system would contain source code for the applications, Web Parts, Features etc…The Laptop would also have eBooks for .Net and SharePoint development and links to the same sort of topics (Will post some links). Using VS Team System will help with creating an integrated environment for the developers. Automating installation is key to reducing management overhead and maintaining quality. Using WSP and or MSI will help. For provisioning VMs you might want to VMware Lab Manager of something equivalent.
  • Test Environment – Many clients run VMware ESX Server to run multiple VMs that mimic production environments. What I find key here is separation of key systems so that production is mimicked as closely as possible. Building the VMs can be done manually or by creating images using VMware. For provisioning VMs you might want to VMware Lab Manager of something equivalent. You will also require a LAN/WAN simulation device where you can set speed and latency between devices to simulate a network. For load testing a you might want to consider something like Loadrunner or use Visual Studio. Dont forget a test plan that lists test cases, what to monitor and to expect as outcomes.
  • Performance and functional testing – when testing your farm and or customizations always remember, test both performance and functionality. Performance tests will test for page load performance while looking at key counters for memory leaks, excessive calls to SQL etc…Functionality testing focuses on click throughs to make sure thinks work as expected. Having test plans for performance and functional is key to success. Though functional tests are specific to your customization, you can base your performance testing on PAL (http://pal.codeplex.com/).
  • Change Management – Key to synchronizing production, development and test, process and policy area required – tools alone are not enough. Adopt a methodology such as SDLC and make sure that document and sign offs occur at each stage to make sure quality is maintained. Additionally, ongoing training, reviews and enforcement will be required and I suggest IT staff have performance reviews that include their compliance with the TQA process and policy.
  • TQA Team Site – Create a TQA team site in SharePoint that contains all documentation (process, policy), reference materials (Books, videos etc…), contacts (SMEs), training videos and  any other valuable information for on boarding and succession planning.

The following are reference materials for SharePoint development:

Have some ideas for improvement? Let me know.