Google CodePro Analytix - JUnit Testgenerator

Name

Google CodePro Analytix

Homepage

https://developers.google.com/java-dev-tools/codepro/doc/

Lizenz

https://developers.google.com/java-dev-tools/codepro/doc/tos

Untersuchte Version

7.1.0

Letzter Untersuchungszeitpunkt

02.08.2012

Kurzbeschreibung

Mit CodePro Analytix lassen sich JUnit Tests generieren und individuell anpassen.

Fazit

Der JUnit Testgenerator aus Google CodePro Analytix ist besonders für unerfahrene Programmierer im QS-Bereich geeignet. Ohne Kenntnisse über die die genaue Funktion von JUnit Tests lassen sich diese mit Hilfe des Tools erstellen und nutzen. Das Tool ist übersichtlich und benutzerfreundlich und erfüllt den gewohnten Google-Standard.

Einsatzumgebungen

CodePro Analytix ist mit Eclipse ab Version 3.4 kompatibel.

Installation

Einfache Installation: Download . Passende Version auswählen und bei Eclipse als Plugin hinzufügen.

Dokumentation

Die offizielle Dokumentation ist einfach geschrieben und benutzerfreundlich gestaltet. Auch Benutzer ohne QS-Erfahrung können sich leicht einarbeiten.

Wartung der Projektseite

Das neueste Update der Seite gab es am 27.März 2012. Da es sich um ein Google-Tool handelt, kann man mit bleibender Aktualität rechnen.

Nutzergruppen und Support

Neben den Tutorialseiten gibt es ein Nutzerforum , auf welches man bei Fragen zurückgreifen kann.

Intuitive Nutzbarkeit

Außer einem Grundwissen über Eclipse wird nichts weiter benötigt. Das Tool sollte für erfahrene Eclipse-Nutzer auch ohne Dokumentation gut nutzbar sein.

Einführendes Beispiel

Gegeben ist folgender Beispielcode für einen einfachen Taschenrechner:

public class Calculator {

	public int add(final int a, final int b) {
		int result;
		result = a + b;
		System.out.println(result);
		return result;

	}

	public int sub(final int a, final int b) {
		int result;
		result = a - b;
		System.out.println(result);
		return result;

	}

	public int mult(final int a, final int b) {
		int result;
		result = a * b;
		System.out.println(result);
		return result;

	}

	public int div(final int a, final int b) {
		int result;
		result = a / b;
		System.out.println(result);
		return result;

	}

}

Rechtsklick auf die gewünschte Klasse CodePro->Generate Test Cases

Es öffnen sich folgende Fenster:

Das linke Fenster zeigt den generierten JUnit-Code und das rechte eine vereinfachte Tabelle mit der man die Testfälle leicht bearbeiten kann. Mit Klick auf "Adds a Test Method" lässt sich eine neue Testmethode hinzufügen. Die Spalten nach Fixture geben jeweils die übergebenen Parameter an (a und b) gefolgt vom zu prüfenden Rückgabewert (Result).

Die Farben bedeuten folgendes:
  • Weiß - Prüfung Bestanden.
  • Grau - Bearbeitete Zelle, speichern erforderlich.
  • Gelb - Ein Fehler ist entstanden, bevor der Test ausgeführt werden konnte.
  • Rot - Prüfung fehlgeschlagen (Falsches Testergebnis)

  • Erfahrene Nutzer können auch den generierten Code per Hand verändern.
    Über das Dropdown-Menü am oberen Rand lässt sich die zu testenden Methode auswählen.


    Generierter JUnit-Test:
    
    
    import org.junit.*;
    import static org.junit.Assert.*;
    
    /**
     * The class CalculatorTest contains tests for the class {@link Calculator}.
     *
     * @generatedBy CodePro at 09.08.12 11:54
     * @author Peter Mentz
     * @version $Revision: 1.0 $
     */
    public class CalculatorTest {
    
    	/**
    	 * Run the int add(int,int) method test.
    	 *
    	 * @throws Exception
    	 *
    	 * @generatedBy CodePro at 09.08.12 13:12
    	 */
    	@Test
    	public void testAdd_1()
    		throws Exception {
    		Calculator fixture = new Calculator();
    		int a = 1;
    		int b = 1;
    
    		int result = fixture.add(a, b);
    
    		// add additional test code here
    		assertEquals(2, result);
    	}
    
    	/**
    	 * Run the int div(int,int) method test.
    	 *
    	 * @throws Exception
    	 *
    	 * @generatedBy CodePro at 09.08.12 13:12
    	 */
    	@Test
    	public void testDiv_1()
    		throws Exception {
    		Calculator fixture = new Calculator();
    		int a = 1;
    		int b = 0;
    
    		int result = fixture.div(a, b);
    
    		// add additional test code here
    		assertEquals(1, result);
    	}
    
    	/**
    	 * Run the int mult(int,int) method test.
    	 *
    	 * @throws Exception
    	 *
    	 * @generatedBy CodePro at 09.08.12 13:12
    	 */
    	@Test
    	public void testMult_1()
    		throws Exception {
    		Calculator fixture = new Calculator();
    		int a = 1;
    		int b = 1;
    
    		int result = fixture.mult(a, b);
    
    		// add additional test code here
    		assertEquals(1, result);
    	}
    
    	/**
    	 * Run the int sub(int,int) method test.
    	 *
    	 * @throws Exception
    	 *
    	 * @generatedBy CodePro at 09.08.12 13:12
    	 */
    	@Test
    	public void testSub_1()
    		throws Exception {
    		Calculator fixture = new Calculator();
    		int a = 1;
    		int b = 1;
    
    		int result = fixture.sub(a, b);
    
    		// add additional test code here
    		assertEquals(0, result);
    	}
    
    	/**
    	 * Perform pre-test initialization.
    	 *
    	 * @throws Exception
    	 *         if the initialization fails for some reason
    	 *
    	 * @generatedBy CodePro at 09.08.12 13:12
    	 */
    	@Before
    	public void setUp()
    		throws Exception {
    		// add additional set up code here
    	}
    
    	/**
    	 * Perform post-test clean-up.
    	 *
    	 * @throws Exception
    	 *         if the clean-up fails for some reason
    	 *
    	 * @generatedBy CodePro at 09.08.12 13:12
    	 */
    	@After
    	public void tearDown()
    		throws Exception {
    		// Add additional tear down code here
    	}
    
    	/**
    	 * Launch the test.
    	 *
    	 * @param args the command line arguments
    	 *
    	 * @generatedBy CodePro at 09.08.12 13:12
    	 */
    	public static void main(String[] args) {
    		new org.junit.runner.JUnitCore().run(CalculatorTest.class);
    	}
    }
    

    Detaillierte Beschreibung

    Siehe Dokumentationen auf der Webseite des Herstellers.

    Zurück zur Werkzeugübersicht
    Zurück zur CSI-Hauptseite