The move to agile has led many teams to adopt a pyramid testing strategy. The test automation pyramid strategy calls for automating tests at three different levels. Unit testing represents the base and biggest percentage of this test automation pyramid. Next comes, service layer, or API testing. And finally, GUI tests sit at the top. The pyramid looks something like this:

Automation frameworks provide guidelines to achieve beneficial results from test automation tools and automated testing activity. They establish a universal standard for testers to achieve the specific goals of the automated tests. The framework should be easy to maintain and easy to change. Consider dedicating the role of framework design and development to a dedicated, qualified tester. A poorly designed — or hard to maintain — framework causes problems even if you are using the right automation software tools. Poor planning and the failure to create or select the appropriate framework to guide test automation activity limits the benefits of automating tests.
I think we can all agree that automation is a critical part of any organization's software delivery pipeline, especially if you call yourself "agile." It's pretty intuitive that if you automate testing, your release cycles are going to get shorter. "So, if that's the case," you might say, "why don't we just automate everything?" There's a good reason: automation comes with a price.