摘要
Software systems are present all around us and playing their vital roles in our daily life.The correct functioning of these systems is of prime concern.In addition to classical testing techniques,formal techniques like model checking are used to reinforce the quality and reliability of software systems.However,obtaining of behavior model,which is essential for model-based techniques,of unknown software systems is a challenging task.To mitigate this problem,an emerging black-box analysis technique,called Model Learning,can be applied.It complements existing model-based testing and verification approaches by providing behavior models of blackbox systems fully automatically.This paper surveys the model learning technique,which recently has attracted much attention from researchers,especially from the domains of testing and verification.First,we review the background and foundations of model learning,which form the basis of subsequent sections.Second,we present some well-known model learning tools and provide their merits and shortcomings in the form of a comparison table.Third,we describe the successful applications of model learning in multidisciplinary fields,current challenges along with possible future works,and concluding remarks.
基金
the National Natural Science Foundation of China(NSFC)(Grant Nos.61872016,61932007 and 61972013).