Once you've built tools for building, testing, and deploying separately, the next problem is "how do I automatically connect these?" Having someone manually press "start testing" each time a build finishes, then "start deployment" each time testing passes, creates the tragedy where someone must stay awake until 3am before production release. CodePipeline is the tool that ends that tragedy. Once you define the flow "source change detection → build → test → approval → deploy," every subsequent code push automatically flows to production without manual intervention.
On the DVA-C02 exam, CodePipeline itself's syntax is not heavily tested