Level of detail in a Scenario versus the hassle and resource-cost of testing UI
Scenario: Installer Link When user enters "product.company.com" into a web browser Then a hyperlink is presented to 'ProductSetup.exe' TODO: There is nothing here about presentation, e.g., it could just be an ugly old-school <a> link without a label. Should the presentation be specified here as an And under Then or as a separate scenario? How much is more detailed testing worth in the first place, a question of balance, i.e. , how much value does adding extra presentation detail add versus the hassle and resource-cost of testing UI ?
Cel, As always, it depends. If there's a requirement that the link contain a label then obviously the test needs to check that a label exists (whether automated or not). Here are some of the possible things I'd consider with this scenario: Is the code dynamically generated or static? For a static "once and done" page, the mark 1 human eyeball might be your best test tool. For a page that dynamically generates the link, not so much: you'd probably be wanting to check that the link delivered the correct version of the installer. Implicit requirements - the scenario says "a web browser" - does this mean "any modern browser", or "any browser at all"? Is there a requirement that the page be accessible to text-only browsers? Text-to-speech? (and all the other interesting things that come with accessibility testing for disabled users) Touch screen? Mobile users? Preconditions - is this an internet page open to Joe Public, or is it an intranet page that should only be seen by authenticated users? Postconditions - does the link actually function? Is there a test scenario for that which depends on this test? Miscellaneous implied requirements: does the presentation of the link on the page match the styling of the rest of the page? As written, this test would pass with a bare-bones <a href="ProductSetup.exe">ProductSetup.exe</a> in the page, probably with blue underlining (or possibly purple as the default for a visited link). A link that looked like that would stick out in a bad way on a page that styled things differently and had all tags using classes. Is it in a sensible place on the page (an eyeball test: validating the general page layout)? The list really is endless. These are all things to consider - it's also quite possible that the scenario as stated is sufficient: it depends on who the users are and the context of the site and feature in test.