The challenge

Bunsan is an IT consultancy and Professional Services company focused on emergent technologies, which also creates products for internal and external use. One of these products is Tich, an online classroom to teach a class in real time. 

In mid 2020, our team was officially integrated into the testing phase of the project. Previously, the development team was in charge of testing activities. 

One of the most important challenges was the complexity of the tests.Tich is a very particular tool that merges elements which should be carefully watched, such as network connection (bandwidth, lost packages, etc.) web browsers (limitations, peculiarities, etc.), devices (computer, camera, microphone) and all tools required to accomplish successful video calls.

The results

  • Provided a suitable and flexible team of experts who support the client in product verification through a mutual cooperation among teams.
  • The testing process that was implemented has shown that we can standardize testing activities to be carried out, no matter who is working on them.
  • Supported the creation of a remote-friendly work setting.
  • We provided specific reports of the testing process to help decision making.
  • We helped identify the limit in the number of users and resources that the application can handle on its video calls according to server capacity, offering business knowledge about capacity vs. costs.
  • Incidences reported in the production environment have been reduced.

Our work

  • Functional Testing
  • Stress Testing 
  • Test Automation

Tools and technologies

WebdriverIO
Selenium
Cypress

The solution

Functional Testing

To offer certainty in the validation of new requirements, we proposed a standard four-phase testing process. Each of these phases had a list of tasks that must be covered throughout the project to guarantee testing coverage of the new functionalities.

One of the activities that helped us to have a clear visibility of the tests execution is the generation of reports that, in a single view, display progress and status of the testing process.

Stress Testing

One of Tich’s acceptance criteria is to support multiple users while the platform maintains good stability in calls made via the internet. To measure application performance and behavior, along with the different teams, mechanisms were created that helped us obtain metrics.

Our Testing Team ran several proofs of concept to identify the best way to automate certain stress scenarios. Due to the nature of the application, it was necessary to automate behaviors that could be launched by "humans" within a video call, such as activating a microphone and speaking or turning on the camera and sharing video.

Some examples of this scenarios are:

Scenario Peers connected Active cameras Active microphones Screen sharing
Validate call stability for two hours while one participant uses media services. 50 1 1 Yes
Validate call stability when all peers are using media services. 30 30 30 No
Validate the stability and stress resistance of the application. 30 30 30 Yes
Validate the stability and stress resistance of the application. 20 20 10 No

Lastly, using Webdriver.IO and Selenium, several scripts were built for simulating video calls in the application, where “N” number of users could use media tools such as audio and video, capture usage time and the number of users that could use them simultaneously. Each combination that was created, helped us identify and assess the impact on resources and application support needed under different stress situations.

Test Automation

Throughout time, Tich has evolved and for this reason, the automation of regression tests has become essential. Currently, tests are carried out on web environments because they usually focus on front-end applications.

Cypress has been used to automate several flows along with Cucumber to speed up automation times. Both tools are easy to understand and ease the onboarding of new testing team members.

Learning

Tich has come with the opportunity to work with different kinds of testing, which has helped us to evaluate our competences and skills. At the same time, we got the opportunity to evaluate different testing tools and identify those that can provide more value for the project objective. 

We can confirm it is of vital importance that Software Testing specialists in the software area work hand-in-hand with other areas involved in the Product Development process in order to reach the common goals.