Software Testing – As A Layered Cake Approach