I was working with a startup that was just a few weeks away from their launch, and I noticed they were a bit confused regarding where they should release the app.

This is not uncommon—test environments for demo applications is a confusing topic, especially for people who don’t deal with software development on a daily basis. So, I’ve decided to dedicate a full article to explaining everything a startup founder needs to know about test environments.

Back to basics

If you’ve heard about front-end and back-end development by now (and I do hope you have), you should know that there are generally two sides to an app: the part the client directly interacts with, and the rest.

When talking about test environments, the first part refers to the mobile app side. When the user does something on his side of the app, it reaches a public endpoint. That interaction then moves onto the second part called the server side. That is basically where we centralize information, like API services that sync the user’s info, credentials, data, etc., and is made up of the server app, the database and the server side storage.

The last two store information, but have different roles. Databases usually just have a couple gigabytes in total for the entirety of the app, while the server side storage offers a lot more space, can hold any type of file, and is usually responsible for storing the user’s assets (files, avatars, pictures, etc.).

What’s the deal with test environments?

Very good question. We now have a basic understanding of what constitutes an app, but we haven’t touched on how apps are actually developed, which will help us understand what test environments are, and what their purpose is.

First thing to remember is that apps are normally worked on by more than one person. In fact, the more complex the app, the more developers and experts you will probably have pitching in on the project. Second thing to remember is that most apps are designed with thousands, if not more, of intended users in mind. So any mismanagement of the software has the potential to affect lots of people or even crash the app altogether.

Test environments are the different spaces during development where your app is scrutinized to ensure it works properly before and after its release to the public.

There are seven test environments in app development generally, but not all are recommended or used in startup development.

Types of test environments

  1. Development: Worked on by a single developer. If there are multiple developers, each one has their own.
  2. Integration: Where the lead developer merges the work of several developers or branches into one.
  3. Test: For the development team, to see if the application works as intended.
  4. Staging: To show people outside the organization.
  5. Pre-production or acceptance: Allows the users to try it out and confirm if it’s indeed useful. Works with the same database used in production.
  6. Production: Actual app. Real version open to market.
  7. Iso-production: Temporary, used to debug. A copy of the production environment but with a very limited database, defined by the issues in question.

Please do keep in mind that each of these environments are used to test versions of both the mobile and the server side, and most of them use a dedicated database and server storage—that is, limited versions of the “real” ones (or production ones) that only store the info required for the intended tests.

Startup style

When talking specifically about startup software development, we usually refer to a project with limited resources, so it’s necessary to prioritize. Startups tend to only use the development, test and production environments.

However, I always recommend to have a pre-production environment as well, whenever possible, since it will limit the risks of market acceptance once the working production app is released. It’s best to work out the kinks beforehand, rather than launching and getting a bad rep, which will be hard to recover from.

That’s it for this topic! By now you should have a better understanding of an app’s development process and why test environments are so useful. If you found it interesting, feel free to share. And if you’d like to learn more about startup tech management, feel free to check out the other blog post articles and the courses on myCTOfriend.co.