In the above process, concolic testing partly tackled the path explosion problem by using abstraction and refinement [17], [16].
concolic testing cannot automatically figure out what code blocks should be abstracted and which sideeffects of those blocks should be treated as inputs.