What is Nocaute?
Nocaute is an open-source automated
unit test tool for Java that does
NOT require test-coding. Unit-test-cases
are specified in XML.
The name "Nocaute" stands
For NOn Coded Automated Unit Testing
You can use Nocaute to test Java
code running inside or outside a web
Within an application server, the
test results will be outputed as a
nice-looking web page. Otherwise,
results will be displayed on Nocaute's
onwn graphical User Interface.
Usually, when testing web applications,
programmers will insert test instructions
inside business code and monitor the
server's output screen or log-files.
A better strategy is to write test-classes
(wich have the sole purpose of testing
the business classes) and deploy them
along with the application.
Even then, when test-cases change,
you must change java code accordingly,
recompile-it, redeploy-it and restart
the web application server. It's no
wonder programmers don't like testing.
Here's how you do it with Nocaute.
First you install Nocaute (as a plugin)
on your web-application. Nocaute will
be deployed along with it. Then you
specify unit-test-cases in XML (basically,
you have to tell Nocaute what methods
to invoke, wich arguments to pass,
and how it should behave to be considered
a successfull test). Nocaute allows
you to upload this XML file to the
server, run the test-cases and gives
you the results as a nice-looking
Save time: When a test-case changes,
you don't have to recompile, redeploy
or restart anything. Just upload the
new test-script.XML with a single
click. This can be 10 times faster
then restarting the server, really.
Find errors: The objective of software-testing
is not to prove that something works
(actually, that is not even possible).
The objectives of software testing
is TO FIND BUGS. This is what Nocaute
was made for. You can define success
criteria for your test-cases. When
a criterion fails, Nocaute will tell
you will wich one failed, and why.
If a tested method throws an exception,
Nocaute will show you the stacktrace.
Regression-testing: How do we know
the new functionality added to a system
didn't affect old, tested functionalities?
That's simple - you have to retest
everything :-), that's regression
testing, and, obviously, that is usually
done with great pain. With Nocaute,
since you can store your test-scripts
in XML format, regression testing
is way easier.
How much is it?
It's nothing! Here,
take it. Let
me know if you like it.
Who did it, and why?
I'm am Tony
Lâmpada, the author. I am
a brazilian Computer Enginner graduated
(Aeronautics Technological Institute).
I did Nocaute to use at COMPSIS,
the company I work at. We will be
needing it soon, to test a really
big system we're now building. Besides,
we should all thank COMPSIS for allowing
me to make Nocaute open-source, since
it should be its proprietary code.
See "How much is it?" above.
What's with that picture?
Nocaute, in portuguese (my native
language) means knock-out. That's
why I put a punch picture here.
What other projects are used
Displaytag - In my opinion, the best
taglib ever made by man
Struts - MVC implementation
Dom4j - XML parsing
Smarttag - some taglibs I made. Get
Commons-j2ee - some useful classes
I made. Get the source.