QA Testing — What is DEV, SIT, UAT & PROD?
Reposted from the BuTTer Tech publication; I am the original writer.
Testing can ensure the quality of the app delivered to the end-user. Different parties share different responsibilities for testing. On the app vendor side, software developers, QA engineers and project managers have to work together to clearly define the technical specifications and the corresponding testing protocols. On the client-side, the client can test the app features and comment on user experiences if any. Good cooperation between parties can enhance the overall app quality in long term.
Testing among different parties are generally divided into 4 parts, which will be discussed in detail later:
- DEV — Development [Software developer]
- SIT — System Integration Test [Software developer and QA engineer]
- UAT — User Acceptance Test [Client]
- PROD — Production [Public user]
Moreover, Apple and Google provide different tools for the app owner to issue public testing app to a small group of registered testers (100 people) before actually launching the app to the Play Store and App Store. They are TestFlight and Google Play respectively
Details of different Testings
1) DEV — Stands for Development
During the early stage of app development, senior software developers would divide each app feature into smaller modules and assign them to junior developers. This can greatly increase efficiency and productivity.
When individual developers complete their codes, a lot of “functions”s are made. Each “function” is like a black box that takes an input and returns an output. Ideally, each function is only responsible for only one task. Developers can write Unit Tests to verify the functionality of their individual function. Unit Test is the most basic testing of an app and is always the most important part.
2) SIT — Stands for System Integration Test
As mentioned above, a large feature is divided into smaller parts and assigned to different developers. The testings for interfaces between modules are critical. At this part, there is usually a team of QA engineers to write test cases (program) for testing the functionality and stability.
3) UAT — User Acceptance Test
After developers finish developing the app and pass all the internal testings, an application is sent to the client for testing on end-user experience and overall app functionality.
The client can invite a small group of public users to be internal testers. Both Apple and Google provide tools to let registered testers test on the pre-launch apps to gather user comments and see if any potential bugs. The testers can open the testing app through TestFlight for iOS app and Play Store for Android app.
4) PROD — Production
At the final stage of app production, the app is distributed to the public through official channels — App Store and Play Store. A public user can use the latest features and report any issue they encountered.
Google provides an excellent tool — Firebase Crashlytics. It can report issues to the developers and app owners when there are any issues on the end-user side. The report contains lots of user information, such as where and when the issue happened, the user’s device model and operating system level, etc.
Summary
- Testing can be separated into 4 different stages — DEV, SIT, UAT and PROD.
- DEV is a test carried out by the software developers who made the functions.
- SIT is a test for the interface between different modules which is a small part of a single feature.
- UAT is carried out by the client and probably a small group of registered testers. The client can use the TestFlight and Play Store to distribute the testing apps to register testers remotely. A lot of feedback on features and user experience can be gathered at this stage.
- PROD is the stage where the app has been publicly released. A much larger group of users can use and test the new features. Unexpected bugs and issues can be found and reported by Google tools Crashlytics. UI/UX designers and developers can enhance the app with this information.