How Agile Bridges the Major Gaps between Development and Testing