Difference between revisions of "Talk:GSoC Unit Testing"

m (3 revisions imported)
m (Matthew moved page GSoC Unit Testing to Talk:GSoC Unit Testing without leaving a redirect: This is a discussion page)
(No difference)

Latest revision as of 00:05, 7 September 2016

Unit Testing

Often only our testers find out problems days or weeks after changes are introduced. A very simple example: any bugs that affect only a fresh start (i.e. no existing config files) of SuperTuxKart might go unnoticed for a long time.

This project is about creating unit tests for SuperTuxKart and/or the addons/online server. Obviously there are some complications with a game like SuperTuxKart:

  • Many errors might depend on screen resolution (for example icons might be missing if the resolution is too small)
  • It is probably necessary to compare screenshots for certain type of errors (e.g. if certain objects are not rendered on screen), on the other hand screenshots might not be bitwise identical.
  • STK uses its own GUI implementation, so a way is needed to simulate things like mouse clicks etc.


Obviously you can use existing testing frameworks. Nevertheless this is probably the most complex suggested project. Before making a proposal for this project you need to do some good research to find out what can be done, has be done by other (and can be reused), and what is simply not possible. For example, errors in shaders might be impossible to test (unless you read back the rendered result and deal with potentially not bitwise identical results). For gui objects a screenshot would not be necessary, if instead the position and size of all widgets is compared. Still, it would be nice if in case of errors a screenshot could be produced which allow manual inspection if there is a problem or not.

Expect to touch a lot of STK code in order to be able to cover a significant part with unit tests. This is certainly not a project for beginners.