Index: trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/AbstractUsabilityEvaluationTC.java
===================================================================
--- trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/AbstractUsabilityEvaluationTC.java	(revision 1778)
+++ trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/AbstractUsabilityEvaluationTC.java	(revision 1918)
@@ -73,24 +73,24 @@
      *
      */
-    protected void assertUsabilityEvaluationResult(UsabilityDefect[]         expectedDefects,
+    protected void assertUsabilityEvaluationResult(UsabilitySmell[]         expectedSmells,
                                                    UsabilityEvaluationResult evaluationResult)
     {
-        assertEquals(evaluationResult.getAllDefects().toString(),
-                     expectedDefects.length, evaluationResult.getAllDefects().size());
+        assertEquals(evaluationResult.getAllSmells().toString(),
+                     expectedSmells.length, evaluationResult.getAllSmells().size());
 
         EXPECTED_DEFECT_ITERATION:
-        for (UsabilityDefect expectedDefect : expectedDefects) {
-            for (UsabilityDefect defect : evaluationResult.getAllDefects()) {
-                if (expectedDefect.equals(defect)) {
-                    System.err.println(defect.getParameterizedDescription());
+        for (UsabilitySmell expectedSmell : expectedSmells) {
+            for (UsabilitySmell smell : evaluationResult.getAllSmells()) {
+                if (expectedSmell.equals(smell)) {
+                    System.err.println(smell.getParameterizedDescription());
                     continue EXPECTED_DEFECT_ITERATION;
                 }
             }
 
-            for (UsabilityDefect defect : evaluationResult.getAllDefects()) {
-                System.err.println(defect);
+            for (UsabilitySmell smell : evaluationResult.getAllSmells()) {
+                System.err.println(smell);
             }
 
-            fail("expected defect " + expectedDefect + " not found in evaluation result");
+            fail("expected smell " + expectedSmell + " not found in evaluation result");
         }
     }
Index: trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/CommonTaskRateRuleTest.java
===================================================================
--- trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/CommonTaskRateRuleTest.java	(revision 1918)
+++ trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/CommonTaskRateRuleTest.java	(revision 1918)
@@ -0,0 +1,290 @@
+//   Copyright 2012 Georg-August-Universität Göttingen, Germany
+//
+//   Licensed under the Apache License, Version 2.0 (the "License");
+//   you may not use this file except in compliance with the License.
+//   You may obtain a copy of the License at
+//
+//       http://www.apache.org/licenses/LICENSE-2.0
+//
+//   Unless required by applicable law or agreed to in writing, software
+//   distributed under the License is distributed on an "AS IS" BASIS,
+//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//   See the License for the specific language governing permissions and
+//   limitations under the License.
+
+package de.ugoe.cs.autoquest.usability;
+
+import static de.ugoe.cs.autoquest.usability.UsabilitySmellDescription.COMMON_TASK_RATE;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import de.ugoe.cs.autoquest.usability.UsabilitySmell;
+
+/**
+ *
+ */
+public class CommonTaskRateRuleTest extends AbstractUsabilityEvaluationTC {
+
+    /**
+     *
+     */
+    @Before
+    public void setUp() {
+        //UsabilitySmellIntensity.defaultCoverageQuantile = 0;
+    }
+    
+    /**
+     *
+     */
+    @Test
+    public void testNoTaskCoverage_01() {
+        CommonTaskRateRule rule = new CommonTaskRateRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Interaction elem1 {}" +
+            "  Interaction elem2 {}" +
+            "}";
+        
+        // no smell expected, as there are too few recorded actions
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] { };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+    
+    /**
+     *
+     */
+    @Test
+    public void testNoTaskCoverage_02() {
+        CommonTaskRateRule rule = new CommonTaskRateRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Interaction elem1 {}" +
+            "  Interaction elem2 {}" +
+            "  Interaction elem3 {}" +
+            "  Interaction elem4 {}" +
+            "  Interaction elem5 {}" +
+            "  Interaction elem6 {}" +
+            "  Interaction elem7 {}" +
+            "  Interaction elem8 {}" +
+            "  Interaction elem9 {}" +
+            "  Interaction elem10 {}" +
+            "}";
+        
+        // smell expected, as for each action a different root node exists
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(UsabilitySmellIntensity.getIntensity(0), COMMON_TASK_RATE) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+    
+    /**
+     *
+     */
+    @Test
+    public void testBadTaskCoverage_01() {
+        CommonTaskRateRule rule = new CommonTaskRateRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Iteration it1 {" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Iteration it2 {" +
+            "    Interaction elem2 {}" +
+            "  }" +
+            "  Iteration it3 {" +
+            "    Interaction elem3 {}" +
+            "  }" +
+            "  Iteration it4 {" +
+            "    Interaction elem4 {}" +
+            "  }" +
+            "  Iteration it5 {" +
+            "    Interaction elem5 {}" +
+            "  }" +
+            "  Iteration it6 {" +
+            "    Interaction elem6 {}" +
+            "  }" +
+            "  Iteration it7 {" +
+            "    Interaction elem7 {}" +
+            "  }" +
+            "  Iteration it8 {" +
+            "    Interaction elem8 {}" +
+            "  }" +
+            "  Iteration it9 {" +
+            "    Interaction elem9 {}" +
+            "  }" +
+            "  Iteration it10 {" +
+            "    Interaction elem10 {}" +
+            "  }" +
+            "}";
+        
+        // smell expected, as for each action a different root node exists
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(UsabilitySmellIntensity.getIntensity(0), COMMON_TASK_RATE) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+    
+    /**
+     *
+     */
+    @Test
+    public void testBadTaskCoverage_02() {
+        CommonTaskRateRule rule = new CommonTaskRateRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    Interaction elem1 {}" +
+            "    Interaction elem2 {}" +
+            "  }" +
+            "  Iteration it3 {" +
+            "    Interaction elem3 {}" +
+            "  }" +
+            "  Iteration it4 {" +
+            "    Interaction elem4 {}" +
+            "  }" +
+            "  Iteration it5 {" +
+            "    Interaction elem5 {}" +
+            "  }" +
+            "  Iteration it6 {" +
+            "    Interaction elem6 {}" +
+            "  }" +
+            "  Iteration it7 {" +
+            "    Interaction elem7 {}" +
+            "  }" +
+            "  Iteration it8 {" +
+            "    Interaction elem8 {}" +
+            "  }" +
+            "  Iteration it9 {" +
+            "    Interaction elem9 {}" +
+            "  }" +
+            "  Iteration it10 {" +
+            "    Interaction elem10 {}" +
+            "  }" +
+            "}";
+        
+        // smell expected, as for many actions a different root node exists
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(UsabilitySmellIntensity.getIntensity(0), COMMON_TASK_RATE) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+    
+    /**
+     *
+     */
+    @Test
+    public void testBadTaskCoverage_03() {
+        CommonTaskRateRule rule = new CommonTaskRateRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Iteration it1 {" +
+            "    Interaction elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Interaction elem2 {}" +
+            "    Interaction elem3 {}" +
+            "  }" +
+            "  Iteration it4 {" +
+            "    Interaction elem4 {}" +
+            "  }" +
+            "  Iteration it5 {" +
+            "    Interaction elem5 {}" +
+            "  }" +
+            "  Iteration it6 {" +
+            "    Interaction elem6 {}" +
+            "  }" +
+            "  Iteration it7 {" +
+            "    Interaction elem7 {}" +
+            "  }" +
+            "  Iteration it8 {" +
+            "    Interaction elem8 {}" +
+            "  }" +
+            "  Iteration it9 {" +
+            "    Interaction elem9 {}" +
+            "  }" +
+            "  Iteration it10 {" +
+            "    Interaction elem10 {}" +
+            "  }" +
+            "}";
+        
+        // smell expected, as for many actions a different root node exists
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(UsabilitySmellIntensity.getIntensity(0), COMMON_TASK_RATE) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testPerfectTaskCoverage_01() {
+        CommonTaskRateRule rule = new CommonTaskRateRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    Interaction elem1 {}" +
+            "    Interaction elem2 {}" +
+            "    Interaction elem3 {}" +
+            "    Interaction elem4 {}" +
+            "    Interaction elem5 {}" +
+            "    Interaction elem6 {}" +
+            "    Interaction elem7 {}" +
+            "    Interaction elem8 {}" +
+            "    Interaction elem9 {}" +
+            "    Interaction elem10 {}" +
+            "  }" +
+            "}";
+        
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] { };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testPerfectTaskCoverage_02() {
+        CommonTaskRateRule rule = new CommonTaskRateRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    Interaction elem1 {}" +
+            "    Interaction elem2 {}" +
+            "    Interaction elem3 {}" +
+            "    Interaction elem4 {}" +
+            "    Interaction elem5 {}" +
+            "    Interaction elem6 {}" +
+            "    Interaction elem7 {}" +
+            "    Interaction elem8 {}" +
+            "    Interaction elem9 {}" +
+            "    Interaction elem10 {}" +
+            "    Interaction elem11 {}" +
+            "    Interaction elem12 {}" +
+            "    Interaction elem13 {}" +
+            "  }" +
+            "}";
+        
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] { };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+    
+}
Index: trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/DataEntryMethodChangeRuleTest.java
===================================================================
--- trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/DataEntryMethodChangeRuleTest.java	(revision 1918)
+++ trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/DataEntryMethodChangeRuleTest.java	(revision 1918)
@@ -0,0 +1,266 @@
+//   Copyright 2012 Georg-August-Universität Göttingen, Germany
+//
+//   Licensed under the Apache License, Version 2.0 (the "License");
+//   you may not use this file except in compliance with the License.
+//   You may obtain a copy of the License at
+//
+//       http://www.apache.org/licenses/LICENSE-2.0
+//
+//   Unless required by applicable law or agreed to in writing, software
+//   distributed under the License is distributed on an "AS IS" BASIS,
+//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//   See the License for the specific language governing permissions and
+//   limitations under the License.
+
+package de.ugoe.cs.autoquest.usability;
+
+import static de.ugoe.cs.autoquest.usability.UsabilitySmellDescription.DATA_ENTRY_METHOD_CHANGE;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import de.ugoe.cs.autoquest.usability.UsabilitySmell;
+
+/**
+ *
+ */
+public class DataEntryMethodChangeRuleTest extends AbstractUsabilityEvaluationTC {
+
+    /**
+     *
+     */
+    @Before
+    public void setUp() {
+        //UsabilitySmellIntensity.defaultCoverageQuantile = 0;
+    }
+    
+    /**
+     *
+     */
+    @Test
+    public void testNoEntryMethodChange_01() {
+        DataEntryMethodChangeRule rule = new DataEntryMethodChangeRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Interaction elem1 {}" +
+            "  Interaction elem1 {}" +
+            "}";
+        
+        // no smell expected, as there are no changes between mouse and keyboard
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] {  };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+    
+    /**
+     *
+     */
+    @Test
+    public void testNoEntryMethodChange_02() {
+        DataEntryMethodChangeRule rule = new DataEntryMethodChangeRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    Interaction elem1 {}" +
+            "    Interaction elem2 {}" +
+            "  }" +
+            "}";
+        
+        // no smell expected, as there are no changes between mouse and keyboard
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] {  };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+    
+    /**
+     *
+     */
+    @Test
+    public void testNoEntryMethodChange_03() {
+        DataEntryMethodChangeRule rule = new DataEntryMethodChangeRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    MouseClick elem1 {}" +
+            "    MouseClick elem2 {}" +
+            "  }" +
+            "}";
+        
+        // no smell expected, as there are no changes between mouse and keyboard
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] {  };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+    
+    /**
+     *
+     */
+    @Test
+    public void testNoEntryMethodChange_04() {
+        DataEntryMethodChangeRule rule = new DataEntryMethodChangeRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    TextInput elem1 {}" +
+            "    TextInput elem2 {}" +
+            "  }" +
+            "}";
+        
+        // no smell expected, as there are no changes between mouse and keyboard
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] {  };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testEntryMethodChange_01() {
+        DataEntryMethodChangeRule rule = new DataEntryMethodChangeRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    MouseClick elem1 {}" +
+            "    TextInput elem2 {}" +
+            "  }" +
+            "}";
+        
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(UsabilitySmellIntensity.getIntensity(0),
+                                  DATA_ENTRY_METHOD_CHANGE) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testEntryMethodChange_02() {
+        DataEntryMethodChangeRule rule = new DataEntryMethodChangeRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    TextInput elem1 {}" +
+            "    MouseClick elem2 {}" +
+            "  }" +
+            "}";
+        
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(UsabilitySmellIntensity.getIntensity(0),
+                                  DATA_ENTRY_METHOD_CHANGE) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testEntryMethodChange_03() {
+        DataEntryMethodChangeRule rule = new DataEntryMethodChangeRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    Selection sel1 {" +
+            "      TextInput elem2 {}" +
+            "    }" +
+            "    MouseClick elem1 {}" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    Selection sel1 {" +
+            "      MouseClick elem2 {}" +
+            "    }" +
+            "    MouseClick elem1 {}" +
+            "  }" +
+            "}";
+        
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(UsabilitySmellIntensity.getIntensity(0),
+                                  DATA_ENTRY_METHOD_CHANGE) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testEntryMethodChange_04() {
+        DataEntryMethodChangeRule rule = new DataEntryMethodChangeRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence seq1 {" +
+            "    MouseClick elem1 {}" +
+            "    Selection sel1 {" +
+            "      TextInput elem2 {}" +
+            "    }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    MouseClick elem1 {}" +
+            "    Selection sel1 {" +
+            "      MouseClick elem2 {}" +
+            "    }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    MouseClick elem1 {}" +
+            "    Selection sel1 {" +
+            "      MouseClick elem2 {}" +
+            "    }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    MouseClick elem1 {}" +
+            "    Selection sel1 {" +
+            "      MouseClick elem2 {}" +
+            "    }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    MouseClick elem1 {}" +
+            "    Selection sel1 {" +
+            "      MouseClick elem2 {}" +
+            "    }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    MouseClick elem1 {}" +
+            "    Selection sel1 {" +
+            "      MouseClick elem2 {}" +
+            "    }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    MouseClick elem1 {}" +
+            "    Selection sel1 {" +
+            "      MouseClick elem2 {}" +
+            "    }" +
+            "  }" +
+            "  Sequence seq1 {" +
+            "    MouseClick elem1 {}" +
+            "    Selection sel1 {" +
+            "      MouseClick elem2 {}" +
+            "    }" +
+            "  }" +
+            "}";
+        
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(UsabilitySmellIntensity.getIntensity(0),
+                                  DATA_ENTRY_METHOD_CHANGE) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+}
Index: trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/DefaultValueRuleTest.java
===================================================================
--- trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/DefaultValueRuleTest.java	(revision 1918)
+++ trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/DefaultValueRuleTest.java	(revision 1918)
@@ -0,0 +1,305 @@
+//   Copyright 2012 Georg-August-Universität Göttingen, Germany
+//
+//   Licensed under the Apache License, Version 2.0 (the "License");
+//   you may not use this file except in compliance with the License.
+//   You may obtain a copy of the License at
+//
+//       http://www.apache.org/licenses/LICENSE-2.0
+//
+//   Unless required by applicable law or agreed to in writing, software
+//   distributed under the License is distributed on an "AS IS" BASIS,
+//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//   See the License for the specific language governing permissions and
+//   limitations under the License.
+
+package de.ugoe.cs.autoquest.usability;
+
+import static de.ugoe.cs.autoquest.usability.UsabilitySmellDescription.GOOD_DEFAULTS;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import de.ugoe.cs.autoquest.usability.UsabilitySmell;
+
+/**
+ *
+ */
+public class DefaultValueRuleTest extends AbstractUsabilityEvaluationTC {
+
+    /**
+     *
+     */
+    @Before
+    public void setUp() {
+        //UsabilitySmellIntensity.defaultCoverageQuantile = 0;
+    }
+    
+    /**
+     *
+     */
+    @Test
+    public void testNoValueSelections_01() {
+        DefaultValueRule rule = new DefaultValueRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Interaction elem1 {}" +
+            "  Interaction elem1 {}" +
+            "}";
+        
+        // no smell expected, as there are no value selections
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] {  };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+    
+    /**
+     *
+     */
+    @Test
+    public void testNoValueSelections_02() {
+        DefaultValueRule rule = new DefaultValueRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    Interaction elem1 {}" +
+            "    Interaction elem2 {}" +
+            "  }" +
+            "}";
+        
+        // no smell expected, as there are no value selections
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] {  };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+    
+    /**
+     *
+     */
+    @Test
+    public void testNoValueSelections_03() {
+        DefaultValueRule rule = new DefaultValueRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    MouseClick elem1 {}" +
+            "    MouseClick elem2 {}" +
+            "  }" +
+            "}";
+        
+        // no smell expected, as there are no value selections
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] {  };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testSeveralValueSelections_01() {
+        DefaultValueRule rule = new DefaultValueRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "  }" +
+            "}";
+        
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(UsabilitySmellIntensity.getIntensity(0), GOOD_DEFAULTS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testSeveralValueSelections_02() {
+        DefaultValueRule rule = new DefaultValueRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "  }" +
+            "}";
+        
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(UsabilitySmellIntensity.getIntensity(0), GOOD_DEFAULTS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testSeveralValueSelections_03() {
+        DefaultValueRule rule = new DefaultValueRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "  }" +
+            "}";
+        
+        // equally distributed, so no smell detected
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] { };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testSeveralValueSelections_04() {
+        DefaultValueRule rule = new DefaultValueRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "  }" +
+            "}";
+        
+        // equally distributed, so no smell detected
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] { };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testSeveralValueSelections_05() {
+        DefaultValueRule rule = new DefaultValueRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value4) {}" +
+            "    TextInput elem1 (value4) {}" +
+            "    TextInput elem1 (value4) {}" +
+            "    TextInput elem1 (value4) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "  }" +
+            "}";
+        
+        // equally distributed, so no smell detected
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] { };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void testSeveralValueSelections_06() {
+        DefaultValueRule rule = new DefaultValueRule();
+
+        // ===== check =====
+        String spec =
+            "UserSession {" +
+            "  Sequence {" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value3) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "    TextInput elem1 (value1) {}" +
+            "    TextInput elem1 (value4) {}" +
+            "    TextInput elem1 (value4) {}" +
+            "    TextInput elem1 (value4) {}" +
+            "    TextInput elem1 (value4) {}" +
+            "    TextInput elem1 (value2) {}" +
+            "  }" +
+            "}";
+        
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(UsabilitySmellIntensity.getIntensity(0), GOOD_DEFAULTS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
+    }
+}
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/RequiredInefficientActionsRuleTest.java	(revision 1778)
+++ trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/RequiredInefficientActionsRuleTest.java	(revision 1918)
@@ -15,14 +15,10 @@
 package de.ugoe.cs.autoquest.usability;
 
-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;
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectSeverity.LOW;
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectSeverity.MEDIUM;
+import static de.ugoe.cs.autoquest.usability.UsabilitySmellDescription.INEFFICIENT_ACTIONS;
 
 import org.junit.Before;
 import org.junit.Test;
 
-import de.ugoe.cs.autoquest.usability.UsabilityDefect;
+import de.ugoe.cs.autoquest.usability.UsabilitySmell;
 
 /**
@@ -36,5 +32,5 @@
     @Before
     public void setUp() {
-        UsabilityDefectSeverity.defaultCoverageQuantile = 0;
+        //UsabilitySmellIntensity.defaultCoverageQuantile = 0;
     }
     
@@ -53,8 +49,8 @@
             "}";
         
-        // no defect expected, as interactions do not form tasks
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[] {  };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        // no smell expected, as interactions do not form tasks
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] {  };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -76,8 +72,8 @@
             "}";
         
-        // no defect expected, as interactions do not form tasks
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[] { };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        // no smell expected, as interactions do not form tasks
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] { };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -99,8 +95,9 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, INEFFICIENT_ACTIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -122,8 +119,9 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, INEFFICIENT_ACTIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -149,8 +147,9 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, INEFFICIENT_ACTIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -176,8 +175,9 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, INEFFICIENT_ACTIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -202,8 +202,9 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(LOW, INEFFICIENT_ACTIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -237,8 +238,9 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(MEDIUM, INEFFICIENT_ACTIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*MEDIUM*/ UsabilitySmellIntensity.getIntensity(0),
+                                  INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -272,8 +274,9 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(MEDIUM, INEFFICIENT_ACTIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*MEDIUM*/ UsabilitySmellIntensity.getIntensity(0),
+                                  INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -311,8 +314,9 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-           { new UsabilityDefect(LOW, INEFFICIENT_ACTIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+           { new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -350,8 +354,9 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-           { new UsabilityDefect(LOW, INEFFICIENT_ACTIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+           { new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -387,8 +392,9 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(INFO, INEFFICIENT_ACTIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*INFO*/ UsabilitySmellIntensity.getIntensity(0),
+                                  INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -424,8 +430,9 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(INFO, INEFFICIENT_ACTIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*INFO*/ UsabilitySmellIntensity.getIntensity(0),
+                                  INEFFICIENT_ACTIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -477,7 +484,7 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[] { };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] { };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -529,7 +536,7 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[] { };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] { };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
Index: trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/TaskCooccurrenceRuleTest.java
===================================================================
--- trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/TaskCooccurrenceRuleTest.java	(revision 1778)
+++ trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/TaskCooccurrenceRuleTest.java	(revision 1918)
@@ -15,15 +15,11 @@
 package de.ugoe.cs.autoquest.usability;
 
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectDescription.COOCCURENCE_PRECED;
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectDescription.COOCCURENCE_SUCCEED;
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectSeverity.HIGH;
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectSeverity.INFO;
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectSeverity.LOW;
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectSeverity.MEDIUM;
+import static de.ugoe.cs.autoquest.usability.UsabilitySmellDescription.COOCCURENCE_PRECED;
+import static de.ugoe.cs.autoquest.usability.UsabilitySmellDescription.COOCCURENCE_SUCCEED;
 
 import org.junit.Before;
 import org.junit.Test;
 
-import de.ugoe.cs.autoquest.usability.UsabilityDefect;
+import de.ugoe.cs.autoquest.usability.UsabilitySmell;
 
 /**
@@ -37,5 +33,5 @@
     @Before
     public void setUp() {
-        UsabilityDefectSeverity.defaultCoverageQuantile = 0;
+        //UsabilitySmellIntensity.defaultCoverageQuantile = 0;
     }
 
@@ -54,8 +50,8 @@
             "}";
         
-        // no defect expected, as interactions do not form tasks
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[] {  };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        // no smell expected, as interactions do not form tasks
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] {  };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -77,8 +73,8 @@
             "}";
         
-        // no defect expected, as interactions do not form tasks
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[] { };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        // no smell expected, as interactions do not form tasks
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[] { };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -100,9 +96,11 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, COOCCURENCE_SUCCEED),
-              new UsabilityDefect(HIGH, COOCCURENCE_PRECED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -128,9 +126,11 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, COOCCURENCE_SUCCEED),
-              new UsabilityDefect(HIGH, COOCCURENCE_PRECED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -155,15 +155,23 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, COOCCURENCE_SUCCEED),
-              new UsabilityDefect(HIGH, COOCCURENCE_SUCCEED),
-              new UsabilityDefect(HIGH, COOCCURENCE_SUCCEED),
-              new UsabilityDefect(HIGH, COOCCURENCE_SUCCEED),
-              new UsabilityDefect(HIGH, COOCCURENCE_PRECED),
-              new UsabilityDefect(HIGH, COOCCURENCE_PRECED),
-              new UsabilityDefect(HIGH, COOCCURENCE_PRECED),
-              new UsabilityDefect(HIGH, COOCCURENCE_PRECED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -193,11 +201,15 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, COOCCURENCE_SUCCEED),
-              new UsabilityDefect(HIGH, COOCCURENCE_SUCCEED),
-              new UsabilityDefect(LOW, COOCCURENCE_PRECED),
-              new UsabilityDefect(INFO, COOCCURENCE_PRECED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED),
+              new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+              new UsabilitySmell(/*INFO*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -227,11 +239,15 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, COOCCURENCE_PRECED),
-              new UsabilityDefect(HIGH, COOCCURENCE_PRECED),
-              new UsabilityDefect(LOW, COOCCURENCE_SUCCEED),
-              new UsabilityDefect(INFO, COOCCURENCE_SUCCEED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+              new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED),
+              new UsabilitySmell(/*INFO*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -265,11 +281,15 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-           { new UsabilityDefect(LOW, COOCCURENCE_PRECED),
-             new UsabilityDefect(LOW, COOCCURENCE_PRECED),
-             new UsabilityDefect(HIGH, COOCCURENCE_SUCCEED),
-             new UsabilityDefect(HIGH, COOCCURENCE_SUCCEED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+           { new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+             new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+             new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED),
+             new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -303,11 +323,15 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-           { new UsabilityDefect(HIGH, COOCCURENCE_PRECED),
-             new UsabilityDefect(HIGH, COOCCURENCE_PRECED),
-             new UsabilityDefect(LOW, COOCCURENCE_SUCCEED),
-             new UsabilityDefect(LOW, COOCCURENCE_SUCCEED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+           { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+             new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+             new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED),
+             new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -341,10 +365,13 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(MEDIUM, COOCCURENCE_PRECED),
-              new UsabilityDefect(HIGH, COOCCURENCE_SUCCEED),
-              new UsabilityDefect(HIGH, COOCCURENCE_SUCCEED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*MEDIUM*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -378,10 +405,13 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, COOCCURENCE_PRECED),
-              new UsabilityDefect(HIGH, COOCCURENCE_PRECED),
-              new UsabilityDefect(MEDIUM, COOCCURENCE_SUCCEED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+              new UsabilitySmell(/*MEDIUM*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -431,10 +461,13 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(MEDIUM, COOCCURENCE_PRECED),
-              new UsabilityDefect(HIGH, COOCCURENCE_SUCCEED),
-              new UsabilityDefect(HIGH, COOCCURENCE_SUCCEED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*MEDIUM*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -484,10 +517,13 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, COOCCURENCE_PRECED),
-              new UsabilityDefect(HIGH, COOCCURENCE_PRECED),
-              new UsabilityDefect(MEDIUM, COOCCURENCE_SUCCEED) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_PRECED),
+              new UsabilitySmell(/*MEDIUM*/ UsabilitySmellIntensity.getIntensity(0),
+                                  COOCCURENCE_SUCCEED) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
Index: trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/TextInputStatisticsRuleTest.java
===================================================================
--- trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/TextInputStatisticsRuleTest.java	(revision 1778)
+++ trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/TextInputStatisticsRuleTest.java	(revision 1918)
@@ -15,15 +15,11 @@
 package de.ugoe.cs.autoquest.usability;
 
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectDescription.TEXT_FIELD_INPUT_RATIO;
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectDescription.TEXT_FIELD_INPUT_REPETITIONS;
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectDescription.TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO;
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectSeverity.HIGH;
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectSeverity.INFO;
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectSeverity.LOW;
-import static de.ugoe.cs.autoquest.usability.UsabilityDefectSeverity.MEDIUM;
+import static de.ugoe.cs.autoquest.usability.UsabilitySmellDescription.TEXT_FIELD_INPUT_RATIO;
+import static de.ugoe.cs.autoquest.usability.UsabilitySmellDescription.TEXT_FIELD_INPUT_REPETITIONS;
+import static de.ugoe.cs.autoquest.usability.UsabilitySmellDescription.TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO;
 
 import org.junit.Test;
 
-import de.ugoe.cs.autoquest.usability.UsabilityDefect;
+import de.ugoe.cs.autoquest.usability.UsabilitySmell;
 
 /**
@@ -45,8 +41,9 @@
             "}";
         
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -68,8 +65,9 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -92,8 +90,9 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -115,8 +114,9 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -177,8 +177,9 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
     }
 
@@ -202,8 +203,9 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(LOW, TEXT_FIELD_INPUT_RATIO) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
     }
 
@@ -227,8 +229,9 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(INFO, TEXT_FIELD_INPUT_RATIO) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*INFO*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -254,7 +257,7 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[0];
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[0];
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -276,8 +279,9 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -342,8 +346,9 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(LOW, TEXT_FIELD_INPUT_RATIO) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -408,8 +413,9 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(INFO, TEXT_FIELD_INPUT_RATIO) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*INFO*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
     }
 
@@ -430,10 +436,13 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
     }
 
@@ -462,20 +471,33 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -501,10 +523,13 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
-              new UsabilityDefect(MEDIUM, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(MEDIUM, TEXT_FIELD_INPUT_REPETITIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO),
+              new UsabilitySmell(/*MEDIUM*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*MEDIUM*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -530,10 +555,13 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
-              new UsabilityDefect(LOW, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(LOW, TEXT_FIELD_INPUT_REPETITIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO),
+              new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -565,10 +593,13 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
-              new UsabilityDefect(INFO, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(INFO, TEXT_FIELD_INPUT_REPETITIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO),
+              new UsabilitySmell(/*INFO*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*INFO*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -595,10 +626,13 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(MEDIUM, TEXT_FIELD_INPUT_REPETITIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*MEDIUM*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
     }
 
@@ -623,10 +657,13 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
-              new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_REPETITIONS),
-              new UsabilityDefect(LOW, TEXT_FIELD_INPUT_REPETITIONS) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS),
+              new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_REPETITIONS) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
     }
 
@@ -646,9 +683,11 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
-              new UsabilityDefect(HIGH, TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO),
+              new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -669,9 +708,11 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
-              new UsabilityDefect(MEDIUM, TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO),
+              new UsabilitySmell(/*MEDIUM*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -692,9 +733,11 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
-              new UsabilityDefect(LOW, TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO),
+              new UsabilitySmell(/*LOW*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
@@ -716,9 +759,11 @@
             "}";
 
-        UsabilityDefect[] expectedDefects = new UsabilityDefect[]
-            { new UsabilityDefect(HIGH, TEXT_FIELD_INPUT_RATIO),
-              new UsabilityDefect(INFO, TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO) };
-
-        assertUsabilityEvaluationResult(expectedDefects, rule.evaluate(createTaskModel(spec)));
+        UsabilitySmell[] expectedSmells = new UsabilitySmell[]
+            { new UsabilitySmell(/*HIGH*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_INPUT_RATIO),
+              new UsabilitySmell(/*INFO*/ UsabilitySmellIntensity.getIntensity(0),
+                                  TEXT_FIELD_NO_LETTER_OR_DIGIT_RATIO) };
+
+        assertUsabilityEvaluationResult(expectedSmells, rule.evaluate(createTaskModel(spec)));
 
     }
Index: trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/UsabilityDefectDescriptionTest.java
===================================================================
--- trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/UsabilityDefectDescriptionTest.java	(revision 1778)
+++ 	(revision )
@@ -1,87 +1,0 @@
-//   Copyright 2012 Georg-August-Universität Göttingen, Germany
-//
-//   Licensed under the Apache License, Version 2.0 (the "License");
-//   you may not use this file except in compliance with the License.
-//   You may obtain a copy of the License at
-//
-//       http://www.apache.org/licenses/LICENSE-2.0
-//
-//   Unless required by applicable law or agreed to in writing, software
-//   distributed under the License is distributed on an "AS IS" BASIS,
-//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//   See the License for the specific language governing permissions and
-//   limitations under the License.
-
-package de.ugoe.cs.autoquest.usability;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
-
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import org.junit.Test;
-
-import de.ugoe.cs.autoquest.usability.UsabilityDefectDescription;
-
-/**
- * @author Patrick Harms
- */
-public class UsabilityDefectDescriptionTest {
-
-    /**
-     * 
-     */
-    @Test
-    public void testInitialization() {
-        for (UsabilityDefectDescription description : UsabilityDefectDescription.values()) {
-            assertNotNull(description.toString());
-            assertNotSame("", description.toString());
-            System.err.println(description);
-        }
-    }
-
-    /**
-     * 
-     */
-    @Test
-    public void testParameterization_01() {
-        for (UsabilityDefectDescription description : UsabilityDefectDescription.values()) {
-            Map<String, Object> parameters = new HashMap<String, Object>();
-
-            for (String parameter : description.getDescriptionParameters()) {
-                parameters.put(parameter, "<parameter " + parameter + ">");
-            }
-
-            assertNotNull(description.toString(parameters));
-            assertNotSame("", description.toString(parameters));
-            System.err.println(description.toString(parameters));
-        }
-    }
-
-
-    /**
-     * 
-     */
-    @Test
-    public void testParameterization_02() {
-        for (UsabilityDefectDescription description : UsabilityDefectDescription.values()) {
-            Map<String, Object> parameters = new HashMap<String, Object>();
-
-            for (String parameter : description.getDescriptionParameters()) {
-                List<String> values = new LinkedList<String>();
-                values.add("<parameter " + parameter + " value 1>");
-                values.add("<parameter " + parameter + " value 2>");
-                values.add("<parameter " + parameter + " value 3>");
-                parameters.put(parameter, values);
-            }
-
-            assertNotNull(description.toString(parameters));
-            assertNotSame("", description.toString(parameters));
-            System.err.println(description.toString(parameters));
-        }
-    }
-
-}
Index: trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/UsabilitySmellDescriptionTest.java
===================================================================
--- trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/UsabilitySmellDescriptionTest.java	(revision 1918)
+++ trunk/autoquest-core-usability-test/src/test/java/de/ugoe/cs/autoquest/usability/UsabilitySmellDescriptionTest.java	(revision 1918)
@@ -0,0 +1,87 @@
+//   Copyright 2012 Georg-August-Universität Göttingen, Germany
+//
+//   Licensed under the Apache License, Version 2.0 (the "License");
+//   you may not use this file except in compliance with the License.
+//   You may obtain a copy of the License at
+//
+//       http://www.apache.org/licenses/LICENSE-2.0
+//
+//   Unless required by applicable law or agreed to in writing, software
+//   distributed under the License is distributed on an "AS IS" BASIS,
+//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//   See the License for the specific language governing permissions and
+//   limitations under the License.
+
+package de.ugoe.cs.autoquest.usability;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Test;
+
+import de.ugoe.cs.autoquest.usability.UsabilitySmellDescription;
+
+/**
+ * @author Patrick Harms
+ */
+public class UsabilitySmellDescriptionTest {
+
+    /**
+     * 
+     */
+    @Test
+    public void testInitialization() {
+        for (UsabilitySmellDescription description : UsabilitySmellDescription.values()) {
+            assertNotNull(description.toString());
+            assertNotSame("", description.toString());
+            System.err.println(description);
+        }
+    }
+
+    /**
+     * 
+     */
+    @Test
+    public void testParameterization_01() {
+        for (UsabilitySmellDescription description : UsabilitySmellDescription.values()) {
+            Map<String, Object> parameters = new HashMap<String, Object>();
+
+            for (String parameter : description.getDescriptionParameters()) {
+                parameters.put(parameter, "<parameter " + parameter + ">");
+            }
+
+            assertNotNull(description.toString(parameters));
+            assertNotSame("", description.toString(parameters));
+            System.err.println(description.toString(parameters));
+        }
+    }
+
+
+    /**
+     * 
+     */
+    @Test
+    public void testParameterization_02() {
+        for (UsabilitySmellDescription description : UsabilitySmellDescription.values()) {
+            Map<String, Object> parameters = new HashMap<String, Object>();
+
+            for (String parameter : description.getDescriptionParameters()) {
+                List<String> values = new LinkedList<String>();
+                values.add("<parameter " + parameter + " value 1>");
+                values.add("<parameter " + parameter + " value 2>");
+                values.add("<parameter " + parameter + " value 3>");
+                parameters.put(parameter, values);
+            }
+
+            assertNotNull(description.toString(parameters));
+            assertNotSame("", description.toString(parameters));
+            System.err.println(description.toString(parameters));
+        }
+    }
+
+}
