- we track work (doesn't matter where), each story has a list of "acceptance criteria", for example: 'if a user logs in, there's a big red button in the middle of the screen, and if the user clicks on it, then it turns to green'
- there's one pull request per story
- each pull request contains end-to-end (or other, but mostly e2e) tests that prove that all ACs are addressed, for example the test logs in as a user, finds the button on the screen, clicks it, then checks whether it turned green
- even side effects like outgoing emails are verified
- if the reviewers can't find tests that prove that the ACs are met, then the PR is not merged
- practically no manual testing as anything that a manual tester would do is likely covered with automated tests
- no QA team
And we have a system that provides us a full report of all the tests and links between tests and tickets.
We run all the tests for all the pull requests, that's currently something like 5000 end-to-end test (that exercise the whole system) and much more other types of tests. One test run for one PR requires around 50 hours of CPU time to finish, so we use pretty big servers.
All this might sound a bit tedious, but this enables practically CICD for a medical system. The test suite is the most complete and valid specification for the system.
(we're hiring :) )