VoiceXML ist als W3C Standard eine etablierte Sprache zur Entwicklung sprachba- sierter Anwendungen. Es ist für Sprache das, was XHTML für grafisch aufbereitete Webseiten ist. So wäre es beispielsweise auch für nicht versierte Fachkräfte möglich, Anwendungen für eine Telefonanlage vollständig mit VoiceXML auf einfa- che Art und Weise zu programmieren. Die kommende VoiceXML 3.0 Version zielt aber auch auf Anwendung ohne Telefonie-Anbindung. Ein erster Schritt in diese Rich- tung ist der aktuell veröffentlichte MMI Standard zur Entwicklung multimodaler Anwendungen. Obwohl die Sprache ausgereift und insbesondere im Bereich Tele- fon-basierte Anwendungsentwicklung stark verbreitet ist, existieren nur wenige ausgefeilte Testwerkzeuge, die direkt für VoiceXML eingesetzt werden können. In der Regel müssen die Entwickler selber zum Telefonhörer greifen, um die korrekte Funktionsweise der Anwendung zu überprüfen. Gerade im Hinblick auf größere De- ployments ist dieses Verfahren aber ungeeignet.
2. Zu meiner Person
Fachinformatiker (IHK) – Anwendungsentwicklung
B.Sc. Produktionsmanagement (Wirtschaftsingenieur)
Software-Tester zertifiziert vom ISTQB®
Fedora Packages Maintainer mit >80 RPM-Paketen
Java-Python Bridges, dazu später mehr
AMQP für Python: Co-Maintainer bei Pika
LXQt: offizieller Spin seit Fedora 26 / Pakete seit F22 (03.2015)
Qt5-basierte Tools, z.B. NitroShare oder zuluCrypt
Spiele (wenige): besonders Schach
Test-Werkzeuge und sonstige nützliche Helferlein
Xfce Desktop
Benutzer seit Version 4.6 (oder früher?)
Übersetzungen (deutsch)
Tests & Bugfixes
3. 05.11.2017 Raphael Groner @ OpenRheinRuhr 2017 3
Worum geht es heute?
Telefonanwendungen, in denen ein Computer auf der anderen
Seite den Hörer abnimmt
Anwendungsbeispiele:
Call Center
Navigationssystem
Telefonbanking
Kinoreservierung
Pizza-Bestellung
11. 05.11.2017 Raphael Groner @ OpenRheinRuhr 2017 11
Interaktion Mensch - Computer
Wie geht sowas praktisch? Beispiel Home Automation.
Finde den Fehler:
13. 05.11.2017 Raphael Groner @ OpenRheinRuhr 2017 13
Interaktiver Benutzer im Mittelpunkt
Unterschied:
Natürliche Sprache (Mensch) und formale Sprache (Computer)
→ meist Erkennung an einzelnen Schlüsselwörtern
Beispiele: Dialekte wie Oxford-Englisch oder Schwäbisch, Betonungen und Emotionen
15. 05.11.2017 Raphael Groner @ OpenRheinRuhr 2017 15
Demo - VoiceXML
<?xml version="1.0" encoding="UTF-8"?>
<vxml xmlns="http://www.w3.org/2001/vxml" version="2.1">
<form>
<field name="answer">
<grammar src="yesno.srgs" type="application/srgs+xml"/>
<prompt>Do you like this example?</prompt>
<filled>
<if cond="answer=='yes'">
You like this example.
<else/>
You do not like this example.
</if>
</filled>
</field>
</form>
</vxml>
16. 05.11.2017 Raphael Groner @ OpenRheinRuhr 2017 16
Demo - TestCase
@Test
public void testInputYes() {
createConversation("yes");
supervisor.process();
}
@Test
public void testInputNoFail() {
createConversation("no");
boolean failed = false;
try {
supervisor.process();
} catch (AssertionFailedError e) {
failed = true;
}
Assert.assertEquals(true,failed);
}
private void createConversation(String answer) {
Conversation conversation = supervisor.init(call);
conversation.addOutput("Do you like this example?");
conversation.addInput(answer);
conversation.addOutput("You like this example.");
}
17. 05.11.2017 Raphael Groner @ OpenRheinRuhr 2017 17
Das Beispiel war zu einfach!
Komplexeres Beispiel: Bahnauskunft
„Rossau!“
http://youtu.be/AR4VKWVxmfg
18. 05.11.2017 Raphael Groner @ OpenRheinRuhr 2017 18
Ausblick: Geplante Erweiterungen (Ideensammlung)
Synchronisierter Durchlauf
Cucumber für BDD
Hamcrest für Pattern, XPath
Checkstyle, Code Reviews
Simulation anderer Engines / Browser / Umgebungen
Python API (ja, unbedingt!)
Webservice (HTTP/SOAP/XMPP)
Weg vom währenden Status als Proof of Concept (PoC)
Multimodale Erweiterungen außer nur Sprache
20. 05.11.2017 Raphael Groner @ OpenRheinRuhr 2017 20
Wichtige Standards (ISO) und Normen (IEEE)
ISO 9000
(Familie)
Zusammenfassung von Standards für das
Qualitätsmanagement (QM)
ISO 9001 Standardisierter Prozess für Zertifizierung im QM
IEEE 829 Gute Dokumentation von Softwaretest
IEEE 1008 Software Unit Tests
IEEE 1028 Reviews und Audits (Spezifikation & Zertifizierung)
Fortgeschrittene Zertifikatsstufen mit genormten Prozessen:
SPICE (ISO 15504), CMMI und ITIL
21. 05.11.2017 Raphael Groner @ OpenRheinRuhr 2017 21
Modelle für mehr Qualität in Software
„Testen, macht doch niemand!“ – Also Pause?
Bildquellen: Wikipedia, http://ecomputernotes.com
22. 05.11.2017 Raphael Groner @ OpenRheinRuhr 2017 22
Vielen Dank für die Aufmerksamkeit
Fragen?Fragen?
http://www.jvoicexml.org
voicexmlunit@email.de
Veröffentlichung:
ObjektSpektrum 04/2013
Erscheinung 28.06.2013