Spätestens mit Erscheinen der Microsoft Visual Studio Team System 2005 Team Tester Edition wurde deutlich, dass Microsoft sich intensiv mit der Thematik beschäftigt, wie es den Entwicklern einfacher gemacht werden kann, Code zu testen.
Seit dem hat sich viel getan. Dass neben den bereits kommerziell verfügbaren Produkten aus der Visual Studio Reihe auch weitere Tools in den "Startlöchern" stehen, ist hingegen nicht vielen bekannt. Microsoft veröffentlicht aus dem Research-Bereich und den sog. DevLabs hin und wieder Tools und Programme, die sich noch in der Forschungsphase befinden. Es kommt allerdings auch vor, dass sie dabei bereits intern produktiv genutzt werden.
Highlights zum Thema Software-Testing:
Pex - Automatisiertes Whitebox Testing
Pex steht für Program Exploration. Es generiert automatisch Unit-Tests basierend auf bereits geschriebenem Code. Dabei analysiert es die Eingangsparameter der Methoden und erzeugt automatisch ein entsprechendes Set an Unit-Tests, das mittels Parametrisierung alle Codepfade durchläuft und damit eine hohe Codeabdeckung erreicht. Darüber hinaus liefert Pex einem wertvolle Hinweise. Bei einem String-Eingangsparameter ist es z.B. nicht gewollt, dass ein Null-Wert übergeben wird. Dennoch ist es möglich. Falls daraufhin nicht getestet wird, bietet Pex eine automatische Korrektur an. Mehr dazu hier.
CHESS - Aufspüren von Heisenbugs
Bei der Heisenbergschen Unschärferelation handelt es sich um eine Aussage der Quantenphysik, "[...] dass zwei Messgrößen eines Teilchens nicht immer gleichzeitig beliebig genau bestimmbar sind." Danach wurden die sog. Heisenbugs benannt. Kurzum: Fehler, die verschwinden, sobald man versucht sie aufzuspüren. Das kommt bevorzugt im Bereich des Multithreadings vor, bei dem erst durch die parallele Verarbeitung innerhalb des gleichen Zeitraumes Methoden sich gegenseitig in die Quere kommen. CHESS ist in der Lage, Threads zu visualisieren und derartige Probleme mittels automatisierter Testdurchläufe aufzuspüren. Mehr dazu hier.
Spec Explorer - Testfälle anhand visualisierbarer Softwaremodelle generieren
Das neuste Mitglied in der Testing-Familie auf DevLabs ist der Spec Explorer 2010. Hiermit lassen sich Modelle definieren anhand derer automatisch Testfälle generiert werden. So unspektakulär das auf den ersten Blick auch klingen mag: Laut Microsoft erreichen komplexe Softwareprojekte mit durchschnittlich 300 Testfällen eine Produktivitätssteigerung von 42% durch den Einsatz vom Spec Explorer gegenüber manuell erstellten Tests. Ein beeindruckendes Video dazu zeigt in aller Kürze, wie das funktioniert.