Case Study CoreMedia Content Management System
 |
|
About CoreMedia:
CoreMedia is the leader in innovative people-centric social software. The company,
based in Hamburg, Germany, has successfully positioned itself in the highly-dynamic
market for Internet technology. The company is characterized by its innovative and
creative culture, and by the focus on collective learning. These values are also to
be found in CoreMedia's technology: CoreMedia develops software that enables staff,
partners and customers to achieve their goals rapidly, creatively and productively.
|
Founded in 1996 and headquartered in Hamburg, Germany, CoreMedia has over 150
employees and maintains a global network of implementation partners that includes
500 professional consultants.
Over 200 companies worldwide rely on CoreMedia's content management (CMS) and digital
rights management (DRM) solutions, including ARD, Bertelsmann, BenQ, BILD, Continental,
DAK, DaimlerChrysler, debitel, Deutsche Telekom, GMX, IKK, NEC, MLP, Motorola, Nokia, O2,
Panasonic, Plus, PREMIERE, Quelle, Qualcomm, Samsung, SEAT, Sony Ericsson, T-Mobile,
T-Online and Vodafone. CoreMedia is also the basis for online services provided by over 80
public institutions and administrative bodies. CoreMedia has received many international
awards in recent years, praising its innovative culture and software, including the
European Business Award, recognition as Best Innovator, and the inclusion in the Deloitte
Technology Fast 50 list for fast-growing companies.
Excerpt from a facebook
community article from Mark Michaelis, Software Engineer Quality Assurance, CoreMedia
AG, Hamburg, Germany:
About the poor GUI Automation Tools: I also think that GUI Test Automation is
perhaps one of the most challenging things to do in testing. It takes a long evaluation to
get the right automation tool, especially to get one accepted by the whole team.
For Java (Swing Applications) we switched from WinRunner (used for years before) to
QF-Test. WinRunner has not been accepted by the team because of its
proprietary language TSL. In contrast QF-Test is developed in Java and uses Jython as
scripting language. A great start for Java developers. There are many more benefits of
QF-Test, but I will only state three of them here:
 | As QF-Test is written in Java it has no problems dealing with the latest Java
releases. It's been a piece of cake to switch from testing with Java 1.5 to testing with
Java 1.6. |
 | Tests can be written in that way that also managers can easily read what the test
actually does without going into details. |
 | Great support for Data Driven Testing. Never got so many test cases done in such a
short amount of time. |
About the robustness of GUI Test Automation: I think there are two things which need to be
done to get the tests as robust as possible. One is already mentioned in the StickyMinds
article you quoted:
Involve developers. It's for sure needed to add test-hooks into the application. The most
simple one is to give GUI elements a unique ID (in Java: using setName()).
The next thing is to have GUI Maps (a term I learned from WinRunner but I also adopted it
for QF-Test): Place the rules to identify GUI components in an own database/file. This way
you only have to touch this file for slight GUI changes.
But the best thing to do is to create a testing framework. E. g. for every menu action
(every in XP sense: every currently used one) I created a library function. Developers
just need to call this library function and don't need to care about if there are
radio-buttons or a drop-down list behind. If the GUI element changes its type only the
framework needs to be adjusted.
Even more complex functions moved into the framework. E. g. for the CMS I created
framework functions which automatically create documents (using the GUI). So it's very
easy for developers to get some test fixtures to work with.
Finally, back to the code, I added a GUI-Test-Facade to the application. This has two
advantages:
 | I can access the very inner of the application. |
 | Developers can easily see that I do this and how and thus can take care of it during
refactoring of the code. |
Having these three things:
 | GUI Maps |
 | GUI Automation Test Framework |
 | GUI Test Facade |
I finally got a very robust set of GUI Tests.
(Please see also an evaluation
report of the same author).
|