title: What are the differences between unit tests, integration tests, smoke tests, and regression tests?
body: <p>What are unit tests, integration tests, smoke tests, and regression tests?  What are the differences between them and which tools can I use for each of them?</p>
  
  <p>For example, I use <a href="https://en.wikipedia.org/wiki/JUnit" rel="noreferrer">JUnit</a> and <a href="https://en.wikipedia.org/wiki/NUnit" rel="noreferrer">NUnit</a> for <em>unit testing</em> and <em>integration testing</em>. Are there any tools for the last two, <em>smoke testing</em> or <em>regression testing</em>?</p>