In case of the ACE program, it's a program so can indeed have bugs. But at least then we only have to verify the implementation of a single program, instead of all of them.
There are other differences in approach. In Gherkin, a programmer needs to implement the test for each step manually. This has a risk of introducing bugs. To reduce that risk, Ace translates to an ethereum contract as well as a test suite.
It is not always possible to generate a complete contract. In that case a programmer has to fill in the operational details.
However, it is always possible to generate an executable test suite. This guarantees that an implementation can always be checked to conform to the contract as specified in ACE.
So any "error" (i.e. disagreement between the contract parties) when executing the contract can be traced back to: - an "error" in the ace contract (the parties agreeing to the contract should decide what to do) - an error in the ace implementation (ace has to be open source to minimise the risks here, just like the bitcoin an ethereum software)