RoboCon 2024

3..2..1..BEEEEEP! Microwaving Robot Framework
2024-02-08 , RoboCon

Promoting re-usability and abstraction for a multi-interface telecommunication product. Employing one keyword per action offers consistent outputs across interfaces, versatile and reusable single-functionality tests and simplified user focus on keyword-based actions ensuring code simplicity.


Microwave backhaul is a method used in telecommunications to transmit data, voice and other signals through radio frequencies. Our portfolio includes hardware units with diverse functionalities that can be flexibly configured to create various network/radio topologies. In addition to this, all units support the following user access interfaces: webct (web page), snmp and ongoing integration of netconf, REST and cli. Testing should cover frontend, backend, and end-to-end functionalities for each hardware unit, spanning all interfaces and multiple topological setups. In order to mitigate these complexity issues, we introduced an approach to overload keywords with custom python annotations. In this talk, we'll explore hardware testing challenges as well as our framework structure.
The most significant principles in our framework are:

One Keyword Approach
Every action on our product is associated with a specific keyword that will apply it to the access interface given as input argument. Since multi-interfaces are supported, it is ensured that each keyword will return consistent outputs.

Test Reusability Across Interfaces
By extending the above principle from keyword-level to testcase-level, we achieve test uniformity across interfaces, saving development time and resources otherwise spent on separate test case creation.

Test Adaptability Based on Network Topology
Product functionality should be tested across different hardware units and different network topologies. Tests designed for one network topology can be adjusted to similar topologies. The system-under-test is described in a Python class variable file with each test dynamically loading network parameters from this file during runtime. Changing the python file, reuses the test to another hw unit and topology.

User Experience Simplification and Code Readability
To enhance user focus on keyword-driven actions, common interface actions are hidden by adding interface-related parameters as function arguments. Python decorators facilitate these principles by mapping system-dependent variables to their values and executing required actions for each interface.

Extendable to new interfaces

Support for new user interfaces can be incorporated just by implementing the interface python functions and due to one-keyword approach and test adaptability, no new tests need to be re-written to test existing functionality!


In-Person or Online talk?:

I am available for both! :)

Lessons Learned:

What i have learned?
* how to use decorators for custom keywords .
* how to test actual hw, and how sensitive it is
* how hard it is to combine different interfaces
* how to automate also peripheral units (instruments needed for our tests)
* how to reuse code of the two existing frameworks to unite to one
* how to make the framework user-friendly and appealing to all testers - automated and manual - and clear to all, despite their automation knowledge.
* how to continuously improve the user-experience and the framework capabilities.

Is this suitable for ..?:

Beginner RF user, Intermediate RF user, Advanced RF user

After surviving the telecommunications wilderness for an impressive 14 years, I'm your friendly neighbourhood QA tester. With trusty Automation by my side, I'm on a daring mission to unravel the tech mayhem and restore peace in the nerdy universe of operations. You'll find me as the Senior Automation Tester at Nokia in Mobile Networks, battling to make telecom software systems more user-friendly and efficient, one automated test at a time.