WebRTC applications are no different from other applications in the product development lifecycle. That said, understanding WebRTC and that lifecycle can greatly help us in our WebRTC testing needs.
There are many ways to depict the product development lifecycle, and this depiction will change based on who is the one illustrating it. Here is my own interpretation of the product development lifecycle, which aligns well with WebRTC testing.
When working on a WebRTC application, you must consider the whole product development lifecycle process. WebRTC affects each step in the process in various ways. Let’s see how.
When planning a WebRTC application, you need to be able to understand the capabilities and limits of WebRTC as a technology. Here, things like the codecs you can use and browsers supported (all, but slightly differently) will change your plan.
The biggest thing to do here though, is to understand that WebRTC should be treated as a marathon and not as a sprint:
- WebRTC implementations and behavior in browsers change over time, and you will need to adapt to these changes.
- Being a popular protocol, WebRTC is targeted by hackers, and security patches are introduced to it almost on a monthly basis. You will need to keep track of these.
- There’s an arms race going on to reinvent remote collaboration. Vendors are trying to take WebRTC to the cutting edge. This will likely lead to changes in UX and requirements that you will need to follow at some point as well
Whatever your plan is, make sure to have WebRTC skills in your team prepared to work on it for the long term. Also be sure to take into consideration your WebRTC testing needs. Thinking of them at later stages means you will need more resources to address them.
The design phase is where we really start taking a look at WebRTC testing.
Based on the requirements we’ve gathered during our planning phase, we now need to ensure and validate that whatever we do gets well-architected. This is doubly true when we are working on group video calling – being able to scale a single room/session/call/meeting beyond 4 participants requires careful design and optimization.
At times, you may even want to build small proof of concepts and test them out. For this, a solid and automated way of launching multiple browsers to conduct some initial WebRTC testing can be highly useful.
In this stage, your engineers will develop your WebRTC application, hammering down the code. You might be using open-source media servers here, a CPaaS platform, or building everything from scratch on your own.
No matter the approach, make sure to test your WebRTC implementation properly – before reaching the test phase. Why? Because your use case is different from others out there (even if you don’t think it is). Media servers and CPaaS platforms are highly tuned for specific scenarios that might be different enough from yours. You will need to tweak and finetune their configuration and your code to get things to work as smoothly as you need.
Using a WebRTC test automation tool can greatly assist here in enabling debugging and troubleshooting at the level of depth your engineers need.
Once we reach the test stage in our process, we have a clash between the testers and the engineers. Testers need a way to run scenarios and determine whether they succeeded.. Engineers need a way to look at the test results and logs to find out what went wrong. And then, testers need a way to validate the same scenario in a predictable and reproducible way to ensure the fix applied works as advertised..
We also need the ability to work at scale here, running hundreds if not more browsers concurrently, and retrieving and analyzing the results quickly..
This is where a solid WebRTC test automation tool will shine, reducing your time to market and increasing the confidence level in your WebRTC application.
Moving from your development and QA environment to production means additional testing. You need to make sure the production environment is configured correctly and offers the non-functional requirements outlined in the planning phase.
As in the development and test phases, using a solid WebRTC test automation tool will help you here.
As your product is running in production with real users in it, you are going to find out a few things:
- WebRTC infrastructure tends to break from time to time. And you need to be able to know when it happens and even before it happens – to reduce the impact and downtime for your users.
- Users are going to complain. Sometimes their complaints will be valid and point to failures in your implementation. At other times, these complaints will stem from a local issue they have – be it a network connectivity problem or a device malfunction.
The more visibility and support tools you will have in place the better off you will be in serving your customers.
Here are 3 different maintenance aspects you should be considering:
- Testing your infrastructure. Have a predictable, repeatable test scenario that is automated on your platform to validate that it is running as expected. This is important by being a subjective measure of the performance of your service.
- Monitoring users’ traffic. Collect and analyze the WebRTC traffic of all sessions in your system. Have it provide information in aggregate along with a drill-down to the single user level. So that you can investigate issues as they happen, finding trends and patterns in usage.
- Network testing tool for users. Have a self-service tool for users and for your support to help figure out and pinpoint user-specific problems with their devices and connectivity. This can alleviate a lot of the hard work of your support team as well as assist in making your end users happier with your product.
WebRTC testing – how are you tackling it?
When it comes to WebRTC testing, there’s many tools that need to be in place throughout the product development lifecycle. These are important for the successful implementation and deployment of a WebRTC application.
Some teams prefer building their own tools for this purpose, while others will lean towards using 3rd party vendors for this – taking into account their core competencies and the need to focus on the WebRTC application implementation itself.
Spearline offers great WebRTC testing tools – these apply to all stages of your product development lifecycle.
New to Spearline?
Spearline provides quality assurance tools for business communication services, allowing you to proactively manage your inbound and outbound voice, SMS and fax services. Our latest WebRTC products offer testing, monitoring and support for web-based communications.
We work globally across business sectors, supporting contact centers, conferencing services, and more to successfully connect with their customers and employees. For further information, or if you have any further questions please get in touch.