-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdiversification-toolbox.html
260 lines (146 loc) · 22 KB
/
diversification-toolbox.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Diversification Toolbox - Mon site</title>
<meta property="og:site_name" content="Mon site">
<meta property="og:title" content="Diversification Toolbox">
<meta property="og:description" content="Sosie Generator is a tool to generate synthetic program variations at the source code level. These variations, called sosies (from the French “looks alike”), are built to perform different...">
<meta property="og:image" content="http://testdiverse.weebly.com/uploads/4/5/9/2/45929943/5518245_orig.png">
<meta property="og:image" content="http://testdiverse.weebly.com/uploads/4/5/9/2/45929943/9631477.png">
<meta property="og:image" content="http://testdiverse.weebly.com/uploads/4/5/9/2/45929943/_9631477.png">
<meta property="og:image" content="http://testdiverse.weebly.com/uploads/4/5/9/2/45929943/4261754_orig.png">
<meta property="og:image" content="http://testdiverse.weebly.com/uploads/4/5/9/2/45929943/2763078_orig.png">
<meta property="og:image" content="http://testdiverse.weebly.com/uploads/4/5/9/2/45929943/__9631477.png">
<meta property="og:url" content="http://testdiverse.weebly.com/diversification-toolbox.html">
<link rel="stylesheet" type="text/css" href="index.css" media="all">
</head>
<body class="short-header wsite-theme-light wsite-page-diversification-toolbox">
<div id="wrapper">
<div class="bg-wrapper">
<div id="header">
<div id="sitename"><span class="wsite-logo"><span class="wsite-title-placeholder"> </span><span style="display: none;">Mon site</span></span></div>
</div>
<div id="navigation"><ul class="wsite-menu-default"><li class="wsite-nav-0" style="position: relative;" id="pg684477500933798836"><a style="position: relative;" href="index.html" data-membership-required="0">Diversify</a></li><li class="wsite-nav-1" style="position: relative;" id="active"><a style="position: relative;" href="http://testdiverse.weebly.com/diversification-toolbox.html">Diversification Toolbox</a></li><li class="wsite-nav-2" style="position: relative;" id="pg285996659219943654"><a style="position: relative;" href="contributors_001.html" data-membership-required="0">Contributors</a></li></ul></div>
<div id="content-wrapper">
<div id="content"><div id="wsite-content" class="wsite-elements wsite-not-footer">
<h2 class="wsite-content-title" style="text-align: center;"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><font color="#24678d">A Toolbox to explore diversity in Java applications </font><br></span></span></h2>
<div><div class="wsite-multicol"><div class="wsite-multicol-table-wrap" style="margin: 0px -15px;">
<table class="wsite-multicol-table">
<tbody class="wsite-multicol-tbody">
<tr class="wsite-multicol-tr">
<td class="wsite-multicol-col" style="width: 50%; padding: 0px 15px;">
<div><div class="wsite-image wsite-image-border-none " style="padding-top: 10px; padding-bottom: 10px; margin-left: 0px; margin-right: 0px; text-align: left;">
<a>
<img src="5518245_orig.png" alt="Photo" style="width: auto; max-width: 100%;">
</a>
<div style="display: block; font-size: 90%;">Visualization of transformations made over a package in Apache's Commons Collections.
Each color line represents a line of code. The gray lines are unstransformed lines. Color lines represents a line for wich a variant was found. Different colors represents different transformation techniques</div>
</div></div>
</td> <td class="wsite-multicol-col" style="width: 50%; padding: 0px 15px;">
<div><div class="wsite-multicol"><div class="wsite-multicol-table-wrap" style="margin: 0px -15px;">
<table class="wsite-multicol-table">
<tbody class="wsite-multicol-tbody">
<tr class="wsite-multicol-tr">
<td class="wsite-multicol-col" style="width: 73.9394%; padding: 0px 15px;">
<h2 class="wsite-content-title" style="text-align: left;"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><font size="4"><font size="6">Sosie's Generator</font><br><font color="#515151">Synthetic variability engine</font><br></font></span></span></span></span></span></span></span></h2>
</td> <td class="wsite-multicol-col" style="width: 26.0606%; padding: 0px 15px;">
<div><div class="wsite-image wsite-image-border-none " style="padding-top: 10px; padding-bottom: 10px; margin-left: 0px; margin-right: 0px; text-align: center;">
<a href="https://github.com/DIVERSIFY-project/sosies-generator">
<img src="octocat.png" alt="Photo" style="width: auto; max-width: 100%;">
</a>
<div style="display: block; font-size: 90%;"></div>
</div></div>
</td> </tr>
</tbody>
</table>
</div></div></div>
<div class="paragraph" style="text-align: left;"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"></span><font color="#3f3f3f" size="2"><span style=""><strong>Sosie Generator</strong> is a tool to generate synthetic program variations at the source code level. These variations, called <em>sosies </em>(from the French “looks alike”), are built to perform different computations than the original program, yet exhibit the same expected functionality.<br><br>The generator is able to create hundreds of thousands of <em>sosies</em>, providing a pool of synthetic variations. This reservoir of modifications can be used to switch between different computations to perform the same task. The technique has numerous applications, like allowing systems to monitor themselves by crosschecking results from same functionality </span></font><span style=""></span><font color="#3f3f3f"><span style=""><em><span style=""><font size="2">sosies</font></span></em><font size="2">, reduce the predictability of a program execution or even create redundant computation for dependable systems.<br><br>At this point, the <strong>Sosie Generator</strong> has been tested using nine widely used projects that provide high quality test suites. As an example, we can mention Junit, Apache Common-Lang and Easymock. The future development of the project will consist in enhance the quality and quantity of the variants created, incrementing the computational divergence and the density of the sosies population.</font></span></font></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
</td> </tr>
</tbody>
</table>
</div></div></div>
<div><div style="height: 20px; overflow: hidden; width: 100%;"></div>
<hr class="styled-hr" style="width: 100%;">
<div style="height: 20px; overflow: hidden; width: 100%;"></div></div>
<div><div class="wsite-multicol"><div class="wsite-multicol-table-wrap" style="margin: 0px -15px;">
<table class="wsite-multicol-table">
<tbody class="wsite-multicol-tbody">
<tr class="wsite-multicol-tr">
<td class="wsite-multicol-col" style="width: 50%; padding: 0px 15px;">
<div><div class="wsite-multicol"><div class="wsite-multicol-table-wrap" style="margin: 0px -15px;">
<table class="wsite-multicol-table">
<tbody class="wsite-multicol-tbody">
<tr class="wsite-multicol-tr">
<td class="wsite-multicol-col" style="width: 73.7903%; padding: 0px 15px;">
<h2 class="wsite-content-title" style="text-align: left;"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><font size="6">Syringe</font><br><font color="#515151" size="4">Java source code instrumentation</font><br></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></h2>
</td> <td class="wsite-multicol-col" style="width: 26.2097%; padding: 0px 15px;">
<div><div class="wsite-image wsite-image-border-none " style="padding-top: 10px; padding-bottom: 10px; margin-left: 0px; margin-right: 0px; text-align: left;">
<a href="https://github.com/DIVERSIFY-project/syringe">
<img src="octocat.png" alt="Photo" style="width: auto; max-width: 100%;">
</a>
<div style="display: block; font-size: 90%;"></div>
</div></div>
</td> </tr>
</tbody>
</table>
</div></div></div>
<div class="paragraph" style="text-align: justify;"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><font color="#3f3f3f" size="2"><strong>Syringe</strong> </font></span><span style=""><font color="#3f3f3f" size="2">is a lightweight library to instrument Java source code. Built on top of the <strong>Spoon </strong>open compiler, <strong>Syringe </strong>allows the user to detect most elements of the Java language using the <strong>Spoon </strong>meta-model. Custom filtering is allowed to separate the interesting elements of those who are not. <br><br></font></span></span></span></span><span style=""><span style=""><span style=""><span style=""><font color="#3f3f3f" size="2">Once interesting elements are detected, a string defined by the user is injected. Using strings to inject code makes the definition of the injection much more simpler. Obviously, if the injection is executable code, the injected string may refer to a valid method call. In that case, <strong>Syringe </strong>automatically copy the classes containing the injected methods into the target project’s structure.<br><br>Finally, <strong>Syringe </strong>can be extended with custom detectors and injectors classes, enabling the user with more fine-grained control. At <strong>DiverSE </strong>we have used <strong>Syringe </strong>to obtain valuable informations about all projects being sosieficated. </font><br></span></span><span style=""><span style=""></span></span><span style=""><span style=""></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
</td> <td class="wsite-multicol-col" style="width: 50%; padding: 0px 15px;">
<div><div class="wsite-image wsite-image-border-thin " style="padding-top: 10px; padding-bottom: 10px; margin-left: 0px; margin-right: 0px; text-align: left;">
<a>
<img src="4261754_orig.png" alt="Photo" style="width: 100%; max-width: 642px;">
</a>
<div style="display: block; font-size: 90%;">A neat use of code injection to gain information regarding a project: Here we visualize how deep in the stack all execution branches lives with respect to the unit test. This may answer the question of how deep lives the sosies in comparison with the rest of the program. The data is obtained with Syringe and visualized using Paraview</div>
</div></div>
</td> </tr>
</tbody>
</table>
</div></div></div>
<div><div style="height: 20px; overflow: hidden; width: 100%;"></div>
<hr class="styled-hr" style="width: 100%;">
<div style="height: 20px; overflow: hidden; width: 100%;"></div></div>
<div><div class="wsite-multicol"><div class="wsite-multicol-table-wrap" style="margin: 0px -15px;">
<table class="wsite-multicol-table">
<tbody class="wsite-multicol-tbody">
<tr class="wsite-multicol-tr">
<td class="wsite-multicol-col" style="width: 50%; padding: 0px 15px;">
<div><div class="wsite-image wsite-image-border-thin " style="padding-top: 10px; padding-bottom: 10px; margin-left: 0px; margin-right: 0px; text-align: center;">
<a>
<img src="2763078_orig.png" alt="Photo" style="width: 100%; max-width: 538px;">
</a>
<div style="display: block; font-size: 90%;">
</div>
</div></div>
<div class="paragraph" style="text-align: left;"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"></span><span style=""><font color="#2a2a2a"><strong>TestEye Features: </strong></font><br><font color="#3f3f3f" size="2">• Apply and revert a particular transformation (or set of transformations) in order to evaluate the before/after behavior<br>• Navigate through the set of transformations created by the engine<br>• Provide enhanced coverage information <br>• Classify transformations</font></span></span></div>
</td> <td class="wsite-multicol-col" style="width: 50%; padding: 0px 15px;">
<div><div class="wsite-multicol"><div class="wsite-multicol-table-wrap" style="margin: 0px -15px;">
<table class="wsite-multicol-table">
<tbody class="wsite-multicol-tbody">
<tr class="wsite-multicol-tr">
<td class="wsite-multicol-col" style="width: 73.7903%; padding: 0px 15px;">
<h2 class="wsite-content-title" style="text-align: left;"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(72, 72, 72);">TestEye<br><font size="4">Transform, test, insight</font><br></span></span></span></span></h2>
</td> <td class="wsite-multicol-col" style="width: 26.2097%; padding: 0px 15px;">
<div><div class="wsite-image wsite-image-border-none " style="padding-top: 10px; padding-bottom: 10px; margin-left: 0px; margin-right: 0px; text-align: center;">
<a href="https://github.com/DIVERSIFY-project/Idea-plugin">
<img src="octocat.png" alt="Photo" style="width: auto; max-width: 100%;">
</a>
<div style="display: block; font-size: 90%;"></div>
</div></div>
</td> </tr>
</tbody>
</table>
</div></div></div>
<div class="paragraph" style="text-align: left;"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"><span style="text-decoration: none; font-style: normal; font-weight: 400; color: rgb(142, 142, 142);"></span><font color="#3f3f3f" size="2"><span style=""><strong>TestEye</strong> is an innovative plug-in for IntelliJ IDEA to perform and evaluate source code transformations. The plug-in allow the user to instantly see the results of the change. Multiple engines can be connected for evaluation and comparison purposes. In a posterior step, <strong>TestEye </strong>collects enhanced coverage information to understand the relation between the transformed code and the test suite. <br><br>The purpose of transforming a program can be test repair, error finding, automatic coverage and security issues, among others. While synthetic program transformation is a widely used technique in several fields in computer science, we believe we are missing methodologies and tools to evaluate our results. In many cases, transformation engines returns thousands or hundreds of alternatives. <strong>TestEye </strong>is capable of navigate and classify all this data, allowing its users to focus in particular sectors of the search space, giving the possibility to perform a “divide and conquer” approach.<br><br>The primary audience of this plug-in are transformation engines developers wanting to understand the behavior of their engines without leaving the comfort of the IDE. At DiverSE team, we developed <strong>TestEye</strong> to improve the quality of our Sosie's Generator. Using <strong>TestEye </strong>we are able to observe and classify the transformations created by the generator, improving its performance.<br><br>The enhanced coverage information provided by <strong>TestEye </strong>can be used as well by any developer wanting to understand the relationship between their test and their code. Therefore, our plug-in can be also exploited to gain insight of legacy code bases and big project with considerable large test suites.</span></font></span></span></span></span></div>
</td> </tr>
</tbody>
</table>
</div></div></div></div>
</div>
</div>
</div>
</div>
<!-- Quantcast Tag -->
<!-- End Quantcast tag -->
<div id="wsite-menus"></div>
</body></html>