Index: trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/RequiredInefficientActionsRuleTest.java
===================================================================
--- trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/RequiredScrollRuleTest.java	(revision 1335)
+++ trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/RequiredInefficientActionsRuleTest.java	(revision 1493)
@@ -15,5 +15,5 @@
 package de.ugoe.cs.autoquest.usability;
 
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectDescription.SCROLL_REQUIRED;
+import static de.ugoe.cs.autoquest.usability.UsabilityDefectDescription.INEFFICIENT_ACTIONS;
 import static de.ugoe.cs.autoquest.usability.UsabilityDefectSeverity.HIGH;
 import static de.ugoe.cs.autoquest.usability.UsabilityDefectSeverity.INFO;
@@ -21,4 +21,5 @@
 import static de.ugoe.cs.autoquest.usability.UsabilityDefectSeverity.MEDIUM;
 
+import org.junit.Before;
 import org.junit.Test;
 
@@ -28,6 +29,14 @@
  *
  */
-public class RequiredScrollRuleTest extends AbstractUsabilityEvaluationTC {
-
+public class RequiredInefficientActionsRuleTest extends AbstractUsabilityEvaluationTC {
+
+    /**
+     *
+     */
+    @Before
+    public void setUp() {
+        UsabilityDefectSeverity.defaultCoverageQuantile = 0;
+    }
+    
     /**
      *
@@ -35,5 +44,5 @@
     @Test
     public void testWithNormalScroll_01() {
-        RequiredScrollRule rule = new RequiredScrollRule();
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
 
         // ===== check =====
@@ -56,5 +65,5 @@
     @Test
     public void testWithNormalScroll_02() {
-        RequiredScrollRule rule = new RequiredScrollRule();
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
 
         // ===== check =====
@@ -79,5 +88,5 @@
     @Test
     public void testWithNormalScroll_03() {
-        RequiredScrollRule rule = new RequiredScrollRule();
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
 
         // ===== check =====
@@ -91,5 +100,5 @@
         
         UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, SCROLL_REQUIRED) };
+            { new UsabilityDefect(HIGH, INEFFICIENT_ACTIONS) };
 
         assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
@@ -102,41 +111,366 @@
     @Test
     public void testWithNormalScroll_04() {
-        RequiredScrollRule rule = new RequiredScrollRule();
-
-        // ===== check =====
-        String spec =
-            "UserSession {" +
-            "  Sequence seq1 {" +
-            "    Scroll body {}" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Scroll body {}" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "}";
-        
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, SCROLL_REQUIRED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
-
-    }
-
-    /**
-     *
-     */
-    @Test
-    public void testOnlySeldomPreceededByScroll_01() {
-        RequiredScrollRule rule = new RequiredScrollRule();
-
-        // ===== check =====
-        String spec =
-            "UserSession {" +
-            "  Sequence seq1 {" +
-            "    Interaction elem1 {}" +
-            "    Interaction elem1 {}" +
-            "    Interaction elem1 {}" +
-            "    Scroll body {}" +
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    Interaction elem1 {}" +
+            "    Scroll body {}" +
+            "  }" +
+            "}";
+        
+        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
+            { new UsabilityDefect(HIGH, INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testWithNormalScroll_05() {
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    Scroll body {}" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Scroll body {}" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "}";
+        
+        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
+            { new UsabilityDefect(HIGH, INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testWithNormalScroll_06() {
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Scroll body {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Scroll body {}" +
+            "  }" +
+            "}";
+        
+        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
+            { new UsabilityDefect(HIGH, INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testScrollSeldomRequired_01() {
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Interaction elem1 {}" +
+            "    Interaction elem1 {}" +
+            "    Scroll body {}" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "}";
+        
+        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
+            { new UsabilityDefect(LOW, INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testScrollSeldomRequired_02() {
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 { }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 {" +
+            "      Scroll body {}" +
+            "    }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 {" +
+            "      Scroll body {}" +
+            "    }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "}";
+        
+        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
+            { new UsabilityDefect(MEDIUM, INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testScrollSeldomRequired_03() {
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 { }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 {" +
+            "      Scroll body {}" +
+            "    }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 {" +
+            "      Scroll body {}" +
+            "    }" +
+            "  }" +
+            "}";
+        
+        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
+            { new UsabilityDefect(MEDIUM, INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testScrollSeldomRequired_04() {
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 { }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 {}" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 {" +
+            "      Scroll body {}" +
+            "    }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 {" +
+            "      Scroll body {}" +
+            "    }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "}";
+        
+        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
+           { new UsabilityDefect(LOW, INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testScrollSeldomRequired_05() {
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 { }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 {" +
+            "      Scroll body {}" +
+            "    }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 {" +
+            "      Scroll body {}" +
+            "    }" +
+            "  }" +
+            "}";
+        
+        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
+           { new UsabilityDefect(LOW, INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testScrollSeldomRequired_06() {
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 { }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 { }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 { }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 {" +
+            "      Scroll body {}" +
+            "    }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "}";
+        
+        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
+            { new UsabilityDefect(INFO, INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testScrollSeldomRequired_07() {
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 { }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 { }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 { }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 {" +
+            "      Scroll body {}" +
+            "    }" +
+            "  }" +
+            "}";
+        
+        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
+            { new UsabilityDefect(INFO, INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testScrollSeldomRequired_08() {
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 { }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 { }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 { }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 {" +
+            "      Scroll body {}" +
+            "    }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 { }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 { }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 { }" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Optional opt1 { }" +
             "    Interaction elem1 {}" +
             "  }" +
@@ -153,154 +487,43 @@
      */
     @Test
-    public void testOnlySeldomPreceededByScroll_02() {
-        RequiredScrollRule rule = new RequiredScrollRule();
-
-        // ===== check =====
-        String spec =
-            "UserSession {" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 { }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 {" +
-            "      Scroll body {}" +
-            "    }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 {" +
-            "      Scroll body {}" +
-            "    }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "}";
-        
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(MEDIUM, SCROLL_REQUIRED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
-
-    }
-
-    /**
-     *
-     */
-    @Test
-    public void testOnlySeldomPreceededByScroll_03() {
-        RequiredScrollRule rule = new RequiredScrollRule();
-
-        // ===== check =====
-        String spec =
-            "UserSession {" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 { }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 {}" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 {" +
-            "      Scroll body {}" +
-            "    }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 {" +
-            "      Scroll body {}" +
-            "    }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "}";
-        
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-           { new UsabilityDefect(LOW, SCROLL_REQUIRED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
-
-    }
-
-    /**
-     *
-     */
-    @Test
-    public void testOnlySeldomPreceededByScroll_04() {
-        RequiredScrollRule rule = new RequiredScrollRule();
-
-        // ===== check =====
-        String spec =
-            "UserSession {" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 { }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 { }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 { }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 {" +
-            "      Scroll body {}" +
-            "    }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "}";
-        
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(INFO, SCROLL_REQUIRED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
-
-    }
-
-    /**
-     *
-     */
-    @Test
-    public void testOnlySeldomPreceededByScroll_05() {
-        RequiredScrollRule rule = new RequiredScrollRule();
-
-        // ===== check =====
-        String spec =
-            "UserSession {" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 { }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 { }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 { }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 {" +
-            "      Scroll body {}" +
-            "    }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 { }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 { }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 { }" +
-            "    Interaction elem1 {}" +
-            "  }" +
-            "  Sequence seq1 {" +
-            "    Optional opt1 { }" +
-            "    Interaction elem1 {}" +
+    public void testScrollSeldomRequired_09() {
+        RequiredInefficientActionsRule rule = new RequiredInefficientActionsRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 { }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 { }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 { }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 {" +
+            "      Scroll body {}" +
+            "    }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 { }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 { }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 { }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Optional opt1 { }" +
             "  }" +
             "}";
