Software Platform for the Comprehensive Testing of Transmission Protocols Developed in GNU Radio
Abstract
:1. Introduction
2. Related Work
- Black Box Testing: this technique is based on the requirements and specifications of the software under test, and there is no need to examine the program’s code. The tester only knows the set of inputs and predictable outputs.
- White Box Testing: this technique mainly focuses on the internal logic and structure of the program’s code. The tester has total knowledge of the program structure, and with this technique, it is possible to test every branch and decision in the program.
- Grey Box Testing: this technique combines the benefits of black box and white box testing. It attempts and generally succeeds in achieving optimal testing outcomes. The software testing process has several phases and goals. As a result, there are a wide range of testing categories that can be identified. A more detailed categorization of the software testing process can be found in [3]. These categories are:
- Acceptance Testing: this category of testing is performed to determine whether the system or software is acceptable.
- Ad Hoc Testing: this type of testing is performed without planning or documentation. The goal is to find errors that were not detected by other types of testing.
- Alpha and Beta Testing: alpha testing is performed at the development site after acceptance testing, while beta testing is carried out in a real test environment.
- Automated Testing: this involves using automated tools to write and execute test cases.
- Integration Testing: the testing of individual units is grouped together, and the interface between these units is tested.
- Regression Testing: the test cases from existing test suites are rerun to demonstrate that software changes have no unintended side effects.
- Stress Testing: this testing determines the robustness of software by forcing the functioning of software modules beyond the limits of normal operation.
- User Acceptance Testing: this testing is performed by the end users of the software. It happens in the final phase of the testing process.
- Security Testing: this testing checks the ability of the software to prevent unauthorized access to resources and data.
3. Platform for Real-Life Testing of Communication Protocols
3.1. Testbed Environment
- It is important to ensure that the outgoing traffic through the TUN/TAP interfaces of the system is not routed through the loopback interface as the application is interacting with these interfaces. To do this, the default local routes associated with these interfaces should be removed.
- The kernel uses the local routing table for incoming (ingress) traffic to decide if a packet is addressed to the local host. Therefore, it is necessary to create an alternative routing rule that is only used for ingress traffic. To achieve this, distinct routing decisions should be used on input and output paths, and a routing rule should be created that matches only for ingress traffic, packets with the "input interface" attribute (i.e., iif), and performs the route lookup in a custom "local" routing table (see Figure 4).
- To pass traffic through the GNU radio application under test, two entries are created in the main routing table that routes the traffic destined to the far end of the "tunnel" (e.g., output interface) through the near-end interface. In this way, to send a packet with the destination of the far end of the tunnel (e.g., 3.3.3.3), it is routed through the near-end interface (e.g., tap0) from where the application reads (see Figure 5).
- In the case of tap interfaces, which are layer 2 interfaces, static ARP (address resolution protocol) entries are set to eliminate ARP-specific traffic through the application under test (see Figure 6).
3.2. Testbed Architecture
3.2.1. Testbed Net IO
3.2.2. Testbed Support Services
3.3. Monitor Messaging
- When creating GNU radio applications, the monitoring messages typically come from a GNU radio block and are built within the block’s work thread. This means it is important to find efficient methods for constructing these messages. Additionally, since the broker combines messages from multiple sources, improving deserialization is crucial. Refer to Figure 10 for the main components involved in transferring monitoring messages. The message generators are in charge of constructing messages and operate in the same thread as the GNU radio blocks.
- The monitor probes collect messages from multiple generators within the GNU radio application and send them to the broker.
- The broker is responsible for receiving messages from various probes and subsequently processing them.
- Message passing uses the GNU radio messaging system between individual blocks. This system uses PMTs (polymorphic types) [49] to carry different objects as messages between blocks.
- The transport channel carries the message from the GNU radio application to the message collector (i.e., the broker).
3.3.1. Monitoring Message Content
3.3.2. Monitoring Messaging Methods
- The first method serializes the proto message immediately after building the message in the GNU radio block working thread and passes the serialized data to the probe as pmt::blob. This method is known as PROTO-BLOB.
- The second method passes the proto message object as pmt::any (i.e., boost::any), and this method is known as PROTO-ANY.
3.3.3. The PMT-Based Messaging Method
3.3.4. The PROTO-Based Messaging Method
3.3.5. The Transport of the Monitoring Messages
3.3.6. The Message Broker
4. Results and Discussions
4.1. Evaluation of the Monitoring Messaging Methods
4.1.1. The Message Size
4.1.2. The Message Build and Parsing Times
4.1.3. End-to-End Testing of the Messaging Methods
4.2. System under Test
Evaluation of the System under Test
4.3. Threats to Validity Discussion
5. Conclusions
Author Contributions
Funding
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
References
- Okenzie, F.; Odun-Ayo, I.; Bogle, S. A Critical Analysis of Software Testing Tools. J. Phys. Conf. Ser. 2019, 1378, 042030. [Google Scholar] [CrossRef]
- Bansal, A. A Comparative Study of Software Testing Techniques. Int. J. Comput. Sci. Mob. Comput. 2014, 3, 579–584. [Google Scholar]
- Khan, M.E.; Khan, F. Importance of Software Testing in Software Development Life Cycle. Int. J. Comput. Sci. Issues 2014, 11, 120–123. [Google Scholar]
- Hanna, M.; El-Haggar, N.; Sami, M.A. Review of Scripting Techniques Used in Automated Software Testing. Int. J. Adv. Comput. Sci. Appl. 2014, 5, 194–202. [Google Scholar] [CrossRef]
- Kannan, S.; Pushparaj, T. A Study on Variations of Bottlenecks in Software Testing. Int. J. Comput. Sci. Eng. 2014, 2, 8–14. [Google Scholar]
- Chauhan, R.K.; Singh, I. Latest Research and Development on Software Testing Techniques and Tools. Int. J. Curr. Eng. Technol. 2014, 4, 2368–2372. [Google Scholar]
- Zhang, H. Research on Software Development and Test Environment Automation based on Android Platform. In Proceedings of the 3rd International Conference on Mechatronics Engineering and Information Technology (ICMEIT 2019), Dalian, China, 29–30 March 2019; pp. 749–753. [Google Scholar]
- Orso, A.; Rothermel, G. Software testing: A research travelogue (2000-2014). In Proceedings of the Future of Software Engineering (FOSE 2014), Hyderabad, India, 31 May–7 June 2014; pp. 117–132. [Google Scholar]
- Goyat, J.; Dhingra, S.; Goyal, V.; Malik, V. Software Testing Fundamentals: A Study. Int. J. Latest Trends Eng. Technol. 2014, 3, 386–390. [Google Scholar]
- Weyuker, E.J.; Vokolos, F.I. Experience with Performance Testing of Software Systems: Issues, an Approach, and Case Study. IEEE Trans. Softw. Eng. 2000, 26, 1147–1156. [Google Scholar] [CrossRef]
- Uyar, M.U.; Fecko, M.A.; Duale, A.Y.; Amer, P.D.; Sethi, A.S. Experience in Developing and Testing Network Protocol Software Using FDTs. Inf. Softw. Technol. 2003, 45, 815–835. [Google Scholar] [CrossRef]
- Jamieson, C.; Melvin, S.; Ilow, J. Rapid Prototyping Hardware Platforms for the Development and Testing of OFDM Based Communication Systems. In Proceedings of the 3rd Annual Communication Networks and Services Research Conference (CNSR’05), Halifax, NS, Canada, 16–18 May 2005; pp. 57–62. [Google Scholar]
- Popescu, O.; Abraham, S.; El-Tawab, S. A Mobile Platform Using Software Defined Radios for Wireless Communication Systems Experimentation. In Proceedings of the 2017 ASEE Annual Conference & Exposition, Columbus, OH, USA, 24–28 June 2017. [Google Scholar]
- Serkin, F.B.; Vazhenin, N.A. USRP Platform for Communication Systems Research. In Proceedings of the 15th International Conference on Transparent Optical Networks (ICTON 2013), Cartagena, Spain, 23–27 June 2013; pp. 1–4. [Google Scholar]
- GNURadio. The Free & Open Software Radio Ecosystem. Available online: https://www.gnuradio.org (accessed on 20 November 2023).
- Kaur, M.; Singh, R. A Review of Software Testing Techniques. Int. J. Electron. Electr. Eng. 2014, 7, 463–474. [Google Scholar]
- Roggio, R.F.; Gordon, J.S.; Comer, J.R.; Khan, F. Taxonomy of Common Software Testing Terminology: Framework for Key Software Engineering Testing Concepts. J. Inf. Syst. Appl. Res. 2014, 7, 4–12. [Google Scholar]
- Just, R.; Jalali, D.; Inozemtseva, L.; Ernst, M.D.; Holmes, R.; Fraser, G. Are Mutants a Valid Substitute for Real Faults in Software Testing? In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2014), Hong Kong, China, 16–21 November 2014; pp. 654–665. [Google Scholar]
- Li, W. Design and Implementation of Software Testing Platform for SOA-Based System. In Proceedings of the 2021 IEEE 6th International Conference on Computer and Communication Systems (ICCCS), Chengdu, China, 23–26 April 2021; pp. 1094–1098. [Google Scholar]
- Rosch, S.; Tikhonov, D.; Schutz, D.; Vogel-Heuser, B. Model-Based Testing of PLC Software: Test of Plants’ Reliability by Using Fault Injection on Component Level. IFAC Proc. Vol. 2014, 47, 3509–3515. [Google Scholar] [CrossRef]
- Kaur, K.; Singh, J.; Ghumman, N.S. Mininet as Software Defined Networking Testing Platform. In Proceedings of the International Conference on Communication, Computing & Systems (ICCCS 2014), Ferozepur, India, 8–9 August 2014; pp. 139–142. [Google Scholar]
- Bertolini, A.; De Angelis, G.; Gallego, M.; Garcia, B.; Gortazar, F.; Lonetti, F.; Marchetti, E. A Systematic Review on Cloud Testing. ACM Comput. Surv. 2019, 52, 1–42. [Google Scholar] [CrossRef]
- Xi, W.; Liu, W.; Bai, T.; Ye, W.-P.; Shi, J. An Automation Test Strategy Based on Real Platform for Digital Control System Software in Nuclear Power Plant. Energy Rep. 2020, 6, 580–587. [Google Scholar] [CrossRef]
- Garousi, V.; Felderer, M.; Karapicak, C.M.; Yilmaz, U. Testing Embedded Software: A Survey of the Literature. Inf. Softw. Technol. 2018, 104, 14–45. [Google Scholar] [CrossRef]
- Masood, S.; Khan, S.A.; Hassan, A.; Fatima, U. A Novel Framework for Testing High-Speed Serial Interfaces in Multiprocessor Based Real-Time Embedded System. Appl. Sci. 2021, 11, 7465. [Google Scholar] [CrossRef]
- Sarikaya, B.; Bochmann, G.V.; Cerny, E. A Test Design Methodology for Protocol Testing. IEEE Trans. Softw. Eng. 1987, SE-13, 518–531. [Google Scholar] [CrossRef]
- Wang, B.; Hutchison, D. Protocol Testing Techniques. Comput. Commun. 1987, 10, 79–87. [Google Scholar] [CrossRef]
- Dssouli, R.; Saleh, K.; Aboulhamid, E.; Bediaga, A.; En-Nouaary, A.; Bourhfir, C. Test Development for Communication Protocols: Towards Automation. Comput. Netw. 1999, 31, 1835–1872. [Google Scholar] [CrossRef]
- Lai, R. A Survey of Communication Protocol Testing. J. Syst. Softw. 2002, 62, 21–46. [Google Scholar] [CrossRef]
- Dorofeeva, R.; El-Fakih, K.; Maag, S.; Cavalli, A.R.; Yevtushenko, N. FSM-Based Conformance Testing Methods: A Survey Annotated with Experimental Evaluation. Inf. Softw. Technol. 2010, 52, 1286–1297. [Google Scholar] [CrossRef]
- Dssouli, R.; Khoumsi, A.; Elqortobi, M.; Bentahar, J. Chapter Three-Testing the Control-Flow, Data-Flow, and Time Aspects of Communication Systems: A Survey. Adv. Comput. 2017, 107, 95–155. [Google Scholar]
- Bai, Y.; Tang, P.; Zhang, J.; Zhang, J. Test Method of Communication Protocol of Standard Group Components of Electric Vehicle Charging Equipment. J. Phys. Conf. Ser. 2021, 2066, 012032. [Google Scholar] [CrossRef]
- Lawrenz, W. Communication Protocol Conformance Testing—Example LIN. In Proceedings of the 2006 IEEE International Conference on Vehicular Electronics and Safety, Shanghai, China, 13–15 December 2006; pp. 155–162. [Google Scholar]
- Tapia, E.; Sastoque-Pinilla, L.; Lopez-Novoa, U.; Bediaga, I.; López de Lacalle, N. Assessing Industrial Communication Protocols to Bridge the Gap between Machine Tools and Software Monitoring. Sensors 2023, 23, 5694. [Google Scholar] [CrossRef]
- Rettore, P.H.L.; Loevenich, J.; Lopes, R.R.F. TNT: A Tactical Network Test Platform to Evaluate Military Systems over Ever-Changing Scenarios. IEEE Access 2022, 10, 100939–100954. [Google Scholar] [CrossRef]
- Zhu, L.; Zhao, Y.; Gao, L. Software Testing Method Based Mobile Communication Equipment of Maritime Satellite. IOP Conf. Ser. Earth Environ. Sci. 2019, 234, 012059. [Google Scholar] [CrossRef]
- Bertizzolo, L.; Bonati, L.; Demirors, E.; Al-shawabka, A.; D’Oro, A.; Restuccia, F.; Melodia, T. Arena: A 64-Antenna SDR-Based Ceiling Grid Testing Platform for sub-6 GHz 5G-and-Beyond Radio Spectrum Research. Comput. Netw. 2020, 181, 107436. [Google Scholar] [CrossRef]
- Li, Y.; Zhu, X.; Hu, L. General Multiple Antenna Evaluation Platform. In Proceedings of the 2005 2nd Asia Pacific Conference on Mobile Technology, Applications and Systems, Guangzhou, China, 15–17 November 2005; pp. 57–62. [Google Scholar]
- Tun/Tap Interface Tutorial. Available online: https://backreference.org/2010/03/26/tuntap-interface-tutorial/index.html (accessed on 22 November 2023).
- Introduction to Linux Interfaces for Virtual Networking. Available online: https://developers.redhat.com/blog/2018/10/22/introduction-to-linux-interfaces-for-virtual-networking# (accessed on 24 November 2023).
- Introduction to Precision Time Protocol (PTP). Available online: https://networklessons.com/cisco/ccnp-encor-350-401/introduction-to-precision-time-protocol-ptp (accessed on 10 January 2024).
- Pyroute2 Netlink Library. Available online: https://docs.pyroute2.org/ (accessed on 30 November 2023).
- Python-Iptables. Available online: https://python-iptables.readthedocs.io/en/latest/intro.html (accessed on 30 November 2023).
- Testbed for GNU Radio Applications. Available online: https://github.com/mihaipstef/dtl-testbed (accessed on 12 December 2023).
- Scapy. Available online: https://scapy.net/ (accessed on 24 November 2023).
- MongoDB Documentation. Available online: https://www.mongodb.com/docs/ (accessed on 24 November 2023).
- Eyada, M.M.; Saber, W.; El Genigy, M.M.; Amer, F. Performance Evaluation of IoT Data Management Using MongoDB Versus MySQL Databases in Different Cloud Environments. IEEE Access 2020, 8, 110656–110668. [Google Scholar] [CrossRef]
- Grafana Documentation. Available online: https://grafana.com/docs/grafana/latest/ (accessed on 24 November 2023).
- Polymorphic Types (PMTs). Available online: https://wiki.gnuradio.org/index.php/Polymorphic_Types_(PMTs) (accessed on 27 November 2023).
- Protocol Buffers Documentation. Available online: https://protobuf.dev/overview/ (accessed on 27 November 2023).
- Introducing JSON. Available online: https://www.json.org/json-en.html (accessed on 27 November 2023).
- OutOfTreeModules. Available online: https://wiki.gnuradio.org/index.php/OutOfTreeModules (accessed on 28 November 2023).
- Adaptive OFDM Modem and Monitoring Library in GNU Radio. Available online: https://github.com/mihaipstef/gr-dtl (accessed on 12 December 2023).
- ZeroMQ. An Open-Source Universal Messaging Library. Available online: https://zeromq.org/ (accessed on 28 November 2023).
- What Is Pub/Sub? Available online: https://cloud.google.com/pubsub/docs/overview (accessed on 28 November 2023).
- Buffer Protocol. Available online: https://docs.python.org/3/c-api/buffer.html (accessed on 29 November 2023).
- STL Containers. Available online: https://pybind11.readthedocs.io/en/stable/advanced/cast/stl.html (accessed on 29 November 2023).
- Wilcoxon, F. Individual Comparisons by Ranking Methods. Biom. Bull. 1945, 1, 80–83. [Google Scholar] [CrossRef]
- Polgar, Z.A.; Stef, M. OFDM Transceiver with Adaptive Modulation Implemented in GNU Radio. In Proceedings of the 2023 46th International Conference on Telecommunications and Signal Processing (TSP), Prague, Czech Republic, 12–14 July 2023; pp. 37–42. [Google Scholar]
Fields | Mandatory | Filled by | Description |
---|---|---|---|
Timestamp | Yes | GNU radio block | Timestamp when the message was built. |
Probe queue size | No | Monitor probe | GNU radio message passing API queue size. |
Probe message counter | No | Monitor probe | Number of messages sent. |
Payload | Yes | GNU radio block | Monitoring data. |
Payload ID | Yes | GNU radio block | Indicates the payload type for the parser. |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Stef, M.P.; Polgar, Z.A. Software Platform for the Comprehensive Testing of Transmission Protocols Developed in GNU Radio. Information 2024, 15, 62. https://doi.org/10.3390/info15010062
Stef MP, Polgar ZA. Software Platform for the Comprehensive Testing of Transmission Protocols Developed in GNU Radio. Information. 2024; 15(1):62. https://doi.org/10.3390/info15010062
Chicago/Turabian StyleStef, Mihai Petru, and Zsolt Alfred Polgar. 2024. "Software Platform for the Comprehensive Testing of Transmission Protocols Developed in GNU Radio" Information 15, no. 1: 62. https://doi.org/10.3390/info15010062
APA StyleStef, M. P., & Polgar, Z. A. (2024). Software Platform for the Comprehensive Testing of Transmission Protocols Developed in GNU Radio. Information, 15(1), 62. https://doi.org/10.3390/info15010062