zur vorherigen Seite  zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Was ist das Minimum dieser Liste von Integern:

-45,  -23,  -87,  -56,  -92,  -12,  -36

-92

Das Programm brechen

class MaxAlgorithmus
{

  public static void main ( String[] args )
  {

    int[] array =  { -20, 19, 1, 5, -1, 27, 19, 5 } ;
    int   max;

    // das gegenwärtige Maximum initialisieren
    max = array[0];

    // das Array durchsuchen
    for ( int index = 0; index < array.length; index++ )
    {
      if ( array[ index ] > max )  // das gegenwärtige Element untersuchen
        max = array[ index ];      // wenn es bis dahin das Größte ist, max ändern

    }

    System.out.println("Das Maximum dieses Arrays ist: " + max );
  }
}

Ein Programm zu testen ist oft schwierig. Testfälle zu finden, die ein Programm sorgfältig testen, ist ein wichtiger Teil davon.

Natürlich muss das Testen mit einem laufenden Programm und mit konkreten Daten getan werden. Ein Programm nur einmal mit "Spieldaten" laufen zu lassen und zu sagen, dass es funktioniert, ist in der professionellen Softwareentwicklung nicht gut genug.

Wir kompilieren und starten das Programm. Können wir das Programm "brechen", indem wir das Array mit verschiedenen Werten initialisieren, so wie die folgenden:

Wird das korrekte Maximum in jedem Fall gefunden? Manchmal funktioniert ein Programm mit den Daten, an die der Programmierer gedacht hat, als er das Programm geschrieben hat, aber nicht mit all den möglichen Daten mit denen das Programm dann verwendet wird.

Aus diesem Grund wird das Testen von Software von anderen Leuten vorgenommen, die das Programm nicht geschrieben haben.


FRAGE 12:

Hier ist eine interessante Situation: Wir ändern den Testteil von for in

index < array.length-1

Jetzt starten wir das Programm mit den oben stehenden Testfällen.

  1. Wird das fehlerhafte Programm (mit der geänderten Schleife) das korrekte Maximum der Daten, wie es in der ursprünglichen Initialisierungsliste gegeben ist, finden?
  2. Wann wird das Programm nicht korrekt arbeiten?
  3. Ist es offensichtlich, dass es einen Bug gibt?
zur vorherigen Seite  zum Inhaltsverzeichnis   zur nächsten Seite