In waterfall model the only mode of communication between different teams is documentation and if something goes wrong we have to develop everything again.
In contrast in agile development and testing run paralleley.So if even a small component is created like a login button then that is tested right away.
In agile there are various processes followed. The most famous process is scrum. In scrum there are runs are for one week or two.
The two week runs are called sprints. Sprints are a combination of 8-10 promised user stories (user requirements).
Spring product backlog has all the product backlogs.
Sprints run for 2 weeks. In these two weeks there are set of user stories. These user stories are actually test cases.
A particular user story can be like go to a given website ,enter username and password and click login. So developers are testers are working on same user stories.
So in two week sprint first developers will develop one user story and give to tester to tests after the two week sprint is done, fresh sprint will run for next 14 days with new set of user stories.
Assume there are 3 developers each working on 5 user stories for a total of 15 stories. Let us say after a day or two first developers develops 2 user stories and gives to tester, so tester tests them on same day and if there are any issues let the developer know. So within 15 days all user stories must be developed and run. So if we have a total of 45 user stories, first 15 will be completed in 15 days i.e in first sprint then in next sprint next 15 will be completed and in next 15 days the remaining 15 will be completed.
Instead of writing brd or frd etc there is a sprint planning meeting on day on one of sprint and then every day we have a daily standup meeting in which each team members mentions what they have done ,what they plan to do today and whether they need any inputs or is someting blocking them from moving forward.