by Kay Schluehr for
Functional or black box testing of embedded devices at their communication endpoints hasn’t caught much attention in the agile or open source communities, despite its prevalence in large parts of modern industries ranging from automotive to smartcards. When you have the opportunity to work in one of those industries you’ll easily get sucked into a confusing realm where large fractions of the R&D staff writes thousands of little test scripts using proprietary programming languages or in-house frameworks and tools which will never see the daylight. Archaic, committee designed programming languages like TTCN-3 which cannot deny their heritage from the Pascal era occasionally bubble up. Academic papers and PhD theses which cover functional testing are moving straight into model checking with UML and propose system architectures which can easily compete with Java Enterprise solutions. In short, it is a total mess and therefore very stimulating. Unlike the web programming Favela chic it has an old industry, Gothic high tech flavor of slowly disintegrating sites of the digital age.
In my talk I’ll approach functional testing (FT) from a Python angle using little more than a data structure that allows for data binding and continuous updates, a close relative of the venerable amb operator which goes back to Lisp inventor John McCarthy and a few Python decorators. I’ll show how to put them together to control variation of data consistently. I do not suggest to throw out test scripts, on the contrary, just write them with techniques better suited for covering large numbers of test cases. In the last part of my talk I’ll briefly introduce T3, a domain specific functional programming language, which I designed for FT. While T3 has been strongly influenced by Python and my explorative Python programming experiments it allows me to take a more radical stance and an independent synthesis. There will be hopefully some cross-fertilization between T3 and Python in the future.