There comes a time where numbers on a paper have more weight than the screen on your desk..
Reporting Advertising
What Pentaho Reporting can do for you |
Current Stable |
Previous |
In Development |
|
Pentaho Reporting allows you to refine your raw data into visually appealing reports that convey all the information you need to make better decisions and to get your job done faster. The open architecture of the reporting system and our Open-Source nature makes it a breeze to integrate the reporting engine into your existing systems. Many of the worlds leading enterprises already use our technology to gain a competitive edge. What are you waiting for? Download it now! |
Pentaho Reporting 3.8.3 |
Pentaho Reporting 3.8.2 |
Pentaho Reporting 4.0.0Development for this version has just started. Relax, it will take a while. Crosstabs are coming .. |
Thursday, April 21, 2011
A bit of testing never hurts ..
The layout rules must be deterministic, complete and at the same time easy enough to understand to tell them to the user.
Our layouting engine is basically a huge state machine, where nodes get added and removed constantly to represent both an accurate picture of what has been processed (so that space is not allocated twice) and what is currently due to be processed. The engine itself streams data though its guts and only holds on to the parts that have not yet been printed. It allows us to have a really minimalistic memory footprint, nearly regardless of the total number of pages rendered. One page or a million, the amount of memory used stays a rather flat line.
On the negative side, we sit on a huge pile of states, all interdependent and interwoven and nearly impossible to simulate from outside. Some parts can be extracted, but the majority of the code needs to be run together to behave correctly.
Writing test cases for that is not fun - until now.
Over the last few weeks I wrote a set of "golden sample" tests. A golden sample is a test that runs a given report and compares its output against a known good state. Such tests cannot provide protection from unknown evils, but we are now at least in a position to validate that the existing reports run as before.
And best of all: These tests are easy to set up and easy to maintain. As long as we uphold the promise that old reports behave the same in newer reporting engines, we can just drop the report definitions into the sample pool, generate golden outputs and let them stay there for future generations of testers.
The test system could easily used outside of the development cycle as well. If you let your reports run against a test database you could verify whether the latest upgrade broke your reports or whether test system and production system *really* produce the same results. What do you think - would a "golden test" make sense in your organization?
This blog is brought to you by
I am the software designer and lead developer for the Pentaho Reporting Engine and the Pentaho Report Designer. I started writing the reporting engine 10 years ago and with the help of a great community we formed it into a product that is used in large and small companies around the world.
View my complete profile
Yes a "golden test" would mean that we can upgrade to a newer version faster and with less risks. Currently the testing effort involved, makes us decide to skip a newer version. Then we ask you to backport .....
ReplyDeleteWhen will it be available to get my hands on it?
I should have a download around this time next week. As we are using the XML output (and due to the fact that this one changed a bit in 4.0 to make these tests possible [filter out changing attributes, fix the report.date to a static value etc]), these tests will only make sense from 4.0 onwards.
ReplyDeleteBut then again, there is no way you want to skip 4.0 and crosstabs anyway :)