cstester - a tool for testing loading and painting of documents
t.zachmann at zagge.de
Tue Jan 18 14:07:21 CET 2011
I'm currently working as part of my job for Nokia on cstester a tool to test
loading and painting for stage, tables and words. The aim of the tool is to
make sure there are no regressions added when features are modified. This is
done by loading the document and comparing some pre generated images of the
content with created images of the content. Also a good code coverage should
be possible to reach by using this method it uses a lot of code when doing
The idea is to create a document set which contains features and test these
documents on a regularly basis.
There are still some open questions:
- Most important one is how to make sure font rendering is always the same.
One idea here is to create a virtual image that can be used to run the tests.
- What is the best way to store the test set and images used for testing
Should we create a new repository where the documents are stored.
- How to automatically run the tests to find regressions.
I will shortly commit the branch cstester-zachmann
How does it work
Creating the images used for verifying
cstester --create test.odp
will create the test images used for comparison. One needs to make sure the
images are as they are expected to be. The images to check will be created in
the directory test.odp.check so you need write access to the directory the file
Verifying that still all works fine
cstester --verify test.odp
This will load the document and create images of the content and then verify
them against the images saved in test.odp.check
It is possible to run the tool on multiple files at once by specifying muliple
files on the command line
cstester --create test1.odp test2.odp test3.ods test3.xls
Currently it has support for documents which are supported by stage and
tables. words is going to follow. Other document types should be easy to add.
I also have plans for the future to extend the tool by:
- adding a save / load circle to test that all is saved and loaded correctly
and we don't have any data loss there.
- adding odf verification for the saved data
Also we are working inside Nokia on a set of documents that can be used for
this kind of testing. This documents will then be available for the community.
More information about the calligra-devel