Stopwatch was ment to replace System.currentTimeMillis() calls, match like Log4j replaced System.out.println() calls. To see how it does that go to Quick Start page.
Dependometer is a java based analysis tool for java projects.
Features are:
Use a logical architecture description in terms of Layers and Subsystems and their physical mapping (n Packages implement a Subsystem) and check logical architecture violations.
* Analyze the dependency architecture between Layers, Subsystems, Packages, Compilation Units (Java files) and Types (Classes and Interfaces)
* Calculate a bunch of metrics for all elements - this includes metrics from John Lakos, Robert C. Martin and Craig Larman
* Analyze cycles between elements
* Define thresholds and receive feedback upon their violation
Simulate via simple refactoring definitions and cutting unwanted dependencies changes to the physical structure possibly enhancing refactoring.
Create a complete HTML presentation via xslt. This provides browsing capabilities from Layer (logical element) to Compilation Unit (physical element) for a discussion which physical elements cause the logical architecture to break.
Involve your users and improve your website or app.
* Collect feedback on any webpage, mockup, sketch, or image.
* Usability feedback in every stage of your design process.
* Participants point & click to share their opinion.
* Clear visualizations to analyze your results.
* Available in 16 languages, any other language on request.
This article demonstrates a brand new open source library for unit testing, called Unitils. Unitils helps you in writing simple and maintainable unit tests with JUnit or TestNG . It glues together some widely used test libraries like DbUnit and EasyMock and offers integration with Spring and Hibernate . Unitils encourages applying good practices and unit testing guidelines. The ideas behind the code are based on the authors' concrete experience on enterprise projects.
Unitils offers following features
* Equality assertion through reflection, with options like ignoring Java default/null values and ignoring order of collections
* Support for database testing involving test data management with DbUnit, automatic maintenance of unit test databases and automatic constraints disabling
* Hibernate integration features such as session management and testing the mapping with the database
* Integration with Spring, involving ApplicationContext management and injection of spring managed beans
* Integration with EasyMock and injection of mocks into other objects
Unitils is an open source library aimed at making unit testing easy and maintainable. Unitils builds further on existing libraries like DBUnit and EasyMock and integrates with JUnit and TestNG.
Unitils provides general asserion utilities, support for database testing, support for testing with mock objects and offers integration with Spring and Hibernate. It has been designed to offer these services to unit tests in a very configurable and loosely coupled way. As a result, services can be added and extended very easily.
Currently Unitils offers following features:
* General testing utilities
o Equality assertion through reflection, with different options like ignoring Java default/null values and ignoring order of collections
* Database testing utilities
o Automatic maintenance and constraints disabling of unit test databases
+ Support for Oracle, Hsqldb, MySql, DB2, Postgresql and Derby
o Simplify unit test database connection setup
o Simplify insertion of test data with DBUnit
o Simplify Hibernate session management for unit testing
o Automatically test the mapping of Hibernate mapped objects with the database
o Manage transactions during unit testing
* Mock object utilities
o Simplify EasyMock mock object creation
o Simplify mock object injection
o EasyMock argument matching using reflection equality
* Spring integration
o ApplicationContext configuration and easy injection of spring managed beans into a unit test
o Support for using a Spring-configured Hibernate SessionFactory in unit tests.
The project started begin 2006 from an Ordina J-Technologies discussion group on unit testing. The result was a list of guidelines and Unitils emerged in an attempt to write code to support these guidelines.
Documentation
UISpec4J is an Open Source functional and/or unit testing library for Swing-based Java applications, built on top of the JUnit test harness.
If you are writing a Swing application, you will appreciate UISpec4J above all for its simplicity: UISpec4J's APIs are designed to hide as much as possible the complexity of Swing, resulting in easy to write and easy to read test scripts. This is especially true when comparing UISpec4J tests with those produced using Swing or low-level, event-based testing libraries.
The Grinder is a JavaTM load testing framework that makes it easy to run a distributed test using many load injector machines. It is freely available under a BSD-style open-source license.
The latest news, downloads, and mailing list archives can be found on SourceForge.net.
Key features
* Generic Approach Load test anything that has a Java API. This includes common cases such as HTTP web servers, SOAP and REST web services, and application servers (CORBA, RMI, JMS, EJBs), as well as custom protocols.
* Flexible Scripting Tests are written in the powerful Jython scripting language.
* Distributed Framework A graphical console allows multiple load injectors to be monitored and controlled, and provides centralised script editing and distribution.
* Mature HTTP Support Automatic management of client connections and cookies. SSL. Proxy aware. Connection throttling. Sophisticated record and replay of the interaction between a browser and a web site.
See the longer features list for further details.
To someone who is new to unit testing, the idea of mock objects can be confusing to say the least. I have covered in previous tutorials how to use various mock object frameworks (EasyMock and jmockit). However in this tutorial, we will focus on the concept of mocking in general. What is a mock object? What is it used for? Why can't I mock object XYZ? Let's look into these questions and maybe clear a bit of the air on the use of mock objects.
Testability-explorer is a tool which analyzes java byte-codes and computes how difficult it will be to write unit-test. It attempts to help you quantitatively determine how hard your code is to test and, where to focus to make it more testable.
Test metric tool can be used:
1. As a learning tool which flags causes of hard to test code with detailed breakdown of reasons.
2. To identify hard to test hair-balls in legacy code.
3. As part of your code analysis-toolset.
4. As a tool which can be added into continuous integration that can enforce testable code.
TestabilityExplorer.org records the testability scores for many open source and commercial Java libraries.
The compiled bytecode for the library is analyzed and metrics are calculated for the testability of individual classes. Those classes fall into one of three categories - 'excellent', 'good' and 'needs work'. Generally speaking, injectability, mockabiliy and composition are good, and static state is bad. Figures are recursively calculated, but only inside the jar in question.
The metrics are a calculation of the skill of the development team in making their classes testable. You cannot use these metrics to say that Tomcat is better than Jetty or vice versa, as the features of each are not taken into account. These metrics will also not tell you whether a particular library will be easy to use or not. It just tells you how dedicated the development team was to making testable software. As we track the changing figures overtime, we can see whether the team in question was dedicated to improvement or not.
This is a very simple integration of Spring and FitNesse. FitnNesse is a Wiki-based framework to implement integration tests. Fit as well. This framework uses HTML files as input and output for the integration tests. Therefore the tests can be written using Word or Excel instead of a Wiki. This makes usage much easier and can be critical for success or failure.
This framework offers new classes that you can inherit from to implement or Fit FitNesse Fixtures. These Fixtures are then autowired to Spring Beans. So the Fixtures just need to implement set-methods. These are automatically called by Spring with a Spring Bean of the right type. This way Dependency Injection also covers the Fitnesse tests.
ztest
ztest is a small classlibrary based on java 1.5 intended to be used in junit tests.
The main purpose of ztest is to put constraints on the code structure of java programs.
It can and should be used to specify an architecure by putting constraints on class dependencies. The architecture can be reused by reusing the test.
ztest scans the bytecode of class files in directories, jars, wars, ears and computes a dependency graph. You can query this dependency graph and define the architecure by specifying valid dependencies and rejecting invalid ones.
ztest comes with a dependency-test (ZDependencyTest) with which you can define sets of classes and the allowed dependencies between them.
The class sets are defined by filtering the nodes of the dependeny graph.
JMeasurement is a free and simple java api for monitoring runtime and usage (count, parallel activation, last activation) of user defined points in java production code. It is simple to use and extended. JMX is supported.
A small mock library that is extremely easy to learn with plenty of examples. Only has 5 classes for the api. This library's best feature is being able to test a 24 hour timer in milliseconds with a mockobject timer.
Simplium aids the developer to create selenium based unit test that can be executed in different browsers and enviroment. With enviroment means the same test can be run against the developers own machine as well as a test machine somewhere on the network or even the production machine.
A Simplium unit tests doesn't have any reference to which URL the test is executed against as well as no reference to which browser the test should be executed in. Instead the Simplium test cases are annotated with Simplium specific annotations which allow Simplium to take control of the test cases when executed.
Simplium looks for which enviroment it is executed in (development, test or production) and based on this information Simplium will execute the test cases against different servers, against a local selenium remote control or selenium grid and execute each test in the browsers that the enviroment has specificed.
SelfEsteem is a graphical presentation of Acceptance Test results. It allows customers to actually SEE a development teams progress. Our goal is to have metrics that are so clear and reliable that software development starts becoming something concrete.
A tool for testing Scala and Java software
OSI Certified Open Source Software
ScalaTest is a free, open-source testing tool for Scala and Java programmers. It is written in Scala, and enables you to write tests in Scala to test either Scala or Java code. It is released under the Apache 2.0 open source license.
Because different developers take different approaches to creating software, no single approach to testing is a good fit for everyone. In light of this reality, ScalaTest is designed to facilitate different styles of testing. ScalaTest provides several traits that you can mix together into whatever combination makes you feel the most productive.
Ripplet is a powerful,high available,flexible,collaborative load/stress test tool. It aims at providing an environment where users are able to do the tasks as follows :
* illustrate test design and outline load description clearly
* control realistic performance load efficiently, both on logic and data flow
* diagnose performance spikes and bottlenecks easily
* evaluate system capacity quickly and correctly
* share achievements for developers or customers, not only reports but test plan for product enviroment stage evaluation
Use it, extend it, just making your load test fruitful, your production stable. Hopefully, it's pretty much everything you seek in load test and it's beyond your expectation.
Éric Piel, and A. Gonzalez-Sanchez. SINTER '09: Proceedings of the 2009 ESEC/FSE workshop on Software integration and evolution @ runtime, page 3--10. New York, NY, USA, ACM, (2009)