WebRTC applications are no different from other applications in the product development lifecycle. Having said that, understanding WebRTC and its lifecycle can greatly help us with 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 first consider the whole product development lifecycle process. WebRTC affects each step in the process in various ways. Let’s further explore these.
PLAN
When planning a WebRTC application, you need to be able to understand both the capabilities and limits of WebRTC as a technology. Here, things like the codecs that you use and the 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 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 commonly targeted by hackers, and security patches are introduced to it on a near monthly basis. You will need to keep track of these.
- There’s a race going on to reinvent remote collaboration. Vendors are trying to take WebRTC to the cutting edge. This will likely lead to changes in user experience (UX) and the requirements that you will need to follow.
Whatever your plan is, make sure you have WebRTC skills in your team and that you’re prepared to work on it for the long term. Also, be sure to take into consideration your WebRTC testing needs. Thinking of them at a later stage means you will need more resources to address them.
DESIGN
The design phase is typically where teams really start to take a look at WebRTC testing.
Based on the requirements gathered during the planning phase, you now need to ensure and validate that whatever your team does gets well-architected. This is doubly true when you are working on group video calling – simply being able to scale a single room / session / call / meeting beyond 4 participants requires careful design and optimization.
At times, you may even need to build small proof of concepts and test them out. For this, a reliable and automated way of launching multiple browsers to conduct some initial WebRTC testing can be highly useful.
DEVELOP
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 (Communications Platform as a Service) platform, or building everything from scratch on your own.
No matter which approach you use, make sure to test your WebRTC implementation properly – before reaching the test phase. Why? Because your use case is different from others already out there (even if you don’t think it is). Media servers and CPaaS platforms are highly tuned for specific scenarios and are likely different 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 solution can greatly assist here in enabling debugging and troubleshooting at the level of depth your engineers need.
TEST
Once you reach the test stage, there is often a clash between the testers and the engineers. Testers need a way to run scenarios and determine whether they succeeded or not. 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 planned.
You also need the ability to work at scale, running hundreds, if not thousands of browsers concurrently, and retrieving and analyzing the results quickly. Shortening this cycle between testers and engineers means faster release cycles and a better feedback loop with your users as well – all leading to better utilization of your engineering.
This is where a solid WebRTC test automation solution will shine, reducing your time to market and increasing the confidence level in your WebRTC application.
DEPLOY
Moving from your development and quality assurance (QA) environment to production requires additional testing. Ensure that you configure the production environment correctly and provide the non-functional requirements outlined in the planning phase.
As in the development and test phases, using a solid WebRTC test automation solution will greatly help you.
MAINTAIN
When your product is running in production with real users, you are going to discover a few things:
- WebRTC infrastructure tends to break from time to time. And you need to be able to know when it happens and ideally before it even happens – to reduce the downtime and impact on 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 have in place the better off you will be in serving your customers.
Here are 3 different maintenance aspects you should consider:
- 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 as it is a subjective measure of the performance of your service.
- Monitoring users’ traffic: Collect and analyze the WebRTC traffic of all sessions in your system. Provide the information in aggregate form, along with a drill-down to the single user level. Through this you can investigate issues as they happen, finding trends and patterns in usage.
- Network testing solution for users: Have a self-service solution for your users to help figure out and pinpoint user-specific problems with their devices and connectivity. This can alleviate a lot of work for your support team, as well as ensuring your end users are truly happy with your product.
WebRTC testing – How are you tackling it?
When it comes to WebRTC testing, there are many tools that need to be in place throughout the product development lifecycle. These are important for the successful implementation and deployment of any WebRTC application.
Some teams prefer building their own solutions for this purpose, while others will lean towards using third party vendors for this – taking into account their core competencies and the need to focus on the WebRTC application implementation itself.
Cyara offers an extensive range of WebRTC testing solutions – providing testing across each and every stage of your product development lifecycle.