Tools For Checking Java Programs
Like all such lists, this is perennially out of date. <a href="https://darwinsys.com/contact">Contributions welcome</a>.
Name | Notes | Websiteurl | Category |
---|---|---|---|
ACRA |
Android-specific crash reporting; client is open source, various backends can be used. |
Crash |
|
Airbrake |
Long widely used in the Ruby/Rails community, supports Java, several other languages, lots of back-end integration. Client libs are open source |
Crash |
|
Android Lint |
Included w/ Android SDK |
Static |
|
Android Testing Support Library |
ATSL includes Espresso, JUnit4 support for Android Testing, UI automator, expressions, and more. |
https://google.github.io/android-testing-support-library/docs/ |
|
annabot |
Checks annotations for correct usage |
Static |
|
AppPerfect |
Commercial. Aims to automate dev and running of test |
Dynamic |
|
Arquillian |
Container-in-test EE component tester |
Dynamic |
|
Assent |
Formerly from Tata (http://www.tcs.com/), apparently no longer available |
||
Bandera |
Uses Pathfinder |
Model |
|
BugSplat |
Commercial, cross-platform crash reporting |
http://www.bugsplatsoftware.com/Documents/java-applications/ |
Crash |
Canoo WebTest |
Web |
||
Cenqua |
Merged into Clover |
||
Checker Framework |
Integrates with standard compiler(s) |
Static |
|
CheckStyle |
Static |
||
CloneDR |
DuplicateDetector |
||
Clover |
Coverage |
||
Cobertura |
Coverage |
||
Coverity |
Commercial |
Static |
|
CPD |
Part of PMD |
DuplicateDetector |
|
CrashBurnFree |
Crash |
||
Cucumber |
TDD |
||
dbUnit |
JUnit extension for database work |
Dynamic |
|
DoctorJ |
Static |
||
EasyMock |
An influence on Mockito |
Mocking |
|
EclEmma |
Eclipse plugin for coverage. Started with Emma, switched to JaCoCo |
Coverage |
|
Emma |
Coverage |
||
ESC/Java |
Claims to be on github but source is not checked in after 3 years. |
Static |
|
Espresso |
Part of Android Testing Support Library. Do not confuse with Espresso web framework |
https://google.github.io/android-testing-support-library/docs/espresso/ |
|
fb-infer |
Static |
||
FindBugs |
Defunct, replaced by spotbugs |
Static |
|
Fortify |
Acquired by HP |
http://www8.hp.com/us/en/software-solutions/application-security/index.html |
Static |
Grinder |
Load |
||
Hamcrest |
Matchers for JUnit (etc), supports other prog langs |
Dynamic |
|
Hammurapi |
Static |
||
HtmlCleaner |
HtmlCleaner cleans poorly-formed HTML pages into well-formed XML |
HTML |
|
JaCoCo |
Java Code Coverage library, Developed by EclEmma devs. |
Static |
|
Jamit |
Java Access Modifier Inference Tool. Examines Java class files to infer tighter access modifiers. |
Static |
|
Java Pathfinder |
The original Model Tester for Java; has own JVM written in Java. |
Model |
|
jcabi |
Uses REST API to access W3 validator; depends on JAX-RS and Jersey |
HTML |
|
JCov |
Used in checking the JDK; now part of OpenJDK project. |
Coverage |
|
JCSC |
Java Coding Standard Checker |
Static |
|
jdeps |
Cmd Line Tool included w/ JDK 1.8+ |
https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool |
Static |
JIRA Mobile Connect |
Commercial, cross-language crash reporting |
https://marketplace.atlassian.com/plugins/com.atlassian.jconnect.jconnect-plugin |
Crash |
Jlint |
Static |
||
JMeter |
Load |
||
JMock |
Mocking |
||
JMockit |
Mocking |
||
JStyle |
Commercial. May be defunct; web site says "JDK1.0-1.4". |
||
JTidy |
HTML syntax checker and pretty printer. |
HTML |
|
JUnit |
One of the oldest and most used; the mother of all xUnit packages |
Dynamic |
|
JWalk |
Free for individual use; source code not available. |
Dynamic |
|
JWebUnit |
High-level Java API that wraps HtmlUnit and Selenium |
HTML |
|
JWiz |
University project, active development ended in 1998. Don’t confuse with BertrandDupraz' 'JWiz' which aims to become a Wizard Generator. |
Static |
|
Maveryx |
Commercial; free vers available; serves Java and Android. |
Dynamic |
|
MaxQ |
Recording proxy, lets you ensure that website still works, or script interactions. |
Web |
|
Mockito |
One of the oldest Mock Objects projects. |
Mocking |
|
Nu Html Checker V.nu |
Code behind html5.validator.nu, validator.w3.org/nu, and the HTML5 support of the legacy W3C Validator. Needs Python and Java to build from src. |
HTML |
|
pageunit |
Easy script-based web testing |
Web |
|
Parasoft JTest |
|||
PMD |
Support multiple programming langs. Includes CPD (Copy-n-Paste Detector) |
Static |
|
PowerMock |
Mocking |
||
Raygun |
Crash reporting for deployed applications. |
Crash |
|
SamePlugin |
IntelliJ plugin only |
DuplicateDetector |
|
scalatest |
|||
SDD |
Eclipse-only plugin for dupe detection |
https://wiki.eclipse.org/Duplicated_code_detection_tool_%28SDD%29 |
DuplicateDetector |
SeLion |
"SeLion helps scale your Selenium based testing efforts by offering a set of enhanced capabilities and incorporating best practices recommended by the Selenium community." |
Dynamic |
|
Sentry |
Commercial, cross-language crash reporting |
Crash |
|
Serenity |
Hudson/Jenkins-only plugin for test coverage |
Coverage |
|
Simian |
SIMIlarity ANalyser, similar to PMD’s CPD. |
DuplicateDetector |
|
SimScan |
Defunct |
DuplicateDetector |
|
Solex |
Eclipse plugin for web testing |
Web |
|
Spin |
Model analysys of C (not Java!) code, but, has useful free course on logic model checking |
Model |
|
Splunk Mint |
Commercial, cross-platform crash reporting |
Crash |
|
Spock |
A higher level than JUnit, also for BDD etc. Written in Groovy |
Dynamic |
|
SpotBugs |
Follow-on to FindBugs |
httsp://spotbugs/org/ |
Static |
TagSoup |
Hopes to handle even the most egregious violations of HTML syntax. |
HTML |
|
TeamScale |
Static |
||
Test Butler |
Helps testing Android apps |
||
TestNG |
Aimed to supplant JUnit but largely supplanted by it |
Dynamic |
|
verifydesign |
Verifies API conformance. Alas, tightly bound to the Ant API |
http://ant-contrib.sourceforge.net/tasks/tasks/verifydesign.html |
Static |
Verisoft |
No longer seem to do Java coder verification |