| Feature
Overview
- Tests individual methods, classes, or large,
complex applications
- Supports Struts, Spring, Hibernate, EJBs,
JSPs, servlets, and so on
- Full integration with Eclipse, RAD, JBuilder
- Limited integration (result import only) with
IntelliJ IDEA and Oracle JDeveloper
- Integration with most popular source control
systems
- Shares test settings and files team-wide or
organization-wide
- Generates HTML and XML reports
- Tracks how test results and code quality change
over time
- Provides GUI (interactive) and command-line
(batch) mode
Static analysis for security and reliability
(pattern & flow based)
- Checks compliance to configurable sets of
over 1000 built-in rules, including out-of the-box
support for PCI DSS, OWASP Top 10, CWE-SANS
Top 25, and other security guidelines
- Corrects violations of 250 rules
- Identifies and prevents threading problems
- Identifies and refactors duplicate and unused
code
- Allows creation of custom rules by modifying
parameters, using a graphical design tool, or
providing code that demonstrates a sample rule
violation
Code Metrics
- Calculates metrics such as Inheritance Depth,
Lack Of Cohesion, Cyclomatic Complexity, Nested
Blocks Depth, Number Of Children
- Allows customization of the boundaries and
thresholds for available metrics so that team
members are alerted when metrics are outside
of the prescribed range
Peer Code Review
- Automates the peer code review process (including
preparations, notifications, and routing)
- Automatically identifies updated code by scanning
the source control system or the local file
system, matches the code with designated reviewers,
and tracks the progress of each review item
until closure
Unit Testing
- Automatically creates sensitive low-noise
regression test suites–even for large code bases
- Automatically finds runtime bugs in execution
paths that may cross multiple methods, classes,
or packages
- Generates functional JUnit test cases that
capture actual code behavior as a deployed application
is exercised
- Generates extendable JUnit and Cactus (in-container)
tests that expose reliability problems and capture
behavior
- Executes the test suite to identify regressions
and unexpected side effects
- Parameterizes test cases for use with varied,
controlled test input values (runtime-generated,
user-defined, or from data sources)
- Monitors test coverage and achieves high coverage
using branch coverage analysis
- Identifies memory leaks during test execution
- Steps through tests with the debugger
|