1

I've been researching the definition of functional testing and can't come across a concrete explanation and would appreciate some additional info to help reconcile this.

The two main ideas I have come across are:

  1. Functional Testing as a Testing Type and is comprised of the following Testing Levels: Unit Testing, Integration Testing, System Testing and Acceptance Testing.

enter image description here

  1. Functional Testing as a separate level from Unit Testing and Integration Testing (sometimes a subset of System Testing other times precedes it) that tests the product end-to-end with a Black-box approach. Purpose is to verify all functional specifications defined.

enter image description here

2 Answers2

2

Testing terminology is garbage. Everyone has their own terminology. Therefore even if you settle on one of the definitions, you should expect that others may not understand you.

Personally, I think we need to stick with the etymology that the term alludes to. Functional test means (to me) the fact that it checks business logic (functionality). We can write these tests on any level - Unit, System level, etc. It's a job of developers to determine where such test would be most effective.

But again - you'll hear people referring to Selenium tests when they say "Functional" %)

Also, I don't think that your 1st definition means that Functional Testing comprises of the levels. I think it means that it can be conducted on different levels. Which is similar to what I just wrote.

PS: Acceptance Testing is not a level either - it's the fact that you accept new code. As opposed to Regression Testing which checks that what previously worked keeps working. Though there is also a User Acceptance testing - which refers to end users playing with the system.

Stanislav Bashkyrtsev
  • 14,470
  • 7
  • 42
  • 45
  • This has definitely helped clear things up. The lack of a source of truth around these terms as you wrote definitely added to my frustration trying to organize all this information into something concrete. I agree that functional tests should be conducted in whatever level appropriate. Much appreciated. – Jeramie Hallyburton Feb 06 '18 at 21:47
1

Its about different types of testing classification.
In case 1 we got separation of functional and non-functional tests.
This classification about as what kind of cases are tested:
- in functional scenarios we check what system able to do and does it meets requirements. For example: is user able to authorize via facebook.
- in non-functional scenarios we check how system does is: is it secure enough? Is it clear and simple (UX, usability and so on)? What about optimization and performance?

In case 2 we got separation based on isolation level.
This classification about what part of our product is tested:
Are we testing separate code module, integration of two services or whole product?
In this classification functional tests are about level of abstraction, when we make tests of single business-scenario (user function).

Shoo
  • 43
  • 8