At project where I work there is registration form. I think it's difficult to review features not knowing what system they are about so I wrote it for similar Google registration (
https://accounts.google.com/SignUp):
Problems I know about:
1. There are a lot of other scenarios about negative cases. Should they exist? Should they be here or in a separate feature? Note that there are probably a lot of other negative scenarios not written here.
2. Currently I plan to setup @error_message at automation layer. It will be retrieved using the same internationalization XML file used in code. Then it will be used in "Then I get an error message about it". Is it good? I did to remove duplication between code and features.
3. Scenario "Required fields are actually required" is used for different error messages so I should put some logic into automation layer. Will it be better to write different scenarios for different error messages?
4. Some steps have details that naturally aren't needed there (e.g. "Given I filled password at registration page." "registration page" isn't naturally needed here). I do this as there is no step definition scoping in Cucumber. I don't see how can I deal with steps "Given I filled password" at automation layer if there are many password fields at different pages.
Could you review this feature for other pitfails and express your opinion?