Software Quality Control at Belle II

Martin Ritter, Thomas Kuhr, Thomas Hauth, Timothy Gebhard, Michal Kristof, Christian Pulvermacher

Journal of Physics: Conference Series, Volume 898,


Cite this paper

@Article{         Ritter_2017,
  title         = {Software Quality Control at Belle {II}},
  author        = {Ritter, Martin and Kuhr, Thomas and Hauth, Thomas and
                  Gebhard, Timothy and Kristof, Michal and Pulvermacher,
  year          = {2017},
  month         = {10},
  journal       = {Journal of Physics: Conference Series},
  volume        = {898},
  pages         = {072029},
  doi           = {10.1088/1742-6596/898/7/072029},
  publisher     = {{IOP} Publishing}


Over the last seven years the software stack of the next generation B factory experiment Belle II has grown to over one million lines of C++ and Python code, counting only the part included in offline software releases. There are several thousand commits to the central repository by about 100 individual developers per year. To keep a coherent software stack of high quality that it can be sustained and used efficiently for data acquisition, simulation, reconstruction, and analysis over the lifetime of the Belle II experiment is a challenge.

A set of tools is employed to monitor the quality of the software and provide fast feedback to the developers. They are integrated in a machinery that is controlled by a buildbot master and automates the quality checks. The tools include different compilers, cppcheck, the clang static analyzer, valgrind memcheck, doxygen, a geometry overlap checker, a check for missing or extra library links, unit tests, steering file level tests, a sophisticated high-level validation suite, and an issue tracker. The technological development infrastructure is complemented by organizational means to coordinate the development.