Manual testing takes more effort and cost than automated testing. It is more boring and provides limited visibility compared to automated testing. Automated tests can test individual units of code, are reusable, and provide a safety net for refactoring. They also ensure all tests are run, drive clean design, and do not create code clutter like manual tests. However, the initial learning curve and effort to set up automated testing prevents some from adopting it. With proper tooling and process, these barriers can be overcome.