Abstract
Testing-based formal verification has been proposed to automatically verify whether a software program satisfies the requirements written as a formal specification by exploring program paths. There are two tools that can be used to verify path correctness: Hoare logic or symbolic execution. In this document, we will discuss their merits and demerits, as well as the future research directions.