-
Notifications
You must be signed in to change notification settings - Fork 1
/
testroots_watchdog.html
291 lines (262 loc) · 17.7 KB
/
testroots_watchdog.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
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<link rel="shortcut icon" href="assets/ico/favicon.png">
<title>TestRoots - WatchDog Eclipse, IntelliJ AndroidStudio Plugin</title>
<!-- Bootstrap core CSS -->
<link href="assets/css/bootstrap.css" rel="stylesheet">
<link href="assets/css/font-awesome.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="assets/css/main.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-49032236-3', 'auto');
ga('require', 'displayfeatures');
ga('send', 'pageview');
</script>
</head>
<body>
<!-- Fixed navbar -->
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<img src="assets/img/testroots_small_white.png" />
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="index.html">HOME</a></li>
<li class="active"><a href="testroots_watchdog.html">WATCHDOG</a></li>
<li><a href="report.html">REPORT</a></li>
<li><a href="about.html">TEAM</a></li>
<li><a href="hiring.html">VACANCIES</a></li>
<li><a href="publications.html">PUBLICATIONS</a></li>
<li><a data-toggle="modal" data-target="#myModal" href="#myModal"><i class="fa fa-envelope-o"></i></a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
<div id="headerwrap">
<div class="container">
<div class="row centered"><br /><br />
<div class="col-lg-8 col-lg-offset-2">
<img src="assets/img/watchdog_big.png" />
<h2>DO YOU PROGRAM JAVA WITH ECLIPSE OR INTELLIJ?</h2>
<h3>JOIN OVER 4,000 WATCHDOG USERS. WIN AMAZING PRIZES WITH ZERO EXTRA WORK, AND HELP SCIENCE ALONG THE WAY. <a href="#install">DOWNLOAD</a></h3>
</div>
</div><!-- row -->
</div><!-- container -->
</div><!-- headerwrap -->
<div id="blue">
<div class="container">
<div class="row centered">
<div class="col-lg-8 col-lg-offset-2">
<h4>WatchDog is a plugin for Eclipse and IntelliJ IDEs that <b>monitors how you test and debug,</b> gives you helpful statistics on it and it respects your privacy (and your company's policy).</h4>
</div>
</div><!-- row -->
</div><!-- container -->
</div><!-- bluewrap -->
<div id="dg">
<div class="container wb">
<div class="row centered">
<a name="install"></a>
<div class="col-lg-8 col-lg-offset-2"><h1><b>I want to install WatchDog for IntelliJ!</b></h1><br>
<img src="assets/img/intellij_logo.png"><br><br>
<p>Start your IntelliJ IDEA (we support version 13 and up, both Ultimate and Community editions) and simply go to <code>File > Settings > Plugins</code>. Choose <code>Browse repositories...</code> and search for <code>WatchDog</code> . Our <code>WatchDog plugin</code> will appear. Click <code>Install plugin</code> and select <code>Yes</code> to install WatchDog. Restart IntelliJ. That's it!<br>
<p>Alternatively, you can download our plugin from <a href="https://plugins.jetbrains.com/plugin/7828">JetBrains Plugin Repository</a> and choose <code>Install plugin from disk...</code>
</p>
<p>WatchDog silently runs in your IntelliJ. Its only trace: A small icon in the IntelliJ toolbar.<br><img src="assets/img/watchdog_in_intellij.png"><br></p>
<p><br><h2>WatchDog in IntelliJ Plugin Repository:</h2> <pre><h4><a href="https://plugins.jetbrains.com/plugin/7828">https://plugins.jetbrains.com/plugin/7828</a></h4></pre><br>
</div>
</div><!-- row -->
</div><!-- container -->
</div>
<div class="container wb">
<div class="row centered">
<div class="col-lg-8 col-lg-offset-2"><h1><b>I want to install WatchDog for Eclipse!</b></h1><br>
<img src="assets/img/eclipse_logo.png"><br><br>
<p>Fire up your Eclipse (we support 3.7, 3.8, 4.2, 4.3, 4.4, and 4.5) and simply drag the install button into your Eclipse <a href="http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=2009189" title="Drag and drop into a running Eclipse workspace to install TestRoots WatchDog"> <img src="https://marketplace.eclipse.org/sites/all/modules/custom/marketplace/images/installbutton.png"/></a></p>
<p>... or go to <code>Help > Install New Software</code>. Add the WatchDog Update Site URL below behind <code>Work with:</code>. Our <code>Test Roots Development Tools</code> will appear. Tick them and click <code>Next</code> to install WatchDog. Restart Eclipse. That's it.<br>
</p>
<p>WatchDog silently runs in your Eclipse. Its only trace: A small icon in the Eclipse toolbar.<br><br><img src="assets/img/watchdog_in_eclipse.png"><br></p>
<p><br><h2>WatchDog Eclipse Update Site:</h2> <pre><h4><a>http://updatesite.testroots.org/updatesite</a></h4></pre><br>
</div>
</div><!-- row -->
</div><!-- container -->
<div id="dg">
<div class="container w">
<div class="row centered">
<a name="features"></a>
<div class="col-lg-4">
<i class="fa fa-heart"></i>
<h4>NOT ONLY FOR GEEKS BY GEEKS</h4>
<p>WatchDog has been made by people with a passion for software for people with a passion for software. We know how annoying plugins and surveys can be. WatchDog runs silently in the background and you won't notice it's there.* <br><br>(* Except if you do, please <a href="https://github.com/TestRoots/watchdog/issues">file a bug report.</a> <b class="fa fa-smile-o"></b>)</p>
</div><!-- col-lg-4 -->
<div class="col-lg-4">
<i class="fa fa-laptop"></i>
<h4>FIND YOUR TRUE DEVELOPER-SELF</h4>
<p>How much do you test? Do you perhaps follow test-driven design, and didn't realise it? How many context-switches do you do per hour? How often do you run your tests? Does your production code co-evolve with your tests? Do you actually use the IDE-provided debugging infrastructure? What actions do you perform during a debugging session? The WatchDog plugin tells you. And only you.</p>
</div><!-- col-lg-4 -->
<div class="col-lg-4">
<i class="fa fa-check"></i>
<h4>ETHICS REVIEW</h4>
<p>WatchDog's privacy policy has been assessed and <a href="assets/papers/ethics_approval.pdf">approved by the Human Research Ethics Committee</a> of TU Delft.</p>
</div><!-- col-lg-4 -->
</div><!-- row -->
</div><!-- container -->
</div>
<div class="container desc">
<div class="row centered"><h4>FIND YOUR TRUE DEVELOPER-SELF!</h4></div>
<div class="row">
<br><br>
<div class="col-lg-6 centered tilt"><a href="assets/img/watchdog_statistics_view.png"><img src="assets/img/watchdog_statistics_view_small.png" alt=""></a><br><br>
</div><!-- col-lg-6 -->
<div class="col-lg-6"><p><strong>Get instant statistics on your development behavior</strong> with our WatchDog Statistics View. In Eclipse the WatchDog View can be plugged into any place and it gives you a basic summary of your accumulated development behavior of the last hour.</p>
<p>To open the WatchDog view, open <code>Window</code> from the Eclipse menu and click <code>Show View > Other</code>. Find the <code>WatchDog Statistics</code> view under the <code>Other</code> category (or, simply type WatchDog).</p>
<p>In IntelliJ it is integrated in the toolbar <code>Tool Buttons</code> (by default the right one) and you can open Statistic View by simply clicking on WatchDog icon.</p>
</div>
</div><!-- row -->
<div class="row">
<br><br>
<div class="col-lg-6 centered tilt"><a href="reports/sample_watchdog_report.pdf"><img src="assets/img/report.png" alt=""></a><br><br>
</div><!-- col-lg-6 -->
<div class="col-lg-6">
<p><strong>Additionally,</strong> you (and only you!) can access <a href="reports/sample_watchdog_report.pdf">a detailed report of your personal test practices</a>, certified by TU Delft.<br><br>You'll receive a beautiful report on your personal development behaviour that helps you improve your coding abilities.<br><br> So you are already a perfect software engineer, you say? We'll tell you <b class="fa fa-smile-o"></b>.<br><br><a href="report.html">Access your personal WatchDog report.</a></p>
</div>
</div><!-- row -->
</div><!-- container -->
</div><!-- DG -->
<a name="privacy"></a>
<div id="dg" style="background-color: #f2f2f2">
<div class="container">
<div class="row centered">
<div class="col-lg-8
col-lg-offset-2">
<h2>You and your projects stay completely
anonymous if you so want. We <b>never</b>
transfer any content!</h2><br>
<p>If you want to, you can share personal
details such as the organization you work for
(given permission by your employer) and your
email address to receive personalized
reports. By registering and installing WatchDog,
you agree that we store your WatchDog data in a
data center of TU Delft, The Netherlands, until
further notice. We follow the principles of
least information gathering, early anonymization
and hashing. Only the
<a href="about.html">WatchDog team</a> has
access to your raw data. An explanation of which
data we gather precisely (including your IP
address) follows below. By using WatchDog, you
grant us the right that we can perform
scientific research on your data, leading to
written research papers that might include
aggregated user data and graphs, and to release
fully anonymized (that is, with no personally
linked identifier such as user id, email, or IP
address) versions of the submitted WatchDog
data. By default, you grant us the right to
store your data infinitely until revocation. To
have your data removed,
<a data-toggle="modal" data-target="#myModal"
href="#myModal">please simply contact us,</a>
supplying your user id.</p>
</div>
</div>
</div>
<div id="dg">
<!-- FEATURE SECTION -->
<div class="container desc">
<div class="row centered">
<div class="col-lg-8 col-lg-offset-2"><a name="details"></a><h1>Understanding how (much) developers test and debug.</h1>
<br>
<p>The premise of TestRoots is to gain a deep understanding of how software is tested and debugged in the real world, and then suggest improvements based upon this thorough analysis. With WatchDog, we are interested in how you, as a Java developer, utilize the IDE and Junit. Not what you use it for. Hence, the data WatchDog measures is strictly numerical: We never transfer any content (not file names, and not even project names). You can trust us on this, <a href="about.html">we are nice people.</a> Or read on, and discover what little data WatchDog, the <a href="https://github.com/TestRoots/watchdog">unobtrusive, open-sourced Eclipse and IntelliJ plugins</a> developed at TU Delft, really transfer.</p></div>
</div><!-- row -->
</div><!-- container -->
<div class="container">
<div class="row centered">
<br><br>
<div class="col-lg-8 col-lg-offset-2"><a name="data"></a>
<h4><b>I am a techie. Please, tell me what you transfer and how you transfer it. I'll make sense of it myself.</b></h4>
<p>If transfering things over the internet is a problem for you or your company, we have a super-easy to setup virtual machine image. You can install this locally or on a server in your company. Please <a data-toggle="modal" data-target="#myModal" href="#myModal">contact us</a> in that case.</p>
<p>WatchDog centers around the concepts of intervals and events. Based on what event WatchDog receives from the IDE, it closes or creates a new interval or debug event. We have intervals for when you start your IDE, when you change focus to it, when you change your perspective, when you run Junit tests, when you launch the debugger and when you read or type code. When you read or type code, we see if we can figure out whether that's production or test code. When you type, we try to figure out how much code you changed in each typing interval (by calculating the Levensthein distance). That's all we do. So we will never see one letter that you type.</p>
<p>In addition, we have events for when you add, change or remove a breakpoint, when the program you are debugging is suspended or resumed, when you inspect or modify a variable value, when you perform a step into, over or out action and when you define a watch or evaluate an expression. The same holds for events as for intervals: we never see a letter you type.</p>
<p>Still not convinced? Alright, here's a JSON-ified TypingInterval (the most interesting one, really) as we transfer it to our server:</p>
<pre>{ "<abbr title="This represent the document when the typing interval is closed (e.g. when you stopped typing for a while).">endingDocument</abbr>" : { <abbr title="How many source lines of code the document had">"sloc"</abbr> : 3, <abbr title="The document type: Is it Java production code, Java test code or do we have no clue?">"dt"</abbr> : <abbr title="Un(kown) ... Ups, no idea what you are editing, but have fun!">"un"</abbr> }, "<abbr title="The Levensthein distance required to go from the original document to the ending document, a type of edit distance that represents the difference between the two documents.">diff</abbr>" : 425, <abbr title="This represent the document when you started typing.">"doc"</abbr> : { "sloc" : 31, "dt" : "un" }, "<abbr title="The interval type">it</abbr>" : "<abbr title="Typing, in this case">ty</abbr>", "<abbr title="Timestamp when the interval started">ts</abbr>" : NumberLong("1408110488025"), "<abbr title="Timestamp when the interval ended">te</abbr>" : NumberLong("1408110508039"), "<abbr title="Session seed so you can have multiple IDE instances open at the same time.">ss</abbr>" : NumberLong("-7490789694621659010"), "<abbr title="Your very personal user-id">uid</abbr>" : "935d7573c056c424f668d935ef18b4a0bf96c365", "<abbr title="Your very project-id">pid</abbr>" : "efdcb880844893f847d70907174315d95c50caa6" }</pre>
<p>Events are transfered to the server in a similar fashion, as the following JSON-ified StepIntoEvent shows:</p>
<pre>{"<abbr title="The type of the event">et</abbr>" : "si", "<abbr title="The timestamp of the event">ts</abbr>" : 1460558102310, "<abbr title="Session seed so you can have multiple IDE instances open at the same time.">ss</abbr>" : "ZTEmoNvaBEiAsSHeinoHuzELVXbYNMaApKKkOecX", "<abbr title="The version of WatchDog in which this event occurred">wdv</abbr>" : "1.7.0", "<abbr title="The IDE in which this event occurred (in this case IntelliJ)">ide</abbr>" : "ij"}</pre>
</div>
</div><!-- row -->
</div><!-- container -->
</div>
<div class="container">
<div class="row centered">
<div class="col-lg-8 col-lg-offset-2"><a name="interview"></a><h2>Let's Developer interviewed us</h2>
<div class="media"><iframe width="650" height="487" src="https://www.youtube.com/embed/-06ymo7dSHk" frameborder="0" allowfullscreen></iframe></div>
</div>
</div>
</div>
<!-- FOOTER -->
<div id="f">
<div class="container">
<div class="row centered">
<img src="assets/img/tudelft_logo.png" alt="">
</div><!-- row -->
</div><!-- container -->
</div><!-- Footer -->
<!-- MODAL FOR CONTACT -->
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">contact us</h4>
</div>
<div class="modal-body">
<div class="row centered">
<p>We would like to be in touch with you, so don't hesitate to contact us.</p>
<p><b>info -AT- testroots.org</b></p>
<p>
Software Engineering Research Group (SERG),<br />
The TestRoots Team<br />
Mekelweg 4<br/>
Delft, The Netherlands.<br/>
+31 15 278 2518<br/>
</p>
<div id="mapwrap">
<iframe width="100%" height="500" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.google.com/maps/embed/v1/place?q=Elektrotechniek%2C%20Wiskunde%20en%20Informatica%2C%20Mekelweg%2C%20Delft%2C%20Nederland&key=AIzaSyDTQB3T4_0gSDBSXX0vuloJ9xMn_ellw4k&zoom=15"></iframe>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
</body>
</html>