Methodologies for Test-Driven Development of OSGi enabled Embedded Devices
7
·
8
·
9
·
10
·
11
·
12
·
13
·
14
·
15
·
16
·
17
·
18
·
19
Marcus Harringer
Christine Mitterbauer
This tutorial introduces test-driven methodologies for developing OSGi-based [1]
Java ME [2] applications. We present a solution using the Eclipse IDE and a modified
version of the FitNesse testing framework [3]. FitNesse extends the Framework
for Integrated Tests (FIT) [4] with a wiki interface.
One of the main challenges when developing embedded systems is the fact that development and
execution take place on different platforms. Ideally, application code and corresponding automated tests
are executed on the target execution platform. Common practice, however, is that automated
tests are mostly performed on the development machine using simulators - tests on the target
platform are often performed manually.
Another challenge in software development is customer acceptance.
Developer understanding and customer expectation based on written requirement
specifications often differ drastically. These misunderstandings can result
in problems which are recognized fairly late in the development process, particularly
when acceptance tests are performed with the final software version only.
Why not encourage the customer to express his requirements and expectations as acceptance tests
in a human readable (while also executable) form ?
If this method is adpoted, developers are able to implement the software which fulfills the defined requirement
tests, and acceptance procedures become a verification process of the test execution.
FitNesse closes this gap by providing a wiki with an easy to learn markup language to
define acceptance tests and an extensible feature set to execute and verify these tests.
In this tutorial we present our modified version of FIT/FitNesse, called eFitNesse, a bundle that
enables OSGi applications to be tested via the FitNesse wiki interface. eFitNesse enables OSGi
applications that can either run on the development machine or on an embedded Java ME-enabled
target device. eFitNesse can be seamlessly integrated into the already available Eclipse
plug-in for FitNesse [5].
We discuss the extension of the FitNesse framework to enable
- Java ME
- Remote debugging
- Execution on the target platform
- Support for standard JUnit test cases to unify unit and acceptance testing within one framework and user interface
- Extendible system analysis feature with standard queries for system
properties or OSGi bundle states
We will also show live demonstrations for how to express acceptance tests within eFitNesse and test them on embedded
applications running on a Linux Gumstix device and a Windows Mobile smartphone.
Participants will benefit from our experiences in "real life" projects. We
will focus on practical aspects, look beyond the surface, and we will also discuss how to motivate
customers to define acceptance tests. All participants are invited to take away the eFitNesse
plug-in including the source code and some examples.
[1] Open Services Gateway Initiative:
http://www.osgi.org
[2] Java Micro Edition:
http://java.sun.com/javame/
[3] FitNesse acceptance testing framework:
http://www.fitnesse.org
[4] FIT testing framework:
http://fit.c2.com/
[5] Fitnesse Eclipse Plugin:
http://bandxi.com/
Marcus Harringer is a software engineer and consultant at MicroDoc GmbH in Munich focusing on embedded Java and OSGi development. Marcus was involved in the introduction of TDD within the MicroDoc development process. Marcus holds a M.S. degree in Computer Engineering from the University of Salzburg/Austria.
Christine Mitterbauer is a senior software engineer and authorized signatory at MicroDoc GmbH in Munich. She leads several OSGi-based customer projects especially in the embedded space. MicroDoc introduced Test-Driven Development within these projects and gained quite some experience in TDD. The mostly positive results lead to the adoption of TDD for all development processes within MicroDoc.