Automated Software Testing: Foundations, Applications and Challenges (Services and Business Process Reengineering)