From one Vlad Losev (see this discussion ), when he actually worked at Google on a test product:
This restriction has been introduced to provide us some flexibility in our tests. One fine day, we can decide to change the implementation and rely on this assumption. [Then] a user code that does not match him may end up broken. Therefore, please try to save test case names without underscores.
So, even if you take a standards-based approach where rules are indicated by must and shall symbols, while recommendations should be indicated, you should follow the recommendations above to be more confident that your code will not be broken in the future.
Later in this discussion, it was also clear that some arguments with underscores can lead to names beginning with an underscore or containing two or more consecutive underscores, both of which are technically βinvalidβ in the user code (they are reserved for implementation).
source share