Test case prioritization (TCP) has been considerably utilized to arrange the implementation order of test cases, which contributes
to improve the efficiency and resource allocation of software regression testing. Traditional coverage-based TCP techniques, such
as statement-level, method/function-level and class-level, only leverages program code coverage to prioritize test cases without
considering the probable distribution of defects. However, software defect data tends to be imbalanced following Pareto principle.
Instinctively, the more vulnerable the code covered by the test case is, the higher the priority it is. Besides, statement-level coverage is a more fine-grained method than function-level coverage or class-level coverage, which can more accurately formulate
test strategies. Therefore, we present a test case prioritization approach based on statement software defect prediction to tame
the limitations of current coverage-based techniques in this paper. Statement metrics in the source code are extracted and data
pre-processing is implemented to train the defect predictor. And then the defect detection rate of test cases is calculated by combining the prioritization strategy and prediction results. Finally, the prioritization performance is evaluated in terms of average
percentage faults detected in four open source datasets. We comprehensively compare the performance of the proposed method
under different prioritization strategies and predictors. The experimental results show it is a promising technique to improve the
prevailing coverage-based TCP methods by incorporating statement-level defect-proneness. Moreover, it is also concluded that
the performance of the additional strategy is better than that of max and total, and the choice of the defect predictor affects the
efficiency of the strategy.
Prolog is one of the most important candidates to build expert systems and AI-related programs and has potential applications in embedded systems. However, Prolog is not suitable to develop many kinds of components, such as data acquisition and task scheduling, which are also crucial. To make the best use of the advantages and bypass the disadvantages, it is attractive to integrate Prolog with programs developed by other languages. In this paper, an IPC-based method is used to integrate backward chaining inference implemented by Prolog into applications or embedded systems. A Prolog design pattern is derived from the method for reuse, whose principle and definition are provided in detail. Additionally, the design pattern is applied to a target system, which is free software, to verify its feasibility. The detailed implementation of the application is given to clarify the design pattern. The design pattern can be further applied to wide range applications and embedded systems and the method described in this paper can also be adopted for other logic programming languages.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.