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
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.