[TIP] Difference between functional test and integration test

holger krekel holger at merlinux.eu
Sun Feb 10 12:07:51 PST 2013

On Sun, Feb 10, 2013 at 13:10 -0500, Ned Batchelder wrote:
> On 2/10/2013 1:00 PM, Michael Williamson wrote:
> >On Sun, 10 Feb 2013 17:47:18 +0000
> >Michael Foord <michael at voidspace.org.uk> wrote:
> >
> >>On 10 Feb 2013, at 12:53, Ned Batchelder <ned at nedbatchelder.com>
> >>wrote:
> >>>This is a great example: "functional" usually means smaller than
> >>>"integration", and therefore, more tightly focused and runs quicker.
> >>I've "normally" seen those terms used the opposite way round. Do you
> >>have any references?
> >This is true of my experience as well. Whenever I've heard "functional
> >tests", they've meant exercising the entire system at once, such as
> >using Selenium to drive a web application or firing HTTP requests at
> >an HTTP endpoint. I've always found the term a bit vague though, so I
> >tend to prefer the term "end-to-end tests", or perhaps "system tests".
> >Although, depending on who you talk to, end-to-end tests are distinct
> >from system tests.
> Just to add to the confusion: I've only used "functional" to mean,
> "testing the function of something," that is, as opposed to
> performance testing, etc.  Surely the term should relate to the word
> "function" somehow, which means it's either 1) testing of individual
> functions in the code, or 2) testing functionality at any scale.  No
> one is proposing #1 (that's unit testing), so I say #2 is the only
> sensible definition.   Using the word "functional" for some level of
> size of code under test doesn't have any supportable etymology.  Or
> am I missing something?
> In any case, John (the OP): the terms do not have "standard"
> definitions, as you can see!

I don't think it's that confused anymore.  Wikipedia and C2 also agree
on the ordering of unit, integration and functional/system testing.


More information about the testing-in-python mailing list