Package nz.ac.waikato.modeljunit

Examples of nz.ac.waikato.modeljunit.RandomTester


  /** An example of generating tests from this model. */
  public static void main(String[] args)
  {
    FsmModel model = new SimpleSet();
    List<Tester> testers = new ArrayList<Tester>();
    testers.add(new RandomTester(model));
    testers.add(new GreedyTester(model));
    testers.add(new LookaheadTester(model));

    for (Tester tester : testers) {
      double average = allTransitions(tester);
View Full Code Here


   */
  public static void main(String[] args) throws FileNotFoundException
  {
    final int experiments = 100;
    TimedModel model = new TimedModel(new SimpleTimedLight());
    Tester tester = new RandomTester(model);
    //tester.addListener(new VerboseListener());
    double origProb = model.getTimeoutProbability();
    model.setTimeoutProbability(0.3); // while exploring the FSM
    GraphListener graph = tester.buildGraph();
    model.setTimeoutProbability(origProb);
    graph.printGraphDot("SimpleTimedLight.dot");
    System.out.println("FSM has " + graph.getGraph().numVertices() + " states and "
        + graph.getGraph().numEdges() + " transitions");
    CoverageMetric metric = tester.addCoverageMetric(new TransitionCoverage());
    for (double prob = 0.1; prob < 0.99; prob += 0.1) {
      model.setTimeoutProbability(prob);
      double totalSteps = 0.0;
      int totalTime = 0; // sum of all the totalTimes.
      for (int seed = 0; seed < experiments; seed++) {
        int testSeqTime = 0;
        int lastTime = 0; // the time after the last transition
        metric.clear();
        tester.reset();
        tester.setRandom(new Random(seed));
        int count = 0;
        while (metric.getPercentage() < 100.0) {
          tester.generate(1);
          if (model.getTime() > lastTime) {
            lastTime = model.getTime();
          } else {
            testSeqTime += lastTime;
            //System.out.println("added " + lastTime + " secs");
View Full Code Here

  }

  public static void main(String[] args)
  {
    TimedModel model = new TimedModel(new TrafficLight());
    Tester tester = new RandomTester(model);
    //tester.addListener("verbose");
    //GraphListener graphListener = tester.buildGraph();
   
    try {
      for (int count = 0; count < 1000000; count += 1000) {
        tester.generate(1000);
        System.out.println(count);
      }
      //graphListener.printGraphDot("TrafficLight.dot");
    }
    catch (Exception ex) {
View Full Code Here

    return result;
  }

  public static void main(String[] args) throws FileNotFoundException
  {
    Tester tester = new RandomTester(new ECinema());
    // The guards make this a more difficult graph to explore, but we can
    // increase the default maximum search to complete the exploration.
    GraphListener graph = tester.buildGraph(100000);
    graph.printGraphDot("ecinema.dot");
    CoverageMetric trans = tester.addCoverageMetric(new TransitionCoverage());
    CoverageMetric trpairs = tester.addCoverageMetric(new TransitionPairCoverage());
    CoverageMetric states = tester.addCoverageMetric(new StateCoverage());
    CoverageMetric actions = tester.addCoverageMetric(new ActionCoverage());
    tester.addListener("verbose");
    // this illustrates how to generate tests upto a given level of coverage.
    int steps = 0;
    while (actions.getPercentage() < 100 /* || steps < 1000*/) {
      tester.generate();
      steps++;
    }
    System.out.println("Generated "+steps+" steps.");
    tester.printCoverage();
  }
View Full Code Here

  }

  public static void main(String[] args) throws FileNotFoundException
  {
    System.out.println("Exploring the SimCard model without testing the SUT.");
    RandomTester tester = new GreedyTester(new SimCard(null));
    // use very long test sequences (since reset corresponds to a new card).
    tester.setResetProbability(0.0001);
    GraphListener graph = tester.buildGraph(1000000);
    graph.printGraphDot("gsm.dot");
    System.out.println("Graph contains "
        + graph.getGraph().numVertices() + " states and "
        + graph.getGraph().numEdges() + " transitions.");
  }
View Full Code Here

  }

  public void testGSM11()
  {
    SimCard model = new SimCard(new SimCardAdaptor());
    RandomTester tester = new RandomTester(model);
    tester.setRandom(new Random(seed));
    System.out.println(numTests + " tests, with seed = " + seed);
    tester.setResetProbability(0.01);
    //GraphListener graph = tester.buildGraph(0);
    //tester.addListener("Verbose", new VerboseListener(tester.getModel()));
    tester.addListener(new StopOnFailureListener());
    tester.addCoverageMetric(new TransitionCoverage());
    tester.addCoverageMetric(new StateCoverage());
    int test = 0;
    for (; test < numTests; test++) {
      tester.generate(1);
    }
    System.out.println("After " + test + " tests");// ", todo=" + graph.numTodo());
    tester.printCoverage();
  }
View Full Code Here

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        //System.setOut(new PrintStream(baos, true));
        // Run algorithm
        project.getAlgo().runAlgorithm(0);
        if (m_tester[0] instanceof RandomTester) {
            RandomTester tester = (RandomTester) m_tester[0];
            tester.setResetProbability(project.getResetProbability());
        }
        // Set up coverage matrix to check the test result
        boolean[] bCoverage = project.getCoverageOption();
        // Generate graph
        if (bCoverage[0] || bCoverage[1] || bCoverage[2] || bCoverage[3])
            m_tester[0].buildGraph();
        CoverageMetric[] coverage = new CoverageMetric[COVERAGE_NUM];

        if (bCoverage[0]) {
            coverage[0] = new StateCoverage();
            m_tester[0].addCoverageMetric(coverage[0]);
        }

        if (bCoverage[1]) {
            coverage[1] = new TransitionCoverage();
            m_tester[0].addCoverageMetric(coverage[1]);
        }

        if (bCoverage[2]) {
            coverage[2] = new TransitionPairCoverage();
            m_tester[0].addCoverageMetric(coverage[2]);
        }
        if (bCoverage[3]) {
            coverage[3] = new ActionCoverage();
            m_tester[0].addCoverageMetric(coverage[3]);
        }

        StringBuffer verbose = new StringBuffer();
        StringWriter sw = new StringWriter();
        if (project.getVerbosity()) {
            VerboseListener vl = new VerboseListener();
            m_tester[0].addListener(vl);
        }
        // We always want to see the tests drawn
        m_tester[0].addListener(new VisualisationListener());
        // Redirect model's output to string
        Model md = m_tester[0].getModel();
        Writer defWriter = md.getOutput();
        md.setOutput(sw);
        // This writer updates the test results panel.
        // TODO: move this class into PanelResultViewer.
        Writer newWriter = new Writer() {
            @Override
            public void close() throws IOException {
            }

            @Override
            public void flush() throws IOException {
            }

            @Override
            public void write(char[] cbuf, int off, int len) throws IOException {
                StringBuffer str = new StringBuffer();
                for (int i = off; i < off + len; i++) {
                    str.append(cbuf[i]);
                }
                gui.getResultViewer().updateRunTimeInformation(str.toString());
            }
        };
        md.setOutput(newWriter);

        for (int i = 0; i < COVERAGE_NUM; i++) {
            if (bCoverage[i])
                coverage[i].clear();
        }

        if (m_tester[0] instanceof QuickTester) {
            QuickTester tester = (QuickTester) m_tester[0];
            tester.clear();
        }

        // Generate tests
        //System.err.println("Generating " + project.getWalkLength() + " tests with " + m_tester[0]);
        m_tester[0].generate(project.getWalkLength());
View Full Code Here

   *  We also report the transition coverage of the model.
   */
  public static void main(String args[])
  {
    // create our model and a test generation algorithm
    Tester tester = new RandomTester(new FSM());

    // build the complete FSM graph for our model, just to ensure
    // that we get accurate model coverage metrics.
    tester.buildGraph();

    // set up our favourite coverage metric
    CoverageMetric trCoverage = new TransitionCoverage();
    tester.addListener(trCoverage);

    // ask to print the generated tests
    tester.addListener("verbose");

    // generate a small test suite of 20 steps (covers 4/5 transitions)
    tester.generate(20);

    tester.getModel().printMessage(trCoverage.getName() + " was "
        + trCoverage.toString());
  }
View Full Code Here

   * @throws FileNotFoundException
   */
  public static void main(String[] args) throws FileNotFoundException {
    final int experiments = 100;
    SimpleNaiveLight fsm = new SimpleNaiveLight();
    Tester tester = new RandomTester(fsm);
    //tester.addListener(new VerboseListener());
    //tester.addListener(new VerboseListener());
    GraphListener graph = tester.buildGraph();
    System.out.println("FSM has " + graph.getGraph().numVertices() + " states and "
        + graph.getGraph().numEdges() + " transitions");
    CoverageMetric metric = tester.addCoverageMetric(new TransitionCoverage());
    for (double prob = 0.1; prob < 0.99; prob += 0.1) {
      double totalSteps = 0.0;
      int totalTime = 0; // sum of all the totalTimes.
      for (int seed = 0; seed < experiments; seed++) {
        int testSeqTime = 0;
        int lastTime = 0; // the time after the last transition
        metric.clear();
        tester.reset();
        tester.setRandom(new Random(seed));
        int count = 0;
        while (metric.getPercentage() < 100.0) {
          tester.generate(1);
          if (fsm.time > lastTime) {
            lastTime = fsm.time;
          } else {
            testSeqTime += lastTime;
            //System.out.println("added " + lastTime + " secs");
View Full Code Here

        writeHistoryToFile(project, coverage);
    }

    public Tester constructRandomTester(Project project, CoverageMetric metric) {
        RandomTester tester = new RandomTester(loadModelClass(project));
        tester.addCoverageMetric(metric);
        return tester;
    }
View Full Code Here

TOP

Related Classes of nz.ac.waikato.modeljunit.RandomTester

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.