You’re all excited because a new feature has been produced, everything is up and running and the site seems to be functioning correctly. But is it? How can you be sure that it 100% works now? Or whether it will work under different circumstances?
You can’t see a flaw in the work and there are no ugly error messages, but maybe there is a nasty issue that is waiting to appear under the right (or wrong) conditions. Being content with the fact the page has loaded, looks pretty and seemingly does what it should one time and one time only can lead to drastic issues later, meaning headaches for developers, colleagues, and clients. That is why you need to ensure that all potential issues have been considered and caught before it is too late. This is where testing and testing environments come in.
No matter what changes are being made to your website (the deletion or removal of code or content) it is always best to have safety nets in the form of repeated tests, reviews, recoverable data, training sessions and standard procedures. This protects your solution from whatever is thrown at it, and we’ve seen it all. The goal is to ensure that your site performs the way it was intended to, mitigating any downtime or performance issues.
The key is User Acceptance Testing
We understand the vital importance of testing, and internally are always striving to ensure that when we implement something new for our clients, it undergoes a meticulous process of trying to break it and find flaws, over and over again. Oddly our team really get a kick out of this and if we find an issue, we fix it. But while we evaluate our work until we are satisfied that it is functioning properly and suits its desired purpose, it may not be ready for the production environment just yet. Others may find a shortcoming we did not, request that a feature begets added, not originally considered, or prefer a component be implemented a different way.
This is why we recommend that our clients implement a User Acceptance Testing, or UAT, environments. This means users test a system to ultimately verify that it fulfils their requirements. At Integranet Digital, these users typically refer to the employees of the client, such as content editors, who will be engaging with the system frequently. Whether it be in the form of functionality, performance or aesthetics, on UAT, users can assess whether everything is ideal and approve or disapprove the progression to the next phase of development.

{Thankfully we’ve never had this happen, but that’s because we put the right website development testing procedures in place}
If everything is well, it provides comfort and confidence of a smooth production deployment. If there is an issue, both the developers and the client can be relieved knowing that the issue (bug, desired enhancement or otherwise) was uncovered before the solution went live. The issue can be addressed and retested on UAT with much less harm done than if it had it been on production.
The development environment explained
You might be thinking, “You’ve mentioned the production environment and this UAT environment, but there is also the development environment… Why can’t the testing just be done on the development environment? The developers are constantly testing when they are building, are they not?”
The development environment is where all new features are built. A significant part of the process involves continuous rigorous testing and reviewing on the development environment to ensure components work before they are delivered to the client for verification. However, the developers are not the ones who will be using the system regularly. The users will.
The website or software developers can position themselves as users as best they can, but they are still developers, not end users. Developers can try but ultimately cannot account for each individual user for every possible circumstance, especially given their unique emotions, behaviours, motivations, processes, skills, working conditions and individual technology setup. Regular everyday users provide very beneficial information in tailoring the system with powerful insights.
Experiment with your website before you go live
Another reason to distinguish development and UAT environments is that a UAT environment enables simulation of real-world scenarios. The development environment is set up to build, experiment, break things and put them back together. How components that appear and operate on the development environment are unlikely to appear and operate the same on the production environment. Having a UAT environment affords you this ability to replicate what will be the live site.
Testing is also much simpler on a separate environment from development because of the isolation from the state the development one is in. The development environment, of course, has the developers still interacting with it and can contain features still in-progress and settings that are different from the production environment. Knowing what should be fully functional for testing and isn’t can make testing confusing and less effective. Testers could accidentally alter code, settings or content that break what a developer is working on, or vice versa.
The system also might only be working due to certain specifications on the development environment that production does or will not have. The development environment could be outdated too if business rules, content and conditions, such as users and system settings, have changed.
Benefits of having website testing environments
A major example of the benefit of a testing environment is performing an upgrade to a website, like updating a content management system (CMS) to the latest version. There are many factors to consider when this is scheduled and performed, such as back-ups, upgrade specifications and roll-out plans. You want to be sure that all factors and requirements have been addressed and the system will be functioning properly when the upgrade has been implemented in production, so having a dedicated testing environment allows the procedure to be trailed first and make you aware of any problem that may occur, anticipated or not, allowing you to take action.
You will have noticed the title of this article states “at least 3 environments”. We’ve highlighted the importance of implementing a User Acceptance Testing environment (UAT), a Development environment (DEV) and a Production environment (PROD), but there are other software tests that could benefit from their own environment. Unit Testing, Performance Testing and Integration Testing could all benefit from isolation like User Acceptance Testing. Software upgrade procedures as mentioned earlier are examples of Regression Testing, and it might be crucial that the business tests a CMS update separately from features developed specifically for the system – another deployment environment gives you this option. Depending on the business and user needs of the system, the number of testing environments that is a perfect fit for the solution will vary. Implementing at least three dedicated environments: DEV, PROD and UAT, is a wise investment that will greatly reduce the chances of experiencing major issues when the system is live, saving money, saving time and preventing customer dissatisfaction from needing to reconcile problems with a down system.
Do you need a UAT environment?
If you have no idea what any of this means for your business right now or need help with the development, testing or deployment of your solution, whether that is a custom piece of software or website, our team can help at any stage of the project. Our Business Analysts can provide clear tips and insight, and our software and website developers can shape your pain free solution in no time. See how we’ve helped other organisations in Perth, or book a free consultation.