Submitted:
25 December 2023
Posted:
27 December 2023
You are already at the latest version
Abstract
Keywords:
1. Introduction
2. Related work
- Black Box Testing – it is based on the requirements specifications and there is no need to examine the code of the program. The tester knows only the set of inputs and predictable outputs.
- White Box Testing – it mainly focuses on internal logic and structure of the code of the program. The tester has full knowledge of the program structure and with this technique it is possible to test every branch and decision in the program.
- Grey Box Testing – it attempts, and generally succeeds, to combine the benefits of both black box and white box testing.
- Acceptance Testing: it is performed to determine the acceptability of the system or software.
- Ad-Hoc Testing: it is performed without planning or documentation and the goal is to find errors that were not detected by other types of testing.
- Alpha and Beta Testing: Alpha testing is the testing done at development site after the acceptance testing while Beta testing is carried out in real test environment.
- Automated Testing: automated tools are used to write and execute test cases.
- Integration Testing: in this case the testing of the individual units is grouped as one and the interface between these units is tested.
- Regression Testing: the test cases from the existing test suites are rerun to demonstrate that software changes have no unintended side-effects.
- Stress Testing: this testing determines the robustness of software; the functioning of the software modules being forced beyond the limits of normal operation.
- User Acceptance Testing: it is performed by the end users of the software. This testing happens in the final phase of the testing process.
- Security Testing: it checks the ability of the software to prevent unauthorized access to the resources and data.
2. Platform for Real Life Testing of Communication Protocols
2.1. Testbed Environment
- Make sure that the outgoing (egress) traffic through the environment tun/tap interfaces is not considered local and routed through loopback interface because the application is reading/writing from/to environment interfaces. To achieve this the default local routes that were created with the interfaces should be removed.
- Because the local routing table is also used on the incoming (ingress) traffic by the kernel to decide if a packet is addressed to the local host, it is necessary to create an alternative routing rule that is only used for ingress traffic. To achieve this distinct routing decisions on input and output path should be used and it is created a routing rule that match only for ingress traffic, packets with “input interface” attribute (i.e., iif) and perform 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 route the traffic destinated to the far end of the “tunnel” (e.g., output interface) through the near end interface. In this way sending a packet with the destination the far end of the tunnel (e.g., 3.3.3.3) 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 entries are set to eliminate ARP specific traffic through the application under test (see Figure 6).
2.2. Testbed Architecture
2.2.1. Testbed Net IO
2.2.2. Testbed Support Services
2.3. Monitor Mesagaging
- Message generators, that are responsible for building the messages. They are executed in the same thread as the GNU Radio blocks work.
- Monitor probes, that aggregate multiple generators in the GNU Radio application and pass the messages to the broker.
- Broker, that collects the messages from multiple probes and processes them further.
- Message passing, which is the GNU Radio messaging system between blocks. Because message passing API uses PMT (Polymorphic Types) [48], different types of PMT objects will be used as inter-block carrier messages.
- Transport channel, that passes the message from the GNU Radio application to the message collector (i.e., broker).
2.3.1. Monitoring Message Content
2.3.2. Monitoring Messaging Methods
- The first one serializes the proto message immediately after it builds the message in the GNU Radio block working thread and passes the serialized data to the probe as pmt::blob. This method will be referred to as PROTO-BLOB.
- The second one passes the proto message object as pmt::any (i.e., boost::any) and this method will be referred to as PROTO-ANY.
2.3.3. The PMT Based Messaging Method
2.3.4. The PROTO Based Messaging Method
2.3.6. The Transport of the Monitoring Messages
2.3.7. The Message Broker
3. Results and Discussions
3.1. Evaluation of the Monitoring Messaging Methods
3.1.1. The Message Size
3.1.2. The Message Build and Parsing Times
3.1.3. End-to-End Testing of the Messaging Methods
3.2. System Under Test
3.2.1. Evaluation of the System Under Test
5. Conclusions
Author Contributions
Funding
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, 1378–042030. [Google Scholar] [CrossRef]
- Bansal, A. A Comparative Study of Software Testing Techniques. Int. J. of Computer Science and Mobile Computing 2014, 3, 579–584. [Google Scholar]
- Khan, M.E.; Khan, F. Importance of Software Testing in Software Development Life Cycle. Int. J. of Computer Science 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. of Adv. Computer Science and Applic. 2014, 5, 194–202. [Google Scholar] [CrossRef]
- Kannan, S.; Pushparaj, T. A Study on Variations of Bottlenecks in Software Testing. Int. J. of Computer Sciences and Engineering 2014, 2, 8–14. [Google Scholar]
- Chauhan, R.K.; Singh, I. Latest Research and Development on Software Testing Techniques and Tools. Int. J. of Current Eng. and Techn. 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] [CrossRef]
- 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] [CrossRef]
- Goyat, J.; Dhingra, S.; Goyal, V.; Malik, V. Software Testing Fundamentals: A Study. Int. J. of Latest Trends in Eng. And Techn. 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. on Software 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. and Soft. Tech. 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] [CrossRef]
- 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, Ohio, USA, 24-28 June 2017; 18113. [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] [CrossRef]
- GNURadio The Free & Open Software Radio Ecosystem. Available online: https://www.gnuradio.org (accessed on 20 Nov. 2023).
- Kaur, M.; Singh, R. A Review of Software Testing Techniques. Int. J. of Electronic and Electrical 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. of Inf. Systems Applied Research 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 Nov. 2014; pp. 654–665. [Google Scholar] [CrossRef]
- 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] [CrossRef]
- 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, Punjab, India, 8-9 Aug. 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 Computing Surveys 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 Reports 2020, 6, 580-587. [CrossRef]
- Garousi, V.; Felderer, M.; Karapicak, C.M.; Yilmaz, U. Testing Embedded Software: A Survey of the Literature. Information and Software Technology 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. On Soft. Eng. 1987, SE-13, 518-531. [CrossRef]
- Wang, B.; Hutchison, D. Protocol Testing Techniques. Computer Communications 1987, 10, 79–87. [Google Scholar] [CrossRef]
- ssouli, R.; Saleh, K.; Aboulhamid, E.; Bediaga, A.; En-Nouaary, A; Bourhfir, C. Test Development for Communication Protocols: Towards Automation. Computer Networks 1999, 31, 1835-1872. [CrossRef]
- Lai, R. A Survey of Communication Protocol Testing. J. of Syst. and Soft. 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. and Soft. Tech. 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. Advances in Computers 2017, 107, 95–155. [Google Scholar] [CrossRef]
- 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 Dec. 2006; pp. 155–162. [Google Scholar] [CrossRef]
- 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 Conference Series: Earth and Environmental Science 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. Computer Networks 2020, 181, 107436. [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 Nov. 2005; pp. 57–62. [Google Scholar] [CrossRef]
- Tun/Tap interface tutorial. Available online: https://backreference.org/2010/03/26/tuntap-interface-tutorial/index.html (accessed on 22 Nov. 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 Nov. 2023).
- Pyroute2 netlink library. Available online: https://docs.pyroute2.org/ (accessed on 30 Nov. 2023).
- Python-iptables. Available online: https://python-iptables.readthedocs.io/en/latest/intro.html (accessed on 30 Nov. 2023).
- Testbed for GNU Radio applications. Available online: https://github.com/mihaipstef/dtl-testbed (accessed on 12 Dec. 2023).
- Scapy. Available online: https://scapy.net/ (accessed on 24 Nov. 2023).
- MongoDB Documentation. Available online: https://www.mongodb.com/docs/ (accessed on 24 Nov. 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 Nov. 2023).
- Polymorphic Types (PMTs). Available online: https://wiki.gnuradio.org/index.php/Polymorphic_Types_ (accessed on 27 Nov. 2023).
- Protocol Buffers Documentation. Available online: https://protobuf.dev/overview/ (accessed on 27 Nov. 2023).
- Introducing JSON. Available online: https://www.json.org/json-en.html (accessed on 27 Nov. 2023).
- OutOfTreeModules. Available online: https://wiki.gnuradio.org/index.php/OutOfTreeModules (accessed on 28 Nov. 2023).
- Adaptive OFDM modem and monitoring library in GNU Radio. Available online: https://github.com/mihaipstef/gr-dtl (accessed on 12 Dec. 2023).
- ZeroMQ. An open-source universal messaging library. Available online: https://zeromq.org/ (accessed on 28 Nov. 2023).
- What is Pub/Sub? Available online:. Available online: https://cloud.google.com/pubsub/docs/overview (accessed on 28 Nov. 2023).
- Buffer Protocol. Available online: https://docs.python.org/3/c-api/buffer.html (accessed on 29 Nov. 2023).
- STL containers. Available online: https://pybind11.readthedocs.io/en/stable/advanced/cast/stl.html (accessed on 29 Nov. 2023).
- 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] [CrossRef]




















| 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. |
© 2023 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 (http://creativecommons.org/licenses/by/4.0/).