diff --git a/learnlib/DumpRFSAEQOracle.java b/learnlib/DumpRFSAEQOracle.java
index 0d32d48895c478008a546f9bc2e9af6e86c119c6..b2163ac04e9713edff740a30506651430a45711d 100644
--- a/learnlib/DumpRFSAEQOracle.java
+++ b/learnlib/DumpRFSAEQOracle.java
@@ -3,17 +3,20 @@ import de.learnlib.api.query.DefaultQuery;
 import de.learnlib.oracle.equivalence.RandomWordsEQOracle;
 import net.automatalib.automata.fsa.FiniteStateAcceptor;
 import net.automatalib.automata.fsa.impl.compact.CompactNFA;
+import net.automatalib.commons.util.collections.CollectionsUtil;
 import net.automatalib.words.Word;
+import net.automatalib.words.WordBuilder;
 
 import javax.annotation.Nullable;
-import java.util.Collection;
-import java.util.Objects;
-import java.util.Random;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Stream;
 
 public class DumpRFSAEQOracle<A extends FiniteStateAcceptor<Integer, I>, I> extends RandomWordsEQOracle<A, I, Boolean> {
     CompactNFA<I> target;
+    final int maxLength;
+    final Random random;
+    final int maxTests;
+
 
     public DumpRFSAEQOracle(CompactNFA<I> target, MembershipOracle<I, Boolean> mqOracle, int minLength, int maxLength, int maxTests) {
         this(target, mqOracle, minLength, maxLength, maxTests, new Random(), 1);
@@ -26,7 +29,10 @@ public class DumpRFSAEQOracle<A extends FiniteStateAcceptor<Integer, I>, I> exte
     public DumpRFSAEQOracle(CompactNFA<I> target, MembershipOracle<I, Boolean> mqOracle, int minLength, int maxLength, int maxTests, Random random, int batchSize) {
         super(mqOracle, minLength, maxLength, maxTests, random, batchSize);
 
+        this.maxLength = maxLength;
+        this.random = random;
         this.target = target;
+        this.maxTests = maxTests;
     }
 
     /**
@@ -80,4 +86,25 @@ public class DumpRFSAEQOracle<A extends FiniteStateAcceptor<Integer, I>, I> exte
         } else
             return null;
     }
+
+    Word<I> generateTestWord(List<? extends I> symbolList, int numSyms) {
+        final WordBuilder<I> result = new WordBuilder<>(maxLength);
+
+        for (int j = 0; j < maxLength; ++j) {
+            int symidx = random.nextInt(numSyms);
+            I sym = symbolList.get(symidx);
+            result.append(sym);
+        }
+
+        return result.toWord();
+    }
+
+    @Override
+    protected Stream<Word<I>> generateTestWords(A hypothesis, Collection<? extends I> inputs) {
+
+        final List<? extends I> symbolList = CollectionsUtil.randomAccessList(inputs);
+
+        return Stream.generate(() -> generateTestWord(symbolList, symbolList.size())).limit(maxTests);
+    }
+
 }