In this article, we have discussed some of the crucial steps which involve a thorough testing of the MirrorFly chat application based on functionality from registering to delivery of the messages to thousands of users at the right time.
A Study about Testing Case:
Testing of a software solution is an investigation that is conducted to verify if a UI of a software is designed according to the requirements, the features of the software functions according to the requirements given in the TRD, the solution responds correctly to all kinds of inputs, the solution performs its functionality within an acceptable time, the solution can be installed and run across all its intended environments, the solution should be secured and it should be sufficiently usable.
Software testing is divided into functional testing and non-functional testing. Functional testing involves validating if each and every feature of a solution works as expected. This testing is done from the perspective of the end-end user of an application. Non-functional testing involves checking the performance, scalability, security of the application.
Functional Testing of MirrorFly:
Before proceeding with validating the functionality of MirrorFly features, we collaborated on all the requirements for testing. This is a vital step and it would provide a clear understanding of what has to be tested and without understanding this we won’t be able to develop a test plan and without a test plan, there should be no testing.
Test plan document includes all the features or functionalities that will be considered for testing, the test resources required and the test schedule. Test cases for each of the functionalities are written in the test plan document and the test cases are prioritized based on their importance.
MirrorFly consists of two components for testing. One is the mobile application (Android, iOS) and the second is the web application. Mobile application testing involves testing the functionality, Verifying the usability of the application, compatibility testing, Installation testing, Interrupt testing and operational testing.
This feature is tested by providing a valid and invalid mobile number and also by providing a valid and invalid combination of country code with the mobile number. For instance, an invalid country code with a valid mobile number or vise Versa. We ensure that correct error messages are provided in all the negative scenarios of the registration feature. Some other negative scenario is to verify the correct error message is displayed when the user enters less than or more than the required digits in the mobile number field.
- We test if the registration flow is easy for the users to follow
- We test if the text font and colors are correctly matched to avoid any difficulties while reading the options
- We test if the registration screen follows common colors
We verify if the application detects all the contacts of the phone book and syncs the contacts in the contact list if the user has an account in MirrorFly.
- Sending a text message from one user to another
- Sending multiple text message to the receiver
- Sending text messages of 500 characters and verifying if the message is delivered to the receiver
- User should be notified when the message is successfully delivered to the recipient by displaying a yellow dot next to the sent message
- User should be notified when the message is not delivered to the recipient by displaying a grey dot next to the sent message
- User should be notified when the message is read by the recipient by displaying a green dot next to the sent message
Voice and video communication:
We perform live voice call testing were two or three testers get involved to test the below-mentioned scenarios.
- Performing voice call in different network connection (like Caller in 2G and recipient in 3G, Caller in 2G and recipient in 4G, Caller in 2G and recipient in 2G, Caller in WIFI, recipient in 2G, caller in wifi and recipient 3G, caller in wifi and recipient 4G etc..)
- Performing voice call to a recipient whose app is in background
- Performing voice call to a recipient whose phone is in idle state overnight (Stress test)
- Performing voice call to a recipient who hasn’t used the app for many days (Stress test)
- Performing voice call in roaming state
- Performing a voice to a user who is already engaged in a voice call with another user
- Decline an incoming call
- Call back if the user has not received the incoming call
- Quality of voice call
- We perform a stress test on voice call by initiating a voice call between user for more than 2 hours and ensure the call does not get disconnected
- We also check the connectivity of call in roaming state (In good network)
- We verify if appropriate error messages are given to the user when the network connectivity is low and the user is trying to initiate a voice call
- We check if the user can accept, decline and hear to voice call over headphones
- We repeat the same testing pattern for video call
- Apart from the above-mentioned scenarios we also check if the proximity sensor is enabled for voice call and disabled for video call
- We check if the caller is receiver frame is switchable by user
- We check if the blank screen is displayed in the caller/receiver frame when the video call is put in the background
There are a huge number of Test cases are available that can be implemented related to UI testing, Network, and so on. The result went on in a positive way and thus the result was as we expected – a bug-free chat application.