Software Testing
-
Symbolic ExecutionSoftware Testing 2022. 9. 26. 23:07
보통 프로그램을 실행한다고 하면, 구체적인 입력값이 주어지고 입력값에 대해 특정한 경로가 실행되는 것을 말한다. 1️⃣ Symbolic Execution 구체적인 입력값이 아닌 symbol, 기호를 사용하여 프로그램을 실행하는 기법이다. void foo(int x) { int i = 10; if (x > 0) i = x; else i = -x; } 예로 들어 이와 같은 함수가 있다고 가정해보자. 일반적인 프로그램은 i의 값이 10으로 지정되어있고, foo에 x가 정의되어 있으니까 i의 값을 x에 대입해 조건문에 대해 값을 도출한다. 여기서 symbolic execution 같은 경우는 x > 0 AND i = x x < 0 AND i = -x 이렇게 두 결과를 준다. 이 말은 즉슨, 구체적인 값을 따로 ..