title: The Agile Way: Integration Testing vs Functional Testing or both?
body: <p>I work in an office which has been doing Agile for a while now. We use Scrum for project management and mix in the engineering practices of XP. It works well and we are constantly learning lessons and refining our process.</p>
  
  <p>I would like to tell you about our usual practices for testing and get feedback on how this could be improved:</p>
  
  <p><strong>TDD: First Line of Defense</strong>
  We are quite religious about unit testing and I would say our developers are also experienced enough to write comprehensive tests and always isolate the SUT with mocks.</p>
  
  <p><strong>Integration Tests</strong>
  For our use, integration tests are basically the same as the unit tests just without using the mocks. This tends to catch a few issues which slipped through the unit tests. These tests tend to be difficult to read as they usually involve a lot or work in the <code>before_each</code> and <code>after_each</code> sections of the spec framework as the system has to often reach a certain state in order for the tests to be meaningful.</p>
  
  <p><strong>Functional Testing</strong>
  We usually do this in a structured, but manual fashion. We have played with Selenium and Windmill, which are cool, but for us at least not quite there yet.</p>
  
  <p>I would like to hear how anyone else is doing things. Do you think that if Integration Tests or Functional Testing are being done well enough the other can be disregarded?</p>