Warning: I’ll simplify a lot in order to a) not write again everything what is already online b) not to have an answer which takes multiple pages.
Agility is a lot about collaboration, so for example programmers and testers working together. Having short feedback loops through frequent/early delivery doesn’t mean the “timelines” are any tougher.
SCRUM is a framework for managing product development; an Agile method, if you will. SCRUM is timeboxed, so the team aims to deliver content in a specified time. If testing is behind development, it’s recommended to use programmers to support testing.
Kanban (for software development) visualizes building the product, which aids deciding what to produce, when to produce it, and how much to produce. Kanban doesn’t limit time, but how much of certain kind of work is in progress in parallel. So if a lot of work in “stuck” in code review, the team doesn’t work on building more until that queue is taken care of.