I agree with the points above:
Some things that I faced in my projects and that we need to consider are:
- ExperienceThe experience that QA and DEV teams have, in the field, with the technology, etc
- Identify the risks
- Be clear on what will be tested and what will not be tested, otherwise, people can assume that some features have been features have been tested, and in the last minute the team has to do extra work in order to verify the features that were not tested early in the game
- Also, during the estimations need to consider the worst case-case if it is possible (if issues are found, if it is needed to do researches in order to understand the feature, the possibility of having some blockers)