Software testing is a process consisting of all life cycle activities, static and dynamic, concerned with planning, preparation and evaluation of software and related products to assure that they meet the requirements and fit for the purpose and detect defects. ~ Foundations of Software Testing, Dorothy Graham, Erik van Veenendal, Isabel Evans, Rex Black.