From Team 449 Wiki
There are two parts of robot software testing: automated unit testing and driver impact testing.
Automated unit tests should be used to test for software bugs. Driver impact testing should test for control issues and hardware and electrical problems.
A full complement of unit testing and driver impact testing should be run before every competition and outreach event.
Central Repo Testing
Unit tests should be written for every subsystem functionality (low level hardware access methods), and every command and command group in the central repo.
Central repo unit tests should be placed in the src/test/ directory. However, they should not be JUnit tests. They directly control subsystems and commands, however they must be run through a robot or project repo.