1. A method to generate a human-friendly test context in a test proxy for a function under test, the method comprising: generating an initial test context of the function under test; enhancing a current test context with a new context enhancement; adding a hint to the current test context; and performing extended symbolic execution of the function under test using the current test context to identify the new context enhancement, the extended symbolic execution including: determining whether a concrete variable included in a portion of the function under test is a dependent concrete variable based on whether an ability to execute a branch of the function under test depends on the concrete variable; further determining the branch is not executable; in response to determining that the concrete variable is the dependent concrete variable and to determining that the branch of the function under test is not executable, marking the concrete variable as a symbolic variable; determining whether the marked symbolic variable is accessible to the function under test; and in response to determining that the symbolic variable is accessible to the function under test, identifying the symbolic variable as the new context enhancement, wherein the current test context includes or is derived from the initial test context.
1. A method to generate a human-friendly test context in a test proxy for a function under test, the method comprising: generating an initial test context of the function under test; enhancing a current test context with a new context enhancement; adding a hint to the current test context; and performing extended symbolic execution of the function under test using the current test context to identify the new context enhancement, the extended symbolic execution including: determining whether a concrete variable included in a portion of the function under test is a dependent concrete variable based on whether an ability to execute a branch of the function under test depends on the concrete variable; further determining the branch is not executable; in response to determining that the concrete variable is the dependent concrete variable and to determining that the branch of the function under test is not executable, marking the concrete variable as a symbolic variable; determining whether the marked symbolic variable is accessible to the function under test; and in response to determining that the symbolic variable is accessible to the function under test, identifying the symbolic variable as the new context enhancement, wherein the current test context includes or is derived from the initial test context. 3. The method of claim 1 , wherein performing the extended symbolic execution of the function under test using the current test context comprises: symbolically executing the function under test until reaching the branch of the function under test; tracing a dependence of a concrete variable included in a portion of the function under test that is symbolically executed until reaching the branch; and solving constraints of the portion of the function under test that is symbolically executed until reaching the branch, wherein enhancing the current test context with the new context enhancement comprises making the concrete variable symbolic in the current test context, and wherein determining that the branch is not executable is based on the constraints and the current test context.