2.1.5. Shift-Left Approach
The principle of early testing (see section 1.3) is sometimes referred to as shift-left because it is an
approach where testing is performed earlier in the SDLC. Shift-left normally suggests that testing should
be done earlier (e.g., not waiting for code to be implemented or for components to be integrated), but it
does not mean that testing later in the SDLC should be neglected.
There are some good practices that illustrate how to achieve a “shift-left” in testing, which include:
• Reviewing the specification from the perspective of testing. These review activities on
specifications often find potential defects, such as ambiguities, incompleteness, and
inconsistencies
• Writing test cases before the code is written and have the code run in a test harness during code
implementation
• Using CI and even better CD as it comes with fast feedback and automated component tests to
accompany source code when it is submitted to the code repository
• Completing static analysis of source code prior to dynamic testing, or as part of an automated
process
• Performing non-functional testing starting at the component test level, where possible. This is a
form of shift-left as these non-functional test types tend to be performed later in the SDLC when a
complete system and a representative test environment are available
A shift-left approach might result in extra training, effort and/or costs earlier in the process but is expected
to save efforts and/or costs later in the process.
For the shift-left approach it is important that stakeholders are convinced and bought into this concept.