PythonTestingToolsTaxonomy

Legacy Wiki Page

This page was migrated from the old MoinMoin-based wiki. Information may be outdated or no longer applicable. For current documentation, see python.org.

Join the Testing In Python (TIP) mailing list for Python testing tools discussions!

(!) This wiki page is originated from PyCheeseCake and it was originally created by Grig Gheorghiu

Unit Testing Tools

The following tools are not currently being developed or maintained as far as we can see. They are here for completeness, with last activity date and an indication of what documentation there is. If you know better, please edit.

Mock Testing Tools

See also here for a side-by-side syntax comparison between some of the more popular tools in this space.

Fuzz Testing Tools

According to Wikipedia, “fuzz testing” (or “fuzzing”) is a software testing technique whose basic idea is to attach the inputs of a program to a source of random data (“fuzz”). If the program fails (for example, by crashing, or by failing built-in code assertions), then there are defects to correct. The great advantage of fuzz testing is that the test design is extremely simple, and free of preconceptions about system behavior.

Web Testing Tools

First, let’s define some categories of Web testing tools:

  • Browser simulation tools: simulate browsers by implementing the HTTP request/response protocol and by parsing the resulting HTML

  • Browser automation tools: automate browsers by driving them for example via COM calls in the case of Internet Explorer, or XPCOM in the case of Mozilla

  • In-process or unit-test-type tools: call an application in the same process, instead of generating an HTTP request; so an exception in the application would go all the way up to the command runner (py.test, unittest, etc).

Acceptance/Business Logic Testing Tools

GUI Testing Tools

The following tools were being actively developed and maintained when this page was last edited, and have usable documentation.

The following tools are not currently being developed or maintained as far as we can see. They are here for completeness, with last activity date and an indication of what documentation there is. If you know better, please edit.

Source Code Checking Tools

Code Coverage Tools

Continuous Integration Tools

Although not properly a part of testing tools, continuous integration tools are nevertheless an important addition to a tester’s arsenal.

Automatic Test Runners

Tools that run tests automatically on file changes. Provides continuous feedback during development before continuous integration tools act on commits.

Test Fixtures

Miscellaneous Python Testing Tools