NITB End to End testing

Mentor Holger Freyther
Skills C, Smalltalk, Python
Length 4-20 weeks


We have an existing simulated BTS written in Smalltalk. This should be used as a basis for building end to end tests. The benefit of a simulated environment is that compared to the real world it is trivial to inject failures at specific points on a deterministic basis. The second part of the end to end tests is to use a real BTS and a Modembank (16 GSM modems available through a single USB port) to execute the tests. This increases the test coverage to the BTS.

The goal is to increase the test coverage of the osmo-nitb and osmo-bsc application for normal GSM operations. A second goal is to improve the test framework itself to make it more easy to write test applications. The GNU coverage and lcov facilities can be used to determine code coverage after these tests. It should be possible to easily go from little to significant coverage in the tests.


The GNU Smalltalk FakeBTS is easy to install on Debian. One needs to add a new repository and then simply install the osmo-st-openbsc-test package and then can start writing tests. Example tests are included in the package and sourcecode itself.

The Modembank is supported by the ofono framework. This means that one can drive the GSM modem through dbus and e.g. use python/ruby/perl to invoke the dbus routines.