Hyperparameter tuning and cross validation
Some of the popular ways of splitting of data that the user can validate a model:


Train-Test (Most popular)
Train-Test-Validation
Train-Test-Development
Train-Test-Dev-Val


Every way has their own pros and cons. There is no one-size-fits-all approach for getting a perfect model. Choice is typically made by the developer considering following factors:


Size of data 
Diversity of data
Computation budget
Efficiency
Necessity 


But I would recommend K-fold CV is the best way to go with the basic train-test split model. 

Thank you.