Everybody knows the importance of finding defects and
finding those defects early. However, the key lies not in testing early and quickly.
This will only degrade the testing quality and the software.
The key to finding defects early is by ensuring testing team
is involved right from the start of the project and they understand the roles
and responsibilities in every phase of development.
Testing team has its own delivery cycle that starts from
requirements gathering and continues to the delivery of the project.
In requirements gathering phase, the testing team is
expected to understand the requirements. Review the documents for completeness;
identify any uncovered scenarios or scenarios that will never happen in real
life. These issues are categorized as requirement
defects. In parallel, they will also start working on the testing strategy
document.
During design phase, the testing team will ensure the test
strategy and approach documents are ready and they have the test scenarios
defined. The tester should be part of design reviews and try to determine any design defects that may not satisfy any
of the user flows.
During development phase, testing team will start creating
test cases and review those with stakeholders to ensure test coverage. Ensure any
data needs are fulfilled, exit and entry criteria are defined. They should also
review the unit test results and ensure the test case mapping is done with unit
test cases for everything back to requirements. This will help ensure unit test coverage.
As soon as the development is done, they should be in a
position to start testing. It is during this phase when they should find any major
defects in end to end related scenarios that could not be identified in any of
the earlier phases.
To summarize, if you are able to categorize the defects in
any of the above categories mentioned in bold, and the defect is identified
when that development phase is passed, then there is a scope for shift left,
and finding those defects earlier.