“…On the formal verification side, there have been some pen-and-paper proofs, such as that of the Astree analyzer [12], some automatic and interactive proofs, such as [16,44], and some verification efforts, which include [2,26,31]. Testing efforts for program analyzers include e.g., static analyzers [13,28,49,52], symbolic execution engines [27], refactoring engines [14], compilers [29,30,32,43,47,50], SMT solvers [3], among others. Most of these testing approaches use programs in the target language as test cases and and apply testing techniques like fuzzing (e.g., [3,27,50]) or differential testing [35], (e.g., [3,[27][28][29]50]).…”