[TIP] Difference between functional test and integration test

Michael Foord fuzzyman at voidspace.org.uk
Sun Feb 10 05:22:08 PST 2013

On 10 Feb 2013, at 03:43, John Wong <gokoproject at gmail.com> wrote:

> I am posting the same exact question on Stackexchange:  http://programmers.stackexchange.com/questions/186523/difference-between-functional-test-and-integration-test
> It's more nicely formatted. I have posted on here before on using mock so I figure I can try here as well (and people on this mailinglist are usually really really experienced programmers!)
> That being said, I really have a hard time differentiating functional test from integration test. 
> Sidenote: I understand people use different terms in different organization (ex. at Google they use small, medium and large instead of unittest, and integration test), but for most organizations, they enjoy using "standard terms".

I see there being three types of tests: unit tests, integration tests and functional tests.

* Unit tests test individual units of code (or units of behaviour) in isolation and with no external dependencies
* Integration tests test multiple parts of your application - e.g. testing database logic with a real database or that large parts of the application work when wired together
* Functional tests are *full stack* tests, testing your application externally from the point of view of a user

True unit tests are quite rare and most unit test suites consist of varying levels of integration tests. Integration tests usually use unit test infrastructure to run and its possible (indeed likely!) to debate about where the line between unit and integration testing lies.... Functional testing is a different beast and is often (but not necessarily) run using different tools and infrastructure.

All the best,


> Thanks!
> Yeukhon
> _______________________________________________
> testing-in-python mailing list
> testing-in-python at lists.idyll.org
> http://lists.idyll.org/listinfo/testing-in-python


May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing 

More information about the testing-in-python mailing list