Test Levels

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


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


  • 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)


  • 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