diff --git a/scope4j/src/test/java/org/extendj/DCL51JTest.java b/scope4j/src/test/java/org/extendj/DCL51JTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..8a5641077584a01f577b648c99584586f479e304
--- /dev/null
+++ b/scope4j/src/test/java/org/extendj/DCL51JTest.java
@@ -0,0 +1,32 @@
+package org.extendj;
+
+import org.extendj.ast.AbstractFinding;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import java.util.Set;
+
+public class DCL51JTest extends ScopeAnalysisTest {
+
+  @Test
+  void test() {
+
+    // see https://wiki.sei.cmu.edu/confluence/display/java/DCL51-J.+Do+not+shadow+or+obscure+identifiers+in+subscopes
+
+    ScopeAnalysis scopeAnalysis = new ScopeAnalysis();
+    Set<AbstractFinding> findings = scopeAnalysis.analyze("src/test/resources/dcl51-j", true, true);
+
+    System.out.println(findings);
+
+//    final String fFieldComplient = "src/test/resources/dcl51-j/FieldComplient.java";
+    final String fFieldNoncomplient = "src/test/resources/dcl51-j/FieldNoncomplient.java";
+//    final String fVariableCompliant = "src/test/resources/dcl51-j/VariableCompliant.java";
+    final String fVariableNoncompliant = "src/test/resources/dcl51-j/VariableNoncompliant.java";
+
+    assertShadow(findings, "val", fFieldNoncomplient, 7, fFieldNoncomplient, 5);
+    assertShadow(findings, "i", fVariableNoncompliant, 8, fVariableNoncompliant, 5);
+
+    Assertions.assertEquals(2, findings.size());
+  }
+
+}
diff --git a/scope4j/src/test/resources/dcl51-j/FieldComplient.java b/scope4j/src/test/resources/dcl51-j/FieldComplient.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4d51bf9e88149ecc221dee2ea1cc38678435419
--- /dev/null
+++ b/scope4j/src/test/resources/dcl51-j/FieldComplient.java
@@ -0,0 +1,10 @@
+/**
+ * Compliant Solution (Field Shadowing)
+ */
+public class FieldComplient {
+  private int val = 1;
+  private void doLogic() {
+    int newValue;
+    //...
+  }
+}
diff --git a/scope4j/src/test/resources/dcl51-j/FieldNoncomplient.java b/scope4j/src/test/resources/dcl51-j/FieldNoncomplient.java
new file mode 100644
index 0000000000000000000000000000000000000000..035ea80dbc35c1be38965fce6d6883bfb2a6bbc5
--- /dev/null
+++ b/scope4j/src/test/resources/dcl51-j/FieldNoncomplient.java
@@ -0,0 +1,10 @@
+/**
+ * Noncompliant Code Example (Field Shadowing)
+ */
+public class FieldNoncomplient {
+  private int val = 1;
+  private void doLogic() {
+    int val;
+    //...
+  }
+}
diff --git a/scope4j/src/test/resources/dcl51-j/VariableCompliant.java b/scope4j/src/test/resources/dcl51-j/VariableCompliant.java
new file mode 100644
index 0000000000000000000000000000000000000000..7ffeba8539b59bd7156a4032b0f34f7264f3f457
--- /dev/null
+++ b/scope4j/src/test/resources/dcl51-j/VariableCompliant.java
@@ -0,0 +1,9 @@
+/**
+ * Compliant Solution (Variable Shadowing)
+ */
+public class VariableCompliant {
+  private void doLogic() {
+    for (int i = 0; i < 10; i++) {/* ... */}
+    for (int i = 0; i < 20; i++) {/* ... */}
+  }
+}
diff --git a/scope4j/src/test/resources/dcl51-j/VariableNoncompliant.java b/scope4j/src/test/resources/dcl51-j/VariableNoncompliant.java
new file mode 100644
index 0000000000000000000000000000000000000000..f93a7928df5aa2d6afd5560bc127020117eed19a
--- /dev/null
+++ b/scope4j/src/test/resources/dcl51-j/VariableNoncompliant.java
@@ -0,0 +1,12 @@
+/**
+ * Noncompliant Code Example (Variable Shadowing)
+ */
+public class VariableNoncompliant {
+  private int i = 0;
+  private void doLogic() {
+    for (i = 0; i < 10; i++) {/* ... */}
+    for (int i = 0; i < 20; i++) {/* ... */}
+  }
+}
+
+