Test Driven Development (TDD) for User Interface (UI) with functional tests?

Try BDD, Behavior Driven Development It promotes writing specification stories which are then executed step by step stimulating the app to change it's state and verify the outcomes.

Try BDD, Behavior Driven Development. It promotes writing specification stories which are then executed step by step stimulating the app to change it's state and verify the outcomes. I use BDD scenarios to write UI code.

Business requests are described using BDD stories and then the functionality is being written to turn the stories i.e. Tests green.

– Steven Jan 11 '11 at 15:06 That's the beauty of BDD @Steven, specification expressed in BDD scenarios is executable. – Boris Pavlovi? Jan 11 '11 at 15:31.

Programmatic UI tests is a salvation when you want to be confident your UI does what expected. The UI tests are closer to BDD (behavior driven development) than to TDD. But the terminology is cloudy and however you call 'em they are useful!

I have got rather good experience using cucumber. I use it to test flex applications but it's mostly used to test web apps. Click the link!

The site have got really nice examples of methodology.

Programatic UI tests are a must, but I argue that they shouldn't be written before the code. – Bozho Jan 11 '11 at 14:12 It depends. I prefer to write 'em before the code.

This lets me progress in small understandable steps, stay focused and have something working all the time. The behavior descriptions make the communication with business owner, client, manager easier. Another use case which is less of BDD but more of functional testing is programming of visual components.

– Nek Jan 11 '11 at 14:20.

I've done Acceptance TDD with a UI. We would assert the common header and footer were used via xpath'ing for the appropriate ids. We also used xpath to assert the data appeared in the correct tag relative to whatever ids we used for basic layout and structure.

We would also assert the output page is valid html 4.01 strict.

Try combining BDD with TDD. BDD defines scenarios as interaction with gui (not implemented yet) while there is a "not implemented BDD-Step" (gray or red) Convert some not implemented BDD-Step of the current scenarion into running code Implement this step using tdd For more details see MSDN-Article Behavior-Driven Development with SpecFlow and WatiN. Altough the article is about asp.net the idea behind is universal.

ATDD is very useful if you have a very good grasp on how the UI should behave and also ensure that the cost of change to the functional tests that you build upfront is less. The biggest problem with doing this, of course, is most often the UI is not fully speced out. For example, if you are building a product, and are still doing rapid iterations of getting a UI that goes through a usability testing and the feedback incorporated, you do not want the baggage of fixing your functional tests with every small change to the UI.

Given that functional tests are generally slow, the feedback cycle is high and its very painful to keep them green with the changes to UI. I work on a product team where we had this exact same decision to make. A colleague of mine has summarized our final approach very well here.(Disclaimer: Please ignore the tool specific details there.

).

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions