10. Unit Testing

Unit Testing ist bisher als selbstverständliche Praxis beim Programmieren noch nicht weit verbreitet. Ein Musterbeispiel ist Zope X3. Die neueste Zope - Version, siehe www.zope.org ist vollständig nach den Kriterien des XP programmiert worden. Jeder Prozedur ist eine Test-Prozedur zugeordnet, die genau die Funktionalität überprüft. Allzu oft passiert es gerade beim Prozess des Refactoring, daß Funktionalität verändert wurde.

zope:~/ZopeX3-3.0.0/Dependencies#  dtree
Initial directory = /home/zope/ZopeX3-3.0.0/Dependencies
+---BTrees-ZopeX3-3.0.0
|   +---BTrees
|   |   +---tests
+---Includes
+---RestrictedPython-ZopeX3-3.0.0
|   +---RestrictedPython
|   |   +---tests
+---ThreadedAsync-ZopeX3-3.0.0
|   +---ThreadedAsync
+---ZConfig-ZopeX3-3.0.0
|   +---ZConfig
|   |   +---components
|   |   |   +---basic
|   |   |   |   +---tests
|   |   |   +---logger
|   |   |   |   +---tests
|   |   +---scripts
|   |   +---tests
|   |   |   +---input
|   |   |   +---library
|   |   |   |   +---thing
|   |   |   |   |   +---extras
|   |   |   |   +---widget
.................
+---zope.app.cache-ZopeX3-3.0.0
|   +---zope.app.cache
|   |   +---browser
|   |   +---interfaces
|   |   +---tests
+---zope.app.dav-ZopeX3-3.0.0
|   +---zope.app.dav
|   |   +---ftests
|   |   +---tests
+---zope.app.debugskin-ZopeX3-3.0.0
|   +---zope.app.debugskin
+---zope.app.dtmlpage-ZopeX3-3.0.0
|   +---zope.app.dtmlpage
|       +---tests
+---zope.thread-ZopeX3-3.0.0
|   +---zope.thread
Total directories = 359
zope:~/ZopeX3-3.0.0/Dependencies#
Wie man sehen kann, sind Unit Tests inzwischen der Standard in der OpenSource - Bewegung. Immer mehr Teams setzen diese ein, weil die Softwarekomplexität immer höher wird, und immer mehr Code nach dem Refactoring eine veränderte Funktionalität aufweist, was nur UT entdecken können.