TYPES4STRINGS: Types For Strings
TYPES4STRINGS: Types For Strings
Weave: Österreich - Belgien - Deutschland - Luxemburg - Polen - Schweiz - Slowenien - Tschechien
Wissenschaftsdisziplinen
Informatik (100%)
Keywords
-
Strings,
Type Systems,
Automated Testing,
Type Grammar Inference
Zeichenketten (Strings)wie zum Beispiel Namen, Kreditkartennummern, E-Mail-Adressen, URLs, Bankkonten, Farbcodes und vieles mehrwerden von fast allen Computerprogrammen verarbeitet. Programmiersprachen bieten jedoch nur wenig Unterstützung, um zu überprüfen, ob der Inhalt dieser Strings auch tatsächlich den Erwartungen entspricht. Unerwartete Inhalte von Strings können nicht nur zu Funktionsfehlern führen, sondern sind auch häufige Angriffsvektoren für Cyberattacken. In diesem Projekt führen wir String-Typen ein: ein Mittel für Programmierer:innen um die gültigen Werte von Strings mit Hilfe von formalen Spezifikationen wie regulären Ausdrücken und Grammatiken zu beschreiben. Wir führen Verfahren ein, um zu spezifizieren, welche Mengen von Strings als Werte akzeptabel sind, und um zu prüfen, ob ein Programm in Bezug auf die spezifizierten String-Typen korrekt istnoch bevor das Programm veröffentlicht wurde und potentiell gefährlichen Strings ausgesetzt ist. Die formalen Sprachen, die zur Beschreibung dieser String-Typen verwendet werden, ermöglichen es außerdem, schnell Beispiele für gültige Programmeingaben zu erstellen. Da solche automatisch generierten formal gültigen Eingaben alle früh in einem Programm vorkommenden syntaktischen Integritätsprüfungen umgehen können, sind sie in der Lage, die inneren Schichten der Software zu erreichen. Hiermit wird ein massives automatisiertes Testen von Programmen ermöglichtsowohl bereits veröffentlichte als auch noch in der Entwicklung befindliche, um Fehler und Sicherheitsprobleme aufzudecken, die andernfalls tief verborgen blieben. Schließlich führen wir Mittel ein, um String-Typen automatisch aus Programcode und dessen Ausführungen zu erlernen. Wir können eine grobe aber korrekte Übersicht über mögliche Eingabestrings ableiten, in dem wir den Programquellcode statisch analysieren, und diese Übersicht dann durch automatisierte Tests weiter verfeinern. Eine solche automatische Typinferenz wird es Programmierer:innen leicht machen, String-Typen zu ihren Projekten hinzuzufügen.
- Technische Universität Wien - 100%
- Andreas Zeller, Universität des Saarlandes - Deutschland