Tests are expensive and testing consumes 30-50% of time in the software development lifecycle.

Many tests need to be run at scale, for example, google runs 27 tests per minute. Also note that most tests do not fail. Executing all tests wastes resources, not all tests are equal. We want tests that fail to fail as fast as possible.