Can you explain the difference between regression testing and smoke testing, and when you would implement each?