What can't be automated?
I've been able to automate anything I've needed to.
I think the "not everything can be automated" is a bit of a mis-statement. Given time, effort, and resource, EVERYTHING can be automated. The more accurate statement is "given a limited amount of resource, not everything can be automated." This would translate, as well, into something more on the lines of "not everything SHOULD be automated."
For example, I could probably automate, given time and effort and resource, all the UI of the application I have under test including all colors, fonts, backgrounds, component positions, etc. This would take hours, days, maybe even weeks. Meanwhile, a human being can sit down, pull up the application, and in just a few minutes with a quick look at the application, tell you if the general look-and-feel passes inspection. Can it be automated? Sure... but SHOULD it.What about hardware interfaces? Recently, I asked about the ability to automate the testing of scanning barcodes. Given a barcode displayed on screen, can I call or import code to read the barcode and return the results? Sure... lots of stuff out there. But what if I wanted to automate the actual interface between a hardware device that does the scanning and the software? Can I do that? Sure... but it would take a good bit of resource to write the code to mock up a simulation of the hardware. I could even go as extreme as grabbing some Lego Mindstorms and build a robotic arm to do the scanning. But, again, given the time, resource, and effort... SHOULD I.
So... yes, I think everything CAN be automated... but not everything WILL be due to resource... and, for the same reason, because of ROI, not everything SHOULD be.