In traditional software development, tests were often executed when development was complete, the application was declared dev-done, the feature set was frozen, or a similar statement. After declaring the development done, testing was performed, and often, a long period of going back and forth between testing and bug fixing started. The result was often that many bugs were still found after going live.
Shifting left is a testing principle that states that automated testing should be done earlier in the development process. If all activities involved with software development are drawn on a line from inception to release, then shifting left means moving automated testing activities closer to inception.
To do this, a wide selection of different types of tests are recognized—for example, unit tests, integration tests, and system tests. Different sources...