Internet-of-Things (IoT) has attained a major share in embedded software development. The new era of specialized intelligent systems requires adaptation of customized software engineering approaches. Currently, software engineering has merged the development phases with the technologies provided by industrial automation. The improvements are still required in testing phase for the software developed to IoT solutions. This research aims to assist in developing the testing strategies for IoT applications, therein ontology has been adopted as a knowledge representation technique to different software engineering processes. The proposed ontological model renders 101 methodology by using Protégé. After completion, the ontology was evaluated in three-dimensional view by the domain experts of software testing, IoT and ontology engineering. Satisfied results of the research are showed in interest of the specialists regarding proposed ontology development and suggestions for improvements. The Proposed reasoning-based ontological model for development of testing strategies in IoT application contributes to increase the general understanding of tests in addition to assisting for the development of testing strategies for different IoT devices.
Internet of Things (IoT) is a concept that allows billions of tiny machines, such as sensors, to be connected to the internet. Software testing is the crucial process of software quality assurance because it represents the final revision of specification, design patterns and code generation [
To ensure IoT application quality, this research proposed the ontological modelling technique for test strategies development and consequent execution. The proposed testing methodology has expressed the potentials for domain specific attributes incorporation in the testing process planning. We concluded our study with the proven Potentials of Ontology Driven Information System Development Lifecycle being utilized for IoT Application Testing. Hence, the work adds to build the overall comprehension of Tests in IoT, as well as aiding the Development of Testing Strategies for various IoT gadgets, applications, devices.
The rest of the paper is structured as follows. Section 2 describes summary of the literature review. Section 3, elaborates the problem statement. Section 4 explains ontology engineering. Section 5 defines ontology development. The validation is done in Section 6 while data analysis and discussion are stated in Section 7. Section 8 is about the conclusion of our research and provides horizons towards the future.
Ontology development, specifically for the domain of software testing in IoT, still has research gap. However, the description of some ontological based IoT approaches is discussed in this section.
To accomplish consistent software development, researchers like Meng et al. [ Usability Testing: It is important to check the usability of system in IoT testing because the perception varies from one user to another. Reliability and Scalability Testing: IoT testing can provide reliability and scalability in an environment that involves simulating sensors using virtualization tools and technologies. Compatibility Testing: The IoT compatibility testing may provide configurations that can be connected with various devices. Security Testing: It is important to control the users’ access in IoT environment, by defining the user authentication and data privacy control.
Another study by Bernardino et al. proposed an ontology in performance testing domain. The ontology was represented in the OWL (Web Ontology Language), developed in the editor Protégé and following the methodology of Noy and McGuinness, being directed to assist testers with test planning [
The IoT applications of the consulted jobs use convenient ways for different products. The problems are still existing in the development of testing strategies to carry out software testing in IoT. The study carried out in this work did not identify standards, models or rules with regard to tests on IoT applications. Thus, the objective of this work is to assist, through an ontology, in the development of test strategies in IoT for various connecting devices. In addition, the tests can be applied in a more standardized way by defining phases, strategies and context.
Ontologies in software testing process deliver the common shared knowledge for understanding of concerned entities and their relationships with a rather simple and easy structure, maintenance and updates [
These standardized questions also incorporate to enrich our research.
What is the domain of ontology? What is the purpose of building this ontology? What kind of questions, ontology should answer? Who will use and maintain the ontology?
Questions | Answers |
---|---|
What is the domain of ontology? | The ontology covers software testing applied in IoT. |
What is the purpose of building this ontology? | Provide a clear and more holistic view of testing processes in IoT applications. |
What kind of questions should the ontology's information answers? | Ontology answers when and how to test the IoT. |
Who will use and maintain ontology? | The ontology's users include software testers and researchers. However, it is maintained by the author of this research. |
The most important step in ontology construction is terms enumeration, the concepts of terms can be defined in primitive classes and defined classes. Classes serve to describe basic concepts of a domain and represent the broadest concepts in a hierarchy. Next step is defining properties that present the relationships between concepts as attributes. A property must have domain and scope, so properties connect individuals from a domain to individuals of a scope [
For the development of ontology, research was carried out in order to seek strategies and techniques for testing in IoT applications. The construction of the proposed ontology is carried out based on seven stages of methodology 101, justified and conceptualized in the previous topics. Ontology is represented in English to increase its scope and follow the pattern adopted in reuse ontologies. For the development, the Protégé tool was used and it is an open-source free software with tools to build models and applications based on the areas of knowledge using ontologies.
Firstly, OntoTest ontology that explores the different aspects involved in software testing activity, defines a common vocabulary and assists in establishing reference architectures [
The terms of the ontologies start their construction, remembering that the terms presented below and defined from the reuse ontologies. In the following
In
Concept | Definition |
---|---|
TestTester | Represents a tester, who is responsible for performing the test activities (TestActivity). |
TestContext | Represents the test step that will be applied to the product. |
TestMethod | It represents methods applicable in testing activities, which may vary as to the techniques and approaches used. |
TestActivity | Represents a test activity. |
TestGoal | It represents a reason or objective that justifies the execution of a test step (TestContext). |
TestArtifact | It represents a test artifact or deliverable, that is, a work product generated from the execution of a test activity (TestActivity). |
TestSystem | It represents the target of a software test, that is, the system under test. |
For each created term, their respective classes were defined according to the IoT testing techniques and strategies. In this
Being an instance, the realization of a class, were then defined in each class of the proposed ontology. For example, the TestActivity class aims to represent a test activity, with the result that test cases (TestCases), test plans (TestPlan), test planning (TestPlanning) and test reports (TestReport) must be generated to represent the instances.
In the
Property | Definitions |
---|---|
hasLincense | Maps the tool licenses used in the tests. |
hasTestCase | Represents the test cases. |
hasUseCase | Represents the use cases to be tested. |
hasTestStep | It represents the test step being performed in each application. |
hasResponsible | It contains the information of those responsible for the execution of each test activity. |
hasArtifact | It is used to specify which deliverables each test activity can generate. |
hasActivity | Contains information about the test activities to be performed in the IoT application. |
hasGoal | It contains information about the objectives that a software test should have. |
hasSystem | Defines the operating system where the application under test is hosted. |
hasTool | Indicates the test tools chosen for each type of software test. |
hasApplication | Contains information on which IoT application is being tested. |
hasMethod | Defines the methods (techniques and approaches) used to carry out the testing activities. |
hasDataIntegrity | It represents data integrity, that is, maintenance, guarantee of data accuracy and consistency. |
hasPerformance | Maps the number of connected devices, the volume of data propagation between devices. |
hasCompatibility | Represents software and hardware that is compatible with the devices that are connected. |
hasRisks | Determines what risks can occur at each test step. |
hasResources | Ensures that there are resources to proceed with the test. |
hasEnvironment | Determines the environment in which the test will be performed. |
hasDocumentation | Represents the documentation that the testing process must contain. |
hasTestPlan | It contains the information of the test plan created. |
It is necessary to define their respective restrictions whereas the object properties describe the relationships between individuals. This is done through a class of individuals created by the relationships in which they are supposed to participate.
The restrictions covered here are of the “Quantifier Restriction” type, with two available quantifiers being: i) the existential quantifier (some) (∃ The quantifier, which can be an “some” existential quantifier (∃) or a universal “only” (∀). A property, on which the constraint acts. A complement to the constraint (filler), which correspond to name class whose individuals meet the constraint.
We have shown the constraints between classes in
The TestArtifact class; then there is hasArtifact property has some (TestArtifact) The informed constraint is specifying that the test activity (TestActivity) has at least one test artifact or deliverable TestArtifact, through the teamArtifact includes hasArtifact property.
Another example, the constraint property on the TestActivity class: hasGoal; the type of restriction: “only” (universal restriction); the mandatory complement of the restriction (Filler).
The TestGoal class; Then there is: hasGoal only (TestGoal). The informed constraint is specifying that a test activity (TestActivity) has only one objective TestGoal through the object property hasGoal.
Protégé provides third-party Reasoner like HermiT and FaCT++ and others to validate the ontologies [
The technique for data analysis of this work was performed to determine the satisfaction of ontology, whether it meets the necessary requirements referring to software testing, IoT and ontology engineering. The proposed ontology was evaluated by specialists from the domain. For data collection, the experts were sent a questionnaire containing 15 questions to cover the aspects of the ontological model with regard to the satisfaction of ontology. These are semi-open questions with alternatives “Satisfies”, “Does not satisfy” and “other Option”, when choosing the last option, the professional will have the opportunity to express themselves reporting questions or suggestions. Along with the questionnaire, the ontology documentation is sent, so that it can be evaluated. 15 questions were answered by experts, 8 of them obtained 87% satisfaction. In
Subject | Satisfies | "Other option" |
---|---|---|
The types of test and test activities are consistent with what the professional performs. | 100% | N/A |
The IoT testing techniques are consistent with the experience of the specialist. | 83.3% | Other methods that can be applied in IoT projects that are not included in ontology were mentioned |
Ontology represents the correct approach to Software Testing. | 83.3% | The specialist is not sure, as he needs a practical example |
Ontology represents the correct approach to the Internet of Things. | 100% | N/A |
The way in which IoT tests are applied, are in accordance with the knowledge of experts in the fields. | 83.3% | Again emphasized the need to apply test ontology in IoT equipment and products. |
Ontology can be useful for testing IoT applications. | 100% | N/A |
Ontology may be useful for future work. | 83.3% | A work in which ontology is applied in practical examples. |
Understanding the structure of ontology. | 83.3% | Within Usability Techniques, the Double Equipment technique could be better described, the text is confusing. |
The structure of ontology is in accordance with the Ontology Engineering. | 83.3% | Professional does not have the necessary knowledge to answer this question. |
The instances, constraints, and properties of ontology are in accordance with the expert's knowledge of the domains. | 100% | N/A |
The understanding of the proposed ontology is clear. | 100% | N/A |
Open question for general positions on ontology. | N/A | Technical suggestion to verify the extent of the connectivity surface; Property suggestion that informs you if the system is upgradeable; Cost concern in test teams; Praise for the ontology proposal; Practical application interests of ontology in an IoT software. |
According to the percentage of ontology satisfaction and the comments of the experts mentioned in
IoT is a specialized domain of computer applications including embedded systems, communication, cloud, fog, edge services and data stores. These specialized information system architecture, process flow and functionality are engineered and tested in their own way. The study here identified the research gap related to domain specific software engineering and more precisely the testing phase for the IoT applications.
To ensure IoT application quality, this research proposed the ontological modelling technique for test strategies development and consequent execution. The proposed testing methodology has expressed the potentials for domain specific attributes incorporation in the testing process planning. The testing model's consistency is verified through the reasoning software that can highlight existing anomalies in test plans. The challenging part of the research is formal representation of testing processes and the constraints among them. The identified prerequisite, dependencies, overlapping tasks and synchronous behavior of complete test plan are the examples of the constraints in the studied testing models. Furthermore, the proposed model is reviewed through the domain experts with a high satisfaction rate (87%) observed via conducted survey. The study concluded with the proven potentials of ontology driven information system development lifecycle being used for IoT application testing. Thus, the work contributes to increase the general understanding of tests in IoT, in addition to assisting in the development of testing strategies for different IoT devices.
The presented testing model, can be generalized for any domain specific application testing through domain concept definition and respective knowledgebase linking. The future work in this research directions specific to IoT includes, the variety of tests plan development for individual unit/component and integrated testing with the required span of knowledge sharing in the global software engineering perspectives. In the case of possible studies and future studies in which the research treated in this article can advance we can mention: Measure the cost with testers and the impact of this cost with later support of a project in which the ontology proposal is applied and to one that was not used ontology; Practical application of ontology methods to verify how robust it is to test on IoT equipment and products; Improvement ontology in terms of techniques, strategies and processes.
The authors extend their appreciation to King Saud University for funding this work through Researchers Supporting Project number (RSP-2021/387), King Saud University, Riyadh, Saudi Arabia.