Saturday, February 8, 2014

Variation in test terminology

When I observe conversations about testing with other engineers, I notice that latent disagreements about the meaning of testing terminology breaks the conversations. Latent, because people think they're talking about the same thing, but they are not.

Here are some examples:

"Integration Test" / "Integrated Test" - is there a difference?

  • I have tested Thing 1 and Thing 2 in isolation; now test that they work together.
  • A test for Thing 1, but Thing 2 is along for the ride.
  • I test the entire system, end to end.


"Unit Test"

  • Any test written by developers
  • A test that talks to the code directly (any size of "unit")
  • A test of a small portion of the code
  • A test of a single class, in isolation
  • A test of a single, tiny behavior


TDD

  • A practice where developers write automated tests
  • Tests get written before code
  • We look to tests for feedback on our code design
  • I follow a RED/GREEN/REFACTOR workflow

UI Test

    • I test my business rules by manipulating the UI
    • I test my program as a whole by manipulating the UI (assume the components are already tested)
    • I test my UI



    No comments: