WebRTC is bringing in an evolution in how we communicate and collaborate over the internet, leaving VOIP way behind in the race, by allowing us to embed voice, data, video, and instant messaging into browsers. It envelopes a wide range of emerging technologies, which leverage on the current technologies and extend the capabilities of a browser, by allowing real-time media exchange with other browsers. It provides developers with a platform wherein they can build a powerful and robust voice-and-video communication solution. WebRTC is an open-source environment and is supported by Apple, Google, Microsoft and Mozilla, amongst others.
So, how useful is WebRTC? Well, here are some interesting pointers to note and benefit from:
- If you use a third-party API like OAuth to fetch data from services like LinkedIn, Facebook, and Google, then you can couple this fetched data with WebRTC-powered features to enable rich contextual communications. Here’s an example, if you put up a video interview and then you can use WebRTC’s data channel to stream relevant and contextual data as an overlay to what’s seen by participants, complementing the live video chat.
- Sending big files through the existing data channels is neither as fast nor as secure as you would expect. But you could send it directly through your web browser using WebRTC’s data channel, with very low-latency, with ensuring full encryption between the two endpoints, hence maintaining data security.
- Embedding ATMs, Vending machines and retail store kiosks with WebRTC engines, is an easy way to connect the customers with agents in real-time, while they are on-the-go.
- Websites or applications with WebRTC audio or video channels speed up the sales process by providing ongoing assistance to customers with their purchases.
- You can create a multi-user video conference with WebRTC, by setting up a mesh solution involving each user and establishing a direct peer-to-peer connection.
- WebRTC is actively being used to increase public safety, for example, SaferMobility uses WebRTC to seamlessly connect people directly to concerned authorities, while also utilizing location-based awareness.
- Health clinics use WebRTC based solutions to enable online consultations over browsers. WebRTC based solutions are leveraged for sharing images for radiologists review.
With the internet traffic heavily steering towards WebRTC, it is important to ensure that you have a mechanism in place that provides quality assurance for such WebRTC based applications to be released in production environments. Applications such as Skype, Whatsapp, Google Hangouts, Zoom, and Microsoft Teams use either WebRTC or VoIP and have become extremely important today, as businesses rely on them for their communication channels, thus, quality becomes one of the most important criteria to be considered and also maintained.
However, testing WebRTC based applications in an automated fashion is very challenging. Developers use WebRTC to integrate audio and video communications with their web applications, and typically they make use of a complex media pipeline for handling and transporting heavy multimedia information, making it difficult to be tested using simple comparison-based oracles.
Validation of functional correctness of WebRTC applications requires the ability to evaluate parameters like media connectivity to check whether the data packets are properly sent end-to-end, or, media continuity, to check whether the media is well-encrypted.
Therefore, in order to release these kinds of services to production, the testing mechanisms require an architecture that offers assessment of the functional correctness of the SUT, but also the stability, scalability, and security of these services. WebRTC services involve complex, distributed and heterogeneous network topologies where failures or inefficiencies on any of the components may prevent the service from operating offering a successful user experience.
Testing the applications and keeping them running, error free is of utmost importance and critical as well.
When developers integrate video and voice into the applications, they consume complex media pipeline helping with the transport of multimedia information and this cannot be using simple comparison-based oracles. Beyond the UI, you’re testing if the two browsers established connection when the caller calls the called and the called answered the call or whether the connection is terminated when one party hangs up, whether voice channel got established and whether data channel got established and so many such complex scenarios.
We at AlgoShack, have also dealt with testing these kinds of applications that exchange packets of data related to audio and video. It is dealing with something more than a web application because you’re dealing with audio and video, two-way calls and multi-party calls.
The real time nature of WebRTC traffic makes Quality of Service and Quality of Experience a point to focus on.