Functional testing or black box testing against some specification hasn’t caught much attention in the various open source communities yet. There have been a plethora of Unit Testing frameworks aiming at software developers, together with development methodologies like TDD and the agile programming discourse about it.
Functional testing on the other hand usually reflects highly labor intensive and divisive old industry practices. Specifications, programs and tests are likely written by entirely different parties, working in different departments or organizations. Companies with own test departments often also create their own tools, languages and testing frameworks which do not disseminate beyond the corporations boundary. Those tools are hardly assets, whereas the tests actually are. Understandably that the quality of tools/frameworks varies widely and tending somewhat to the poor end in my own experience.
A test tool can be split into various components. There might be a panel where test scenarios are created and test scripts are selected. Other panels display test results. It is necessary to perform communication to an external device, the SUT ( System Under Test ). Finally there needs to be a medium for writing test cases, perform analysis of data coming from the SUT and assembling new data being sent to the SUT. Python is well suited for this purpose but its role in functional testing can be improved using a couple of classes which support data analysis, synthesis and control of variation. One also often needs some numerical type which can serve the role of a bitmap e.g. preserve leading zeroes which are insiginificant numerically. This is where t3 comes into play.
t3 was successfully used by Python newbies and I firmly believe it is well suitable for the “average programmer”.