Abstract
۱٫ Introduction
۲٫ Background
۳٫ Research method
۴٫ Overview of the studies
۵٫ Theoretical foundations
۶٫ Concrete approaches
۷٫ Semantic web technologies in the software testing process
۸٫ Test ontologies
۹٫ Application domains
۱۰٫ Impact of semantic web technologies on software testing
۱۱٫ Quality assessment results
۱۲٫ Discussion and future directions
۱۳٫ Threats to validity
۱۴٫ Conclusion
Appendix A. Data extraction form
Appendix B. Publication sources
Appendix C. Summarizing the studies
References
Abstract
Software testing, as a major verification and validation activity which revolves around quality tests, is a knowledge-intensive activity. Hence, it is reasonable to expect that it can be improved by effective application of semantic web technologies, e.g., ontologies, which have been frequently used in knowledge engineering activities. The objective of this work is to investigate and provide a better understanding of how semantic web enabled techniques, i.e., the techniques that are based on the effective application of the semantic web technologies, have been used to support software testing activities. For this purpose, a Systematic Literature Review based on a predefined procedure is conducted. A total of 52 primary studies were identified as relevant, which have undergone a thorough meta-analysis with regards to our posed research questions. This study indicates the benefits of semantic web enabled software testing in both industry and academia. It also identifies main software testing activities that can benefit from the semantic web enabled techniques. Furthermore, contributions of such techniques to the testing process are thoroughly examined. Finally, potentials and difficulties of applying these techniques to software testing, along with the promising research directions are discussed.
Introduction
Software development process consists of many complex and error-prone activities. One of the most important of these activities is Quality Assurance (QA). In order to ensure the quality of software products, performing Verification & Validation (V&V) activities is essential throughout the software development and maintenance process. The purpose of V&V activities is to ensure that software is built in conformance with its specification and that it satisfies its user’s needs [1]. Software testing is a major V&V activity that consists of dynamic V&V of the behavior of software on a finite set of test cases, against the expected behavior [1]. Advances in technology and the emergence of increasingly complex and critical applications require test strategies, in order to achieve high quality and reliable software products. A wide range of testing techniques are proposed for software products. However, software testing is usually performed under tight resource and time constraints, and hence, researchers are continuously seeking to develop new approaches to address this issue. Knowledge management principles and techniques have been applied in different phases of the software development process [2, 3, 4]. As a sub-area of software engineering, software testing is also a knowledge-intensive process, and it is essential to provide automation support for capturing, sharing, analyzing, retrieving, and representing testing knowledge [5].