What are best practices to perform regression testing successfully in a waterfall and agile project?