zertifizierter Softwaretester Lernplattform mit Übungsfragen zum Thema Softwaretest

Seien a, b und c Integer. Welche der folge...

Fragen-ID

452

test

Übungsfrage

Seien a, b und c Integer. Welche der folgenden Programmausschnitte enthalten eine Datenflussanomalie?

wrong


a = 3;
b = 24 + a;
a = 45 + b * a;
c = a + b * 2;

wrong


a = 3;
b = 24 + a;
a = 45;
c = a + b * 2;

richtig


a = 3;
b = 24 + a;
a = 45 / 2 + 1;
c = a + b * 2;

richtig


a = 3;
b = 24 + a;
b = 45;
c = a + b * 2;

richtig


a = 3;
b = 24 + a;
c = 45;
c = a + b * 2;

Kommentare

Fragestellung

Warum bei 3 richtigen Antworten  heißt die Frage  " Welche der zwei folgenden Programmausschnitte"

Hallo,jetzt solle es passen.

Hallo,

jetzt solle es passen. Vielen Dank für den Hinweis!

Viele Grüße,

die Redaktion

Die Antwortmöglichkeiten sind nicht eindeutig genug

Hallo Redaktion,

für den 2. Fall ist Ihre Aussauge soweit korrekt, wenn man nur die Variable a an sich betrachtet, nur gibt es zwei identische Antwortmöglichkeiten in der Fragestellung, siehe oben, welche davon soll man den auswählen für den 2. Fall? Anwortmöglichkeit Zeile 1 oder Antwortmöglichkeit Zeile 4?

Ein weiterer Aspekt ist, es ergibt sich noch eine dritte Antwortmöglichkeit für den 2. Fall, Anwortmöglichkeit in Zeile 5, denn auch dort gilt wie von Ihnen aufgeschlüsselt eine doppelte Definition der Variable a hintereinander!

Beste Grüße,

karlgustav

Hallo,jetzt sollte es passen.

Hallo,

jetzt sollte es passen. Alle dd-Anomalien sind jetzt korrekt erfasst.

Viele Grüße,

die Redaktion

Leider passt es noch nicht ganz

Sehr geehrte Redaktion,

leider passt jetzt die Auswahl der Antwortmöglichkeiten nicht mehr zur Fragestellung.

Deshalb habe ich noch einmal genau im Kapitel Datenflussanalyse des Lehrplans recherchiert.

Also, es gibt folgende Punkte, wie man Anomalien entdecken kann:
1) Zuweisung eines ungültigen Wertes zu einer Variablen
2) Verwendung einer Variablen ohne dass ihr zuvor ein Wert zugewiesen wurde
3) Inkorrekte Pfade aufgrund eines inkorrekten Werts in einer Kontrollfluss-Entscheidung
4) Versuch, eine Variable zu verwenden nachdem diese zerstört wurde
5) Referenzierung von Variablen wenn diese nicht mehr erreichbar sind
6) Deklarieren und Zerstören von Variablen ohne diese zu verwenden
7) Variablen erneut definieren bevor diese verwendet wurden
8) Nicht-Löschung einer dynamisch zugewiesenen Variablen (Ursache für mögliche Speicherlecks)
9) Ändern einer Variablen, das zu unerwarteten Nebenwirkungen führt (z.B. Nachwirkungen und Folgeprobleme nachdem eine globale Variable geändert  wurde, ohne alle Verwendungen dieser Variablen zu bedenken)

Jetzt gehen wir doch einmal die verschiedenen Antwortmöglichkeiten durch:

a = 3;
b = 24 + a;
a = 45;
c = a + b * 2;

(Diese Auswahlmöglichkeit ist doppelt vorhanden)

Keine Anomalie für a vorhanden: Für a gilt: drdu
Keine Anomalie für b vorhanden: Für b gilt: dru
Keine Anomalie für c vorhanden: Für c gilt: du

a = 3;
b = 24 + a;
a = 45 + b * a;
c = a + b * 2;

Keine Anomalie für a vorhanden: Für a gilt: drrdru
Keine Anomalie für b vorhanden: Für b gilt: drru
Keine Anomalie für c vorhanden: Für c gilt: du

a = 3;
b = 24 + a;
b = 45;
c = a + b * 2;

Keine Anomalie für a vorhanden: Für a gilt: drru
!!!Anomalie!!! für b vorhanden: Für b gilt: ddru   (siehe bitte dafür Punkt 7) in der Liste oben)
Keine Anomalie für c vorhanden: Für c gilt: du

a = 3;
b = 24 + a;
a = 45 / 2 + 1;
c = a + b * 2;

Dieser Fall ist etwas knifflig, ich schreib erst einmal die Bewertung und begründe dann weiter unten.

!!!Anomalie!!! für a vorhanden: Für a gilt: in Zeile 3 falscher Datentyp (siehe dazu Punkt 1) in der Liste oben)
Keine Anomalie für b vorhanden: Für b gilt: dru
Keine Anomalie für c vorhanden: Für c gilt: du

Warum falscher Datentyp für a: a wird in der Definition der Aufgabe als Datentyp Integer deklariert. Wenn wir jetzt davon ausgehen, dass die Division nicht ganzahlig ist, dann wird a in der Berechnung bei 45 / 2 +1 = 23.5 ein ungültiger Datetyp zugewiesen. Somit ergibt sich hier die zweite Antwortmöglichkeit für die oben gestellte Aufgabe.

Noch einmal zur Begründung, warum die ersten beiden, hier aufgeführten, Antwortmöglichkeiten keine Datenflussanomalien enthalten, speziell die Variable a keine Datenflussanomalie aufweist: Nach Punkt 7) aus der Liste oben, liegt eine Anomalie nur dann vor, wenn eine Variable erneut definiert wird ohne sie vorher zu verwenden. Das ist in diesen Fällen nicht gegeben, denn Variable a wird nach der Definition in der ersten Zeile in der zweiten Zeile verwendet, bevor es in der dritten Zeile neu definiert wird.

Ich hoffe ich konnte mich verständlich ausdrücken und somit zur Klärung der Antwortmöglichkeiten beitragen.

Beste Grüsse,

karlgustav

Hallo,vielen Dank für die

Hallo,

vielen Dank für die ausführliche Erklärung! Das hat neben mir sicherlich auch den anderen Lernern geholfen! Ich habe Ihre als Anomalien identifizieren Antwortmöglichkeiten nun als korrekt gekennzeichnet und habe die doppelte Antwortmöglichkeit nun so umgestellt, dass sie a) eine dd-Anomalie hat und b) nicht doppelt vorhanden ist.

Ich hoffe, dass nun alles passt, ansonsten einfach melden!

Viele Grüße,

die Redaktion

Nur eine Datenflussanomalie vorhanden?

Hallo,

in den vorgegebenen Progammausschnitten kann ich nur bei einem eine Datenflussanomalie finden. Die zweite Anomalie (4. Programmausschnitt) kann ich nicht nachvollziehen. Dieser Programmausschnitt ist zudem identisch mit dem 3. Programmausschnitt.

Grüße

Ralf

Hallo Ralf,in beiden

Hallo Ralf,

in beiden Programmausschnitten sind dd-Anomalien, d.h. eine Variable wird zweimal definiert:

1. Fall:

b = 24 + a;

b = 45;

 

2. Fall:

a = 3;

...

a = 45;
 
Die Aufgabe ist daher richtig.
 
Viele Grüße,
 
die Redaktion

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <br> <p> <table> <tr> <td> <img>

Weitere Informationen über Formatierungsoptionen

CAPTCHA
Diese Frage hat den Zweck zu testen, ob Sie ein menschlicher Benutzer sind und um automatisiertem Spam vorzubeugen.
11 + 9 =
Das einfache mathematische Problem ist zu lösen und das Ergebnis einzugeben. Z.B. muss für 1+3 der Wert 4 eingegebene werden.