The Five Essentials for Software Testing