<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-style-type" content="text/css">
<link rel="stylesheet" type="text/css" href="style.css">
<title>ProGuard Quality</title>
<script type="text/javascript" language="JavaScript">
<!--
if (window.self==window.top)
  window.top.location.replace("index.html#"+window.location.pathname+window.location.hash);
else {
  var hash="#"+window.location.pathname.replace(window.top.location.pathname.replace("index.html", ""), "");
  if (window.top.location.hash!=hash)
    window.top.location.hash=hash;
}
//-->
</script>
</head>
<body>

<h2>Quality</h2>

In order to get a feel for the quality of the <b>ProGuard</b> code, it is run
through a regular automatic build process. This process produces numerous
statistics on the source code, Java lint comments, Java documentation
comments, the Java documentation itself, html lint comments on the Java
documentation, spell checks, compilation results, an output jar, dead code
analysis, a shrunk and obfuscated jar (using ProGuard itself!), test runs with
memory and performance analyses, etc. Most analyses are produced using freely
available tools. The results are poured into a convenient set of web pages
using bash/sed/awk scripts. You're welcome to have a look at an uploaded
snapshot of one of these runs:
<p>
<center><a href="http://proguard.sourceforge.net/quality/"
target="other">Automated Code Analysis and Testing Pages</a> (at <a
href="http://sourceforge.net/projects/proguard/"
target="other">SourceForge</a>)</center>
<p>
The pages will appear in a new window, which you probably want to view at
full-screen size.
<p>

In addition, <b>ProGuard</b> is tested against a constantly growing test suite
(more than 900 tests at this time of writing). These small programs contain a
wide range of common and uncommon constructs, in order to detect any regression
problems as soon as possible.

<hr />
<noscript><div><a target="_top" href="index.html" class="button">Show menu</a></div></noscript>
<address>
Copyright &copy; 2002-2011
<a target="other" href="http://www.lafortune.eu/">Eric Lafortune</a>.
</address>
</body>
</html>
