12.3.  Testen

12.3.1.  Fehlertypen

Typische Fehlertypen 

Fehlende Analysen (sin of omission)

Falsche Analysen (sin of commission)

Das System erzeugt falsche Wortformen und/oder falsche Analysen: Übergenerierung bzw. Überanalyse.

Welche Gründe kommen in Frage?

12.3.2.  Testmethoden

Testmethoden 

Manuelles Testen

Während dem Entwickeln werden in der Entwicklungsumgebung kleine Anfragen mit apply gemacht.

Kleine Experimente dienen zur Verifikation von Ansätzen.

Automatisches Testen

Systematisches Testen auf Vollständigkeit bzw. hohe Abdeckung und Korrektheit mit Hilfe der Laufzeit-Applikation (lookup) oder xfst und lexikalischen Testressourcen.

Regressions-Test 

Definition 12.3.1 (engl. regression test). Ein Regressionstest ist in der Softwareentwicklung ein Durchlauf von Testfällen durch ein System und einem Vergleich mit abgelegten korrekten Resultaten. Man bezweckt damit das Aufspüren von Nebenwirkungen, welche auf Grund von Modifikationen (Pflege, Änderung, Korrektur) von Software allenfalls eingeführt worden sind. Regressionstests werden meist vollständig automatisiert durchgeführt und evaluiert.

Abdeckungstestszenario im UNIX-Stil ▸▸▸ 

  1. Testkorpus nehmen
  2. Simples Tokenisieren zu vertikalisiertem Text
  3. Morphologische Analyse machen
  4. Unanalysierbare Wortformen filtern
  5. Nur Wortform in 1. Spalte ausgeben
  6. Alphabetisches Sortieren
  7. Format Häufigkeit-Wortform erzeugen
  8. Numerisches Sortieren (Häufigstes zuoberst)


$ cat mycorpus.txt |  \
  tr -sc "[:alpha:]" "[\n*]"  | \
  lookup mylanguage.fst  | \
  grep ’+?’  | \
  gawk ’{print $1}’  | \
  sort  | \
  uniq -c  | \
  sort -rnb  > failures.sorted

Hinweis: Das Symbol | in der UNIX-Shell lenkt den Output eines Werkzeugs um als Input des nachfolgenden Werkzeugs – so braucht es keine Zwischendateien. Der \ an Zeilenenden erlaubt einen langen Befehl auf mehreren Zeilen einzugeben.

Weitere Test- und Optimierungsmethoden