@@ -213,43 +213,29 @@ <h1>Overview of UnitCon</h1>
213213
214214< img src ="img/overview.svg " alt ="overview of UnitCon " />
215215
216- The following explains the gray boxes in the figure above.
217216< ul class ="overview-ul ">
218217 < li > < b > Initialization</ b >
219218 < br />
220219 For the given target program location, UnitCon first finds the error entry methods using the call graph derived by the static analyzer.
221220 Then UnitCon generates an initial set of partial test cases each of which calls an error entry methods.
222221 Such partial test cases are written in a domain-specific language that we designed for the synthesis.
223222 </ li >
224- < li > < b > Enumeration </ b >
223+ < li > < b > Efficient Program Synthesis via Pruning & Prioritization </ b >
225224 < br />
226225 Given a set of partial test cases, UnitCon enumerates new partial unit tests by expanding the placeholders.
227- </ li >
228- < li > < b > Pruning & Prioritization</ b >
229- < br />
230226 To improve the efficiency, we guide the search using static analysis results.
231- < ul class ="overview-ul ">
232- < li >
233- < b > Pruning</ b >
234- < br />
235- UnitCon effectively prunes the search space by comparing the semantics between partial test cases.
236- If two partial test cases are deemed to be semantically equivalent by the static analyzer, UnitCon discards the larger one.
237- </ li >
238- < li >
239- < b > Prioritization</ b >
240- < br />
241- UnitCon effectively prioritizes the partial test cases that are more likely to trigger the target error.
242- For a given target program location, the static analyzer estimates sufficient conditions for the target error.
243- During the synthesis, UnitCon checks if the partial test case can potentially satisfy the error conditions.
244- If so, UnitCon prioritizes the partial test case.
245- </ li >
246- </ ul >
227+ UnitCon effectively prunes the search space by comparing the semantics between partial test cases.
228+ If two partial test cases are deemed to be semantically equivalent by the static analyzer, UnitCon discards the larger one.
229+ Furthermore, UnitCon effectively prioritizes the partial test cases that are more likely to trigger the target error.
230+ For a given target program location, the static analyzer estimates sufficient conditions for the target error.
231+ During the synthesis, UnitCon checks if the partial test case can potentially satisfy the error conditions.
232+ If so, UnitCon prioritizes the partial test case.
247233 </ li >
248- < li > < b > Ground Checker </ b >
234+ < li > < b > Tester </ b >
249235 < br />
250236 It checks whether UnitCon has synthesized an executable test case.
251237 If it fails to synthesize one, the synthesis process is repeated.
252- Otherwise, the synthesized test case is executed using the < b > Tester</ b > to check whether the targeted exception is triggered.
238+ Otherwise, the synthesized test case is executed using the Tester to check whether the targeted exception is triggered.
253239 If the targeted exception is successfully reproduced, the test case is returned; otherwise, it is discarded.
254240 </ li >
255241</ ul >
0 commit comments