Index: trunk/quest-core-usability-test/src/test/java/de/ugoe/cs/quest/usability/TextInputStatisticsRuleTest.java
===================================================================
--- trunk/quest-core-usability-test/src/test/java/de/ugoe/cs/quest/usability/TextInputStatisticsRuleTest.java	(revision 475)
+++ trunk/quest-core-usability-test/src/test/java/de/ugoe/cs/quest/usability/TextInputStatisticsRuleTest.java	(revision 497)
@@ -8,10 +8,13 @@
 package de.ugoe.cs.quest.usability;
 
+import static de.ugoe.cs.quest.usability.UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO;
+import static de.ugoe.cs.quest.usability.UsabilityDefectDescription.TEXT_FIELD_INPUT_REPETITIONS;
+import static de.ugoe.cs.quest.usability.UsabilityDefectDescription.TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO;
+import static de.ugoe.cs.quest.usability.UsabilityDefectSeverity.HIGH;
+import static de.ugoe.cs.quest.usability.UsabilityDefectSeverity.INFO;
+import static de.ugoe.cs.quest.usability.UsabilityDefectSeverity.LOW;
+import static de.ugoe.cs.quest.usability.UsabilityDefectSeverity.MEDIUM;
+
 import org.junit.Test;
-
-import de.ugoe.cs.quest.usability.UsabilityDefect;
-import de.ugoe.cs.quest.usability.UsabilityDefectDescription;
-import de.ugoe.cs.quest.usability.UsabilityDefectSeverity;
-import de.ugoe.cs.quest.usability.UsabilityEvaluationManager;
 
 //-------------------------------------------------------------------------------------------------
@@ -37,14 +40,15 @@
     UsabilityEvaluationManager manager = new UsabilityEvaluationManager();
     
+    // ===== check =====
     String spec = "TextInput (bla) {}";
     UsabilityDefect[] expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO)
-    };
-    
-    assertUsabilityEvaluationResult
-      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
-    
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO)
+    };
+    
+    assertUsabilityEvaluationResult
+      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
+    
+    // ===== check =====
     spec =
       "Sequence {" +
@@ -54,11 +58,11 @@
     expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO)
-    };
-    
-    assertUsabilityEvaluationResult
-      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
-    
+      new UsabilityDefect(HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO)
+    };
+    
+    assertUsabilityEvaluationResult
+      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
+    
+    // ===== check =====
     spec =
       "Sequence {" +
@@ -71,11 +75,11 @@
     expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO)
-    };
-    
-    assertUsabilityEvaluationResult
-      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
-    
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO)
+    };
+    
+    assertUsabilityEvaluationResult
+      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
+    
+    // ===== check =====
     spec =
       "Selection {" +
@@ -88,11 +92,11 @@
     expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO)
-    };
-      
-    assertUsabilityEvaluationResult
-      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
-      
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO)
+    };
+      
+    assertUsabilityEvaluationResult
+      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
+      
+    // ===== check =====
     spec =
       "Iteration {" +
@@ -102,6 +106,5 @@
     expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO)
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO)
     };
       
@@ -109,4 +112,5 @@
       (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
         
+    // ===== check =====
     spec =
       "Sequence {" +
@@ -171,6 +175,5 @@
     expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO)
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO)
     };
     
@@ -190,4 +193,5 @@
     UsabilityEvaluationManager manager = new UsabilityEvaluationManager();
     
+    // ===== check =====
     String spec =
       "Sequence {" +
@@ -201,11 +205,11 @@
     UsabilityDefect[] expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.INFO, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO)
-    };
-    
-    assertUsabilityEvaluationResult
-      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
-    
+      new UsabilityDefect(LOW, TEXT_FIELD_INPUT_RATIO)
+    };
+    
+    assertUsabilityEvaluationResult
+      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
+    
+    // ===== check =====
     spec =
       "Sequence {" +
@@ -217,9 +221,28 @@
       "}";
         
+    expectedDefects = new UsabilityDefect[]
+    {
+      new UsabilityDefect(INFO, TEXT_FIELD_INPUT_RATIO)
+    };
+    
+    assertUsabilityEvaluationResult
+      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
+      
+    // ===== check =====
+    spec =
+      "Sequence {" +
+      "  Interaction {}" +
+      "  TextInput (a) {}" +
+      "  Interaction {}" +
+      "  Interaction {}" +
+      "  Interaction {}" +
+      "}";
+          
     expectedDefects = new UsabilityDefect[0];
-      
-    assertUsabilityEvaluationResult
-      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
         
+    assertUsabilityEvaluationResult
+      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
+        
+    // ===== check =====
     spec =
       "Selection {" +
@@ -233,11 +256,11 @@
     expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.INFO, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO)
-    };
-      
-    assertUsabilityEvaluationResult
-      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
-      
+      new UsabilityDefect(LOW, TEXT_FIELD_INPUT_RATIO)
+    };
+      
+    assertUsabilityEvaluationResult
+      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
+      
+    // ===== check =====
     spec =
       "Sequence {" +
@@ -316,11 +339,11 @@
     expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.INFO, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO)
-    };
-    
-    assertUsabilityEvaluationResult
-      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
-    
+      new UsabilityDefect(LOW, TEXT_FIELD_INPUT_RATIO)
+    };
+    
+    assertUsabilityEvaluationResult
+      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
+    
+    // ===== check =====
     spec =
       "Sequence {" +
@@ -397,5 +420,8 @@
       "}";
 
-    expectedDefects = new UsabilityDefect[0];
+    expectedDefects = new UsabilityDefect[]
+    {
+      new UsabilityDefect(INFO, TEXT_FIELD_INPUT_RATIO)
+    };
 
     assertUsabilityEvaluationResult
@@ -414,4 +440,5 @@
     UsabilityEvaluationManager manager = new UsabilityEvaluationManager();
     
+    // ===== check =====
     String spec =
       "Sequence {" +
@@ -447,8 +474,6 @@
     UsabilityDefect[] expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO),
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_REPETITIONS)
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS)
     };
     
@@ -456,4 +481,5 @@
       (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));   
 
+    // ===== check =====
     spec =
       "Sequence {" +
@@ -489,13 +515,12 @@
     expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO),
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_REPETITIONS)
-    };
-
-    assertUsabilityEvaluationResult
-      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
-
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS)
+    };
+
+    assertUsabilityEvaluationResult
+      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
+
+    // ===== check =====
     spec =
       "Sequence {" +
@@ -531,8 +556,6 @@
     expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO),
-      new UsabilityDefect
-        (UsabilityDefectSeverity.MEDIUM, UsabilityDefectDescription.TEXT_FIELD_INPUT_REPETITIONS)
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
+      new UsabilityDefect(MEDIUM, TEXT_FIELD_INPUT_REPETITIONS)
     };
 
@@ -540,4 +563,5 @@
       (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
  
+    // ===== check =====
     spec =
       "Sequence {" +
@@ -573,8 +597,6 @@
     expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO),
-      new UsabilityDefect
-        (UsabilityDefectSeverity.MEDIUM, UsabilityDefectDescription.TEXT_FIELD_INPUT_REPETITIONS)
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
+      new UsabilityDefect(MEDIUM, TEXT_FIELD_INPUT_REPETITIONS)
     };
 
@@ -582,4 +604,5 @@
       (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
    
+    // ===== check =====
     spec =
       "Sequence {" +
@@ -594,8 +617,6 @@
     expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO),
-      new UsabilityDefect
-        (UsabilityDefectSeverity.LOW, UsabilityDefectDescription.TEXT_FIELD_INPUT_REPETITIONS)
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
+      new UsabilityDefect(LOW, TEXT_FIELD_INPUT_REPETITIONS)
     };
 
@@ -603,4 +624,5 @@
       (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
      
+    // ===== check =====
     spec =
       "Sequence {" +
@@ -615,8 +637,6 @@
     expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO),
-      new UsabilityDefect
-        (UsabilityDefectSeverity.LOW, UsabilityDefectDescription.TEXT_FIELD_INPUT_REPETITIONS)
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
+      new UsabilityDefect(LOW, TEXT_FIELD_INPUT_REPETITIONS)
     };
 
@@ -624,4 +644,5 @@
       (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));
        
+    // ===== check =====
     spec =
       "Sequence {" +
@@ -636,8 +657,6 @@
     expectedDefects = new UsabilityDefect[]
     {
-      new UsabilityDefect
-        (UsabilityDefectSeverity.HIGH, UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO),
-      new UsabilityDefect
-        (UsabilityDefectSeverity.INFO, UsabilityDefectDescription.TEXT_FIELD_INPUT_REPETITIONS)
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
+      new UsabilityDefect(INFO, TEXT_FIELD_INPUT_REPETITIONS)
     };
 
@@ -647,3 +666,76 @@
   }
 
+  //-----------------------------------------------------------------------------------------------
+  /**
+   * TODO: comment
+   *
+   */
+  //-----------------------------------------------------------------------------------------------
+  @Test
+  public void testNoLetterOrDigitInput()
+  {
+    UsabilityEvaluationManager manager = new UsabilityEvaluationManager();
+    
+    // ===== check =====
+    String spec =
+      "Sequence {" +
+      "  TextInput (_a_b_c_) {}" +
+      "}";
+     
+    UsabilityDefect[] expectedDefects = new UsabilityDefect[]
+    {
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
+      new UsabilityDefect(HIGH, TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO)
+    };
+    
+    assertUsabilityEvaluationResult
+      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));   
+
+    // ===== check =====
+    spec =
+      "Sequence {" +
+      "  TextInput (12345_6789012345) {}" +
+      "}";
+     
+    expectedDefects = new UsabilityDefect[]
+    {
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
+      new UsabilityDefect(MEDIUM, TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO)
+    };
+    
+    assertUsabilityEvaluationResult
+      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));   
+
+    // ===== check =====
+    spec =
+      "Sequence {" +
+      "  TextInput (123456789012345678901234567890_123456789012345) {}" +
+      "}";
+     
+    expectedDefects = new UsabilityDefect[]
+    {
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
+      new UsabilityDefect(LOW, TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO)
+    };
+    
+    assertUsabilityEvaluationResult
+      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));   
+
+    // ===== check =====
+    spec =
+      "Sequence {" +
+      "  TextInput (1234567890123456789012345678901234567890123456789_01234567890" +
+      "12345678901234567890123456789012345) {}" +
+      "}";
+     
+    expectedDefects = new UsabilityDefect[]
+    {
+      new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
+      new UsabilityDefect(INFO, TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO)
+    };
+    
+    assertUsabilityEvaluationResult
+      (expectedDefects, manager.evaluateUsability(createTaskTree(spec)));   
+
+  }
 }
Index: trunk/quest-core-usability-test/src/test/java/de/ugoe/cs/quest/usability/UsabilityDefectDescriptionTest.java
===================================================================
--- trunk/quest-core-usability-test/src/test/java/de/ugoe/cs/quest/usability/UsabilityDefectDescriptionTest.java	(revision 475)
+++ trunk/quest-core-usability-test/src/test/java/de/ugoe/cs/quest/usability/UsabilityDefectDescriptionTest.java	(revision 497)
@@ -8,5 +8,6 @@
 package de.ugoe.cs.quest.usability;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
 
 import java.util.HashMap;
@@ -14,6 +15,4 @@
 
 import org.junit.Test;
-
-import de.ugoe.cs.quest.usability.UsabilityDefectDescription;
 
 //-------------------------------------------------------------------------------------------------
