explain validation testing in software engineering