Testing should begin as early as possible in the lifecycle - after requirements are frozen (Option D) because this is when test planning and design can start with stable, clear specifications. Waiting until after coding (A), external design (B), or internal design (C) delays test preparation and increases the risk of requirement misunderstandings. Early testing saves cost and catches defects sooner.