In this first part of the series, we will discuss How to Effectively Prepare Test Bed and provide strategies to minimize defects in the test environment.
Testers often encounter rejections of their defects due to environmental issues or repetitive replication for similar reasons.
While opening the most number of defects must certainly be one of the personal benchmarks for every tester, most testers must also emphasize having the most valid defects. What is the method for achieving this?
Table of Contents:
Challenges and Best Practices for Test Bed/Environment Setup

Apart from the other aspects, like planning various test scenarios and understanding the line item thoroughly, a good amount of time must be invested in setting up the Test Bed or Test Environment. Second, despite having an estimated amount of test case planning, testers must also focus on creating effective Test Data.
From my personal experience with the audit process, I’ve noticed that the highest number of valid defects are discovered when there is a significant effort put into creating the Test Bed or Test Environment correctly, along with the tester having a comprehensive understanding of the required environment.
Also, the test data supplied to the test environment can expose some very serious flaws in the code/ feature under test, which can severely impact the quality of the product.
This article talks about what exactly the Test Bed entails: It is a two-step process of Test Environment setup and Test Data setup:
Part #1: The earlier part of the article will discuss the general process of Test Environment setup, the most commonly faced setup problems faced by tests, and pointers to keep in mind while creating a Test Bed in place of these challenges.
Part #2: Having said so much regarding the Test Bed collectively in this article, it was worth throwing some light on the Test Environment maintenance aspects as well. The latter part of the article discusses the second part of the Test Bed setup, which involves the test data, the approach to set it up and some effective Test Data management techniques.
With a constant “big bang” in software development and testing, there is an increasingly large focus on adopting various methodologies to make the overall Quality Assurance process transparent, efficient, and adequate.
Organizations conduct audits to assess the performance of the testing team and measure results using metrics established at the start of the testing cycle. These results make it possible to identify where a particular team stands to ensure optimal quality for the software they test.
These reports also help the team understand the opportunities for improvement based on the observations made during the audit.
Needless to mention, a very obvious metric for any test team would be with respect to the total number of defects opened versus the number of defects that are valid. Hence, one question pops up is – What is the basis of trying to discover any defect? Stated another way, what is the foundation on which a defect can be found?
The answer is unanimous – Test Bed and/or Test Environment setup. There are quality benchmarks set within teams to reduce the defects that are rejected as a test setup error/ user error, invalid configurations, or, sometimes, the defects that arise as escapes from a particular team because of unavailable configurations or untested configurations.
We can start by delving into the meaning of a Test Bed or Test Environment.
What is a Test Bed And Test Environment
In a very generic sense, a Test Bed could be defined as a kind of development environment whereby the implementers of code or modules have the freedom to test their modules without any disturbances from the testing team in absolute confinement.
However, a Test Bed is not only specific to a development team. From the perspective of a test team or a tester, since the Test Bed is nothing but a platform identified for software/product testing, it is also interchangeably called a Test Environment.
Any Test Bed or Test Environment would have to be configured in accordance to meet the identified test goal for the application/ product/software under test. In certain situations, a Test Bed would be the collation of the test environment and the test data it operates with.
Components of a Test Environment
Any test would have its specific test environment requirements, but in a very broad sense, any Test Bed/Test Environment will comprise the hardware, software, and networking pieces to support the required configuration at the minimum to drive and conduct the particular test.
Environmental problems, which impact productivity and test schedules, are a well-known time-consuming issue for testers. Although the kinds of challenges vary for every test team, some of them may be common.
Some key challenges that are commonly faced are:
#1) Remote Environment
The test teams mostly face the challenge of having the test assets or environments placed geographically in remote sites. This is one of the most commonly faced challenges for test teams, in case of any problems that may arise about hardware, firmware, software, networking, etc.
The teams that consume the assets would heavily rely on the support teams in the location where the assets are present.
Along the same lines, if some asset needs a firmware upgrade or a build upgrade, again the test team may need the support of the support teams owning the environment by opening support tickets. This may also hog up considerable testing time and delay schedules, especially in cases of time-zone differences.
#2) Combined usage between teams
More often than not, development and test teams use the same environment assets. Although it is expected to have separate development, test, and production environments, this ideal situation is rarely accomplished. It becomes extremely cost-unfriendly for organizations to procure separate resources for each team.
Hence, most organizations mandate the common usage of the environment between development and testing. Added to this, if the development and test resources contend for the usage of the same assets, it leads to chaos and disagreements among members.

#3) Ineffective planning for resource usage for integration
In some cases, for scenarios needing an end to end testing whereby there is an integration of two or more components to function together, again there may be a requirement to have the common usage of resources between test teams. The environment becomes unstable because of ineffective usage planning and team conflicts.
One notable outcome is that an issue observed a few times may cause varying behavior in subsequent attempts at the same scenario. If a defect is already opened for this, there are high chances of it not being accepted by the development as a valid candidate for a fix.
#4) Complex Test configuration
The Test Bed or Test Environment configuration is sometimes too complex. This will pose several challenges, as the test team will need the required skills to understand the needed configurations.
There is a lack of knowledge base available for the tester to come up with the required configuration. In such cases, the testers may themselves induce an error in the test-bed by configuring it incorrectly. This would greatly impact the test case and the results it produces.
#5) Elaborate setup time
In certain other times, for each test case, the test setup may be far too elaborate on each test case identified. This could be because of a wide variety of co-existent technologies that need to be coupled together or multiple components to work together in cases of integration testing.
In these cases, each of the components has to be working perfectly to ensure consistent results, as one component may form an input to the next.
Tips For Establishing an Effective Test Environment
We’ve looked at the broad outline of challenges that a tester faces before or while beginning the test execution. Most of us have faced one or more of these issues during our project milestones. These challenges have existed and might continue to exist in varying degrees because an idealistic situation doesn’t exist.
Given that setup challenges are part and parcel of a tester’s job and are inevitable, here are some suggestions on how to effectively prepare the setup for testing. This could help to minimize the defects that may originate out of setup issues.
Tip #1: Understand the Test Requirements thoroughly and educate yourself
Always start with the basics and with the most obvious! When a specifications document or a use case document is rolled out by the development team, the invariable step for the test team is to understand the line item requirements and then prepare a test case document detailing the test cases.
While the test planning is being carried out, it is the best practice to also include the detailed test environment information in the test case document. No guesses to the fact that the tester will then spend some time analyzing what test environment may be required and accordingly the needed configurations.
Building a solid knowledge base requires communication with the development team/architects. This approach not only saves time during the execution cycle but also allows testers to allocate their execution time wisely for simple and complex tests.
Personally, a good outcome of this is that many of us discovered setup issues (that would inherently prevent consistent test execution) at the very beginning of the cycle, which rendered us time to channel and acquire the required help to get those issues fixed–thus not extending the test cycle beyond unacceptable periods.
Another positive impact this would have is that this would greatly improve the test team’s knowledge and would prevent unnecessary defects. Although this practice summarizes almost all the practices that are inherently needed to cope with the test setup challenges mentioned above, it’s still worth to make a mention about the other tips.
Tip #2: Checking the connectivity
Another most important checkpoint is to make sure that the resources or assets you intend to use for testing are reachable. In case the system needs to be run integrated with other machines, check their connectivity with each other by using ping or telnet.
Also, if the systems need to interact with each other and are behind firewalls, make sure they can authenticate through these firewalls using Basic Security Options (BSO) and check for any proxies as well. In case you notice some machines are not reachable or need BSO authentication, appropriate service requests can be raised to fulfill the requirement of the support team.
This is useful when the environment is in remote locations and will also avoid escalations with respect to the machines and systems. In case the test team requires access to any resource or repository, this would help in pro-actively determining the same.
Tip #3: Checking the network and/or storage
This is almost an extension of the previous tip and would need certain other checks with greater technical depth. Make sure that testing you require has the needed bandwidth and if your testing needs an internet connection. Also, make sure you verify that the network topology between systems and resources is correct.
Second, if your testing goal implies the need for any storage, make sure that there are storage and network connectivity. Mostly it is an administrator’s responsibility to have this in place, however, it is also a great value add to have some working and functional knowledge of the same.
Tip #4: Check for the required hardware and software, licenses
Many times, it so happens that testers begin execution on the systems without checking the needed hardware and software that may be required. As a result of this many times, a tester realizes almost during the testing cycle that certain functionality is available only on a higher level of hardware or software/firmware.
At that time, the tester will flag a blocker in his test effort, which eats up considerable testing time. Hence, it is a priceless practice to have a checkpoint to make a note of the hardware and software that is needed priorly.
Many times there may be downtime involved in upgrading the hardware/software, which all boils down to Tip 1 where a tester must involve in proactive planning regarding the hardware. Some of the software might require licenses that may require approvals and actions from the legal team. Planning is necessary, as this process-driven action may take several days to complete again.
Tip #5: Browsers and versions
The testing you do has to mirror what an end-user will perform. He could test on a particular browser on the latest versions of all browsers. Therefore, it is crucial to recognize and install the various browsers needed for testing in your local setup.
Second, also identify what versions of browsers need to be used for testing. A good practice would be to start with a browser of the lower version, thereby ensuring backward compatibility and then upgrade to the latest version.
Tip #6: Planning out the use of the Test Environment.
Given the fact that the test team will never have a situation of having their own test resources, systems, and assets – it’s one of the major milestones in the test planning to have an effective usage of test resources.
This is particularly required when more than one team has to access the same set of resources either because of an end to end scenario which comprises two or more components working together, or a situation where the test setup is too elaborate or complex to be replicated very easily and there could be multiple members within the same team having their test-own goals with the same setup.
A good practice would be to work out a time-sharing approach whereby a certain team or person uses it for the earlier half and the remaining people for the latter half. There can be sometime in between that will be common where each of them can run independent tests that will not hamper the other.
Doing this will not only reduce the chaos and conflicts within the members, but will also ensure the behavioral stability of the environment for a longer duration.
Tip #7: Automation tools and their configurations
As we know, every line item in testing will have a few repetitive tests that will be a part of the regression cycle, which will need to be automated. The test team must identify what kind of automation they would like to do and the necessary tools for it.
Even though it’s not mandatory for environment preparation, it’s recommended to have automation tools identified and configured. This would completely depend on the tester’s discretion when he wants to perform this activity, as this is not a mandatory factor to ensure test readiness.
Conclusion
These tips and tricks can form a good yardstick and footprint to ensure test environment readiness for testing. Doubtlessly, each team faces its own unique set of challenges and the tips above can be adapted and customized to suit their own respective needs.
In fact, the source for jotting out this whole skeleton of tips comes from one of my assignments, where I faced severely complex setup issues and took me almost a year to even begin testing!
Despite the limitations in the test environment that I couldn’t control, I believe I could have reported many issues earlier if I had followed these tips. I have been applying it for every assignment that comes my way since then and this skeleton has helped me a lot in pro-actively finding setup issues and channelize my efforts to get them resolved.
About the author: Sneha Nadig is the author of this article. She is working as a test lead with over 7 years of experience in manual and automation testing projects.
In part 2 of this article, we will see the Test Environment setup and maintenance process and test data preparation and management tips.
You can post your Test Bed preparation queries in the comments section.







It is really worthful, got new concepts .Thanks:)
Thank you for sharing. Test environment is the most important part of test planning. If not planned properly on time it could delay the release deadline!
Good article. For those interested in measuring their organization Test Environment Maturity I suggest having a peak at Enov8’s TEMMi Ref: http://enov8.com/docs/TEMMi.pdf .Its a good way of looking at the various dimension/considerations as you set up an enterprise capability.
Hi,
Really helpful article for beginners like me. ThankYou!
But I have a doubt that, isn’t Test Bed/Environment supposed to be created for Test Team only? Please correct me if wrong.
Hi,what is the difference b/w application/ product/software in Testing.
Hi,
Thanks for explaining us the usage and importance of test environment which is often forgotten during testing. I have a question related to browser compatability. It is said that it would be a best practice to start testing with backward and then proceed with latest version. But,in reality we see that customers often switch on to the latest ones and being in offshore, you know what kind of issues we would face. Could you please explain the importance of testing it in previous version of the browser.
Thanks.
@ Rahul : Good that you are thinking on those lines. As you progress in your career, you will find several opportunities to contribute to whitepapers. For example, if there is an elaborate or a complex configuration, you can be the one to take initiative to figure out how to go about it and come up with a white paper. Or sometimes the testing itself can involve so many different components that it can get very complex. At times like that, you can create a skill building material which can form a very good whitepaper. Another instance that I can think of is participate in some technical conferences that your organization might organize. There are no limits to how you can innovate. Think of doing some POCs with respect to Automation and implement a framework. For now, I can suggest that you identify a technical mentor and go about developing your skills.
It is really worthful, got new concepts .Thanks:-)
Thanks !! Perfect article…
May I ask u for some suggestion?? I want put some innovation in our testing. Since I am not a very much experienced in this field holding only 1 year exp in manual testing. As a manual tester what are the possibilities of putting innovation as i want to submit as a whitepaper ( kind of new implementation) Please suggest me with the best possible option for both manual and automation. Thanks !!
Nice topic
@Yaser : From the tester’s point of view of delivery, there is really no difference. However, the difference between them occurs in the particular context or scenario applicable to a particular tester. An application is generally more custom suited for a specific business requirement which targets to solve a particular problem, whereas a product is more generic which looks at a more broader picture.