Whys, Whats and Hows of Unit Testing