Developers and QA should be working together as a team.
While Developers totally focus on their Units Tests, they should also work closely work with the QA on the Acceptance/functional tests.
Ideally the QA should focus on automating Acceptance Tests/Functional Tests and keep pushing it to the code base. So testing becomes a continuous effort and not dependent on build handovers.
Exploratory Testing can be something that the QA/Dev can focus on builds where they identify.
If the quality of code and/or the product is important then yes its impossible to practice Scrum alone.
When we are producing code so fast, its humanly impossible to test at the end of sprint everything that has been built in the Sprint and the past.
Following eXtreme Programming helps them automate and build a regression test suite which acts as a safety net while developing.
The most important hindrance is the mindset. The teams need to understanding that testing is not a phase and needs to be done continuously throughout the development.
Also teams feel that a lot of effort goes in automating, but the teams should understand it as the Cost of Quality. Automating parallel to development helps them save a lot of time that the teams spend in fixing defects later in the lifecycle.