Test Levels

The following indicates what each level of tests should be made up of:

Bronze

  • Trigger web requests to the application
  • PHPQA passes all tests, possibly with exceptions where needed

Silver

  • Generates PHPUnit coverage to PHPUnit's default threshold
  • Includes @covers on the Test class, but not individual methods
  • Where suppressions are added, inline documentation to explain them must be present
  • Infection unless impossible (TODO: clarify)

Gold

  • Include @covers on all test methods
  • Exceed PHPQA default configuration thresholds
  • No suppressions of PHPQA tests
  • Must include at least two of Small/Medium/Large tests for each class in the application