Unit Test, in the Agile world, is defined as a short program fragment written and maintained by the developers that are part of the product team, which demonstrates some small part of the product’s source code and checks the results. The outcome of a unit test is considered as binary: either it “passes”, if the program’s behavior demonstrates consistent, or it “fails” if unable to meet the requirements. Developers usually produce a large number of unit tests, called a “test suite”.


Also Known As

The term Unit Testing has a different meaning in the industry, and stands for an activity or phase in the classical Software Development Life Cycle, which distinguishes it from (for example) System Testing. These terms do not mean anything about automation. To avoid generating some confusion, some Agile authors stopped using the term “developer testing”, distinguishing it from “customer testing” and emphasizing the roles responsible for various types of testing.

Common Mistakes

The shifts in terminology have been generating a lot of confusion and debate about what “testing” really means in the Agile community.  Agile has become a strong practice among developers, on the use of automated checking procedures, what creates the tendency of criticize other forms of testing. (Particularly the ones made by professional testers). This work (which some Agile teams call “exploratory” testing) is no less or more important in an Agile context.


A team that relies on automation unit testing can expect some of the benefits of test-driven development, meaning that the defect rates will decrease.