{"title":"A test coverage notion for logic programming","authors":"F. Belli, Oliver Jack","doi":"10.1109/ISSRE.1995.497651","DOIUrl":null,"url":null,"abstract":"Reliability determination for software is closely related to software testing. Testing delivers important data for software reliability models. Two important tasks of software testing are test case generation and determination of test coverage. Because of its declarative paradigm, all the well-known approaches to the above mentioned tasks are not applicable to logic programming. Implementation based testing is an approach to tackle the test problem for logic programming. We focus on test coverage aspects for logic programming. Analog to the coverage notion for conventional programming, e.g., path coverage on the control flow graph, we define a coverage measure on an abstract model of the logic program to be tested. Our abstract model is the set of goal-induced instances of program clauses. This is motivated by the computational model of resolution calculus for first-order predicate logic. Anti-unification is utilized to define the coverage measure via least upper bounds of this set. We give an algorithm for test cover determination which is prepared for coverage oriented test input generation, e.g., by declarative program instrumentation or non goal-oriented execution of logic programs using a fair interpreter. We describe syntactic and semantic aspects of our testing approach with respect to the properties of logic programming.","PeriodicalId":408394,"journal":{"name":"Proceedings of Sixth International Symposium on Software Reliability Engineering. ISSRE'95","volume":"87 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1995-10-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"16","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of Sixth International Symposium on Software Reliability Engineering. ISSRE'95","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ISSRE.1995.497651","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 16
Abstract
Reliability determination for software is closely related to software testing. Testing delivers important data for software reliability models. Two important tasks of software testing are test case generation and determination of test coverage. Because of its declarative paradigm, all the well-known approaches to the above mentioned tasks are not applicable to logic programming. Implementation based testing is an approach to tackle the test problem for logic programming. We focus on test coverage aspects for logic programming. Analog to the coverage notion for conventional programming, e.g., path coverage on the control flow graph, we define a coverage measure on an abstract model of the logic program to be tested. Our abstract model is the set of goal-induced instances of program clauses. This is motivated by the computational model of resolution calculus for first-order predicate logic. Anti-unification is utilized to define the coverage measure via least upper bounds of this set. We give an algorithm for test cover determination which is prepared for coverage oriented test input generation, e.g., by declarative program instrumentation or non goal-oriented execution of logic programs using a fair interpreter. We describe syntactic and semantic aspects of our testing approach with respect to the properties of logic programming.