[TIP] Difference between functional test and integration test

Ned Batchelder ned at nedbatchelder.com
Sun Feb 10 10:10:54 PST 2013

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!

> Michael

More information about the testing-in-python mailing list