Below is a basic outline of SDLC stages for the water fall model:
Even if we use agile , devops or what ever, the basic stages remains the same
Problem with above waterfall approach:
Waiting for system implementation for testing to start eventually wastes the efforts of prior stages.
For instance,
assume a "travel blog app" development where one of the requirement was to be able to upload photos to the app. The developers made the implementation and moved for usability testing. But, in usability testing it was found that user wants to add multiple images in one go , but the app supports only single upload. Now the development should be refactored to include multiple upload and resize the frame accordingly.
This results in waste of time, money , and time to market.
On the other hand, if a experienced usability tester was involved during requirement gathering, UX design , and in each stage. Then multiple image upload use case would have been in initial requirement list only.
This results in more focused,fast and quality product
Best practice:
Have QA involved in all stages and levels like Requirement gathering, UX design ,unit test,integration test etc.
This allows to find defects in design or requirement itself, and there by avoids developing products with designs that had weaknesses in the first place and wasting time refactoring it