1b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato<html> 3b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato<head> 4b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> 5b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato<meta http-equiv="content-style-type" content="text/css"> 6b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato<link rel="stylesheet" type="text/css" href="style.css"> 7b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato<title>ProGuard Quality</title> 82270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom</head> 92270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom<body> 102270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom 11b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang<script type="text/javascript" language="JavaScript"> 12b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang<!-- 13b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wangif (window.self==window.top) 142270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom document.write('<a class="largebutton" target="_top" href="index.html#quality.html">ProGuard index</a> <a class="largebutton" target="_top" href="http://www.saikoa.com/dexguard">DexGuard</a> <a class="largebutton" target="_top" href="http://www.saikoa.com/">Saikoa</a> <a class="largebutton" target="other" href="http://sourceforge.net/projects/proguard/">Sourceforge</a>') 15b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang//--> 16b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang</script> 172270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom<noscript> 182270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom<a class="largebutton" target="_top" href="index.html#quality.html">ProGuard index</a> 192270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom<a class="largebutton" target="_top" href="http://www.saikoa.com/dexguard">DexGuard</a> 202270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom<a class="largebutton" target="_top" href="http://www.saikoa.com/">Saikoa</a> 212270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom<a class="largebutton" target="other" href="http://sourceforge.net/projects/proguard/">Sourceforge</a> 222270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom</noscript> 23b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato 24b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato<h2>Quality</h2> 25b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato 26b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe OnoratoIn order to get a feel for the quality of the <b>ProGuard</b> code, it is run 27b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratothrough a regular automatic build process. This process produces numerous 28b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratostatistics on the source code, Java lint comments, Java documentation 29b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratocomments, the Java documentation itself, html lint comments on the Java 30b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratodocumentation, spell checks, compilation results, an output jar, dead code 31b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratoanalysis, a shrunk and obfuscated jar (using ProGuard itself!), test runs with 32b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratomemory and performance analyses, etc. Most analyses are produced using freely 33b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratoavailable tools. The results are poured into a convenient set of web pages 34b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratousing bash/sed/awk scripts. You're welcome to have a look at an uploaded 35b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratosnapshot of one of these runs: 36b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato<p> 37b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato<center><a href="http://proguard.sourceforge.net/quality/" 38b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratotarget="other">Automated Code Analysis and Testing Pages</a> (at <a 39b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratohref="http://sourceforge.net/projects/proguard/" 40b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratotarget="other">SourceForge</a>)</center> 41b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato<p> 42b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe OnoratoThe pages will appear in a new window, which you probably want to view at 43b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratofull-screen size. 44b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato<p> 45b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato 46b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe OnoratoIn addition, <b>ProGuard</b> is tested against a constantly growing test suite 472270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom(more than 1800 tests at this time of writing). These small programs contain a 48b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratowide range of common and uncommon constructs, in order to detect any regression 49b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onoratoproblems as soon as possible. 50b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato 51b9cc48a43ed984587c939d02fba5316bf5c0df6eYing Wang<hr /> 52b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato<address> 532270795fbe0b277bfd49f40950ecaa78583175ccBrian CarlstromCopyright © 2002-2014 542270795fbe0b277bfd49f40950ecaa78583175ccBrian Carlstrom<a target="other" href="http://www.lafortune.eu/">Eric Lafortune</a> @ <a target="top" href="http://www.saikoa.com/">Saikoa</a>. 55b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato</address> 56b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato</body> 57b72c5c2e5482cf10117b2b25f642f7616b2326c3Joe Onorato</html> 58