Testing should be a collaboration of Development, QA, and Operations—aligned with the priorities of the line of business—within a coordinated, end-to-end quality process.
Tests should be logically-componentized, incremental, and repeatable; results must be deterministic and meaningful.
All tests need to be run at some point in the build pipeline, but not all tests need be run all the time.
Eliminate test data and environment constraints so that tests can run constantly and consistently in production-like environments.
To minimize false positives, minimize test maintenance, and more effectively validate use cases across modern systems with multi-tier architectures, teams should emphasize API testing over GUI testing.