Skip to content

Commit af4ed28

Browse files
committed
update overview
1 parent 9449d27 commit af4ed28

File tree

2 files changed

+18
-46
lines changed

2 files changed

+18
-46
lines changed

docs/index.html

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -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>

themes/PaperMod/layouts/partials/overview.html

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,43 +10,29 @@ <h1>Overview of UnitCon</h1>
1010

1111
<img src="img/overview.svg" alt="overview of UnitCon" />
1212

13-
The following explains the gray boxes in the figure above.
1413
<ul class="overview-ul">
1514
<li><b>Initialization</b>
1615
<br/>
1716
For the given target program location, UnitCon first finds the error entry methods using the call graph derived by the static analyzer.
1817
Then UnitCon generates an initial set of partial test cases each of which calls an error entry methods.
1918
Such partial test cases are written in a domain-specific language that we designed for the synthesis.
2019
</li>
21-
<li><b>Enumeration</b>
20+
<li><b>Efficient Program Synthesis via Pruning & Prioritization</b>
2221
<br/>
2322
Given a set of partial test cases, UnitCon enumerates new partial unit tests by expanding the placeholders.
24-
</li>
25-
<li><b>Pruning & Prioritization</b>
26-
<br/>
2723
To improve the efficiency, we guide the search using static analysis results.
28-
<ul class="overview-ul">
29-
<li>
30-
<b>Pruning</b>
31-
<br/>
32-
UnitCon effectively prunes the search space by comparing the semantics between partial test cases.
33-
If two partial test cases are deemed to be semantically equivalent by the static analyzer, UnitCon discards the larger one.
34-
</li>
35-
<li>
36-
<b>Prioritization</b>
37-
<br/>
38-
UnitCon effectively prioritizes the partial test cases that are more likely to trigger the target error.
39-
For a given target program location, the static analyzer estimates sufficient conditions for the target error.
40-
During the synthesis, UnitCon checks if the partial test case can potentially satisfy the error conditions.
41-
If so, UnitCon prioritizes the partial test case.
42-
</li>
43-
</ul>
24+
UnitCon effectively prunes the search space by comparing the semantics between partial test cases.
25+
If two partial test cases are deemed to be semantically equivalent by the static analyzer, UnitCon discards the larger one.
26+
Furthermore, UnitCon effectively prioritizes the partial test cases that are more likely to trigger the target error.
27+
For a given target program location, the static analyzer estimates sufficient conditions for the target error.
28+
During the synthesis, UnitCon checks if the partial test case can potentially satisfy the error conditions.
29+
If so, UnitCon prioritizes the partial test case.
4430
</li>
45-
<li><b>Ground Checker</b>
31+
<li><b>Tester</b>
4632
<br/>
4733
It checks whether UnitCon has synthesized an executable test case.
4834
If it fails to synthesize one, the synthesis process is repeated.
49-
Otherwise, the synthesized test case is executed using the <b>Tester</b> to check whether the targeted exception is triggered.
35+
Otherwise, the synthesized test case is executed using the Tester to check whether the targeted exception is triggered.
5036
If the targeted exception is successfully reproduced, the test case is returned; otherwise, it is discarded.
5137
</li>
5238
</ul>

0 commit comments

Comments
 (0)