Well, while I certainly agree that this is perhaps a way off in terms of technical capability, that won't always be the case perhaps. I'm not talking about everyone learning to code, that's dead in the water.
But systems which allow business people to define their own acceptance and test criteria exist now - tools like Fitnesse, etc. I'm not saying this is feasible today, but a future can be envisaged where writing a repeatable test which determines whether a function works as desired is within the domain of less technical users.
If you let people without a development background write tests it's easy for them to say something to the effect of (X > 7) and (X < 4). More generally insuring that there are no conflicts in your requirements is a very hard problem.
But systems which allow business people to define their own acceptance and test criteria exist now - tools like Fitnesse, etc. I'm not saying this is feasible today, but a future can be envisaged where writing a repeatable test which determines whether a function works as desired is within the domain of less technical users.