Softwareentwicklung und Projektmanagement

Ein Werkzeug zur statischen Analyse wird auf den Quellcode einer Firmware angewendet. Welches Problem lässt sich damit am ehesten finden, ohne das Programm auszuführen?

  1. AEine Funktion, die die Nutzer wirklich brauchen, fehlt im Anforderungsdokument
  2. BPfade, auf denen eine nicht initialisierte Variable gelesen wird, und Stellen, an denen außerhalb der Grenzen eines Arrays zugegriffen werden könnte
  3. CAuf einem Teil der in Serie gefertigten Platinen werden Signale durch fehlerhafte Lötstellen unterbrochen
Antwort und Erläuterung anzeigen

Antwort: B. Pfade, auf denen eine nicht initialisierte Variable gelesen wird, und Stellen, an denen außerhalb der Grenzen eines Arrays zugegriffen werden könnte

Die statische Analyse untersucht Syntax, Kontrollfluss und Datenfluss des Quellcodes, ohne ihn auszuführen, und findet Probleme wie das Lesen nicht initialisierter Variablen, Array-Zugriffe außerhalb der Grenzen, mögliche Dereferenzierungen von Nullzeigern und Verstöße gegen Programmierrichtlinien (etwa MISRA C, das für eingebettetes C verwendet wird). Sie kann Probleme auf Pfaden finden, die Tests selten erreichen, liefert aber auch Fehlalarme, daher prüfen Menschen die Ergebnisse. Fehlende Anforderungen werden durch Reviews und Abstimmung mit den Nutzern gefunden, fehlerhafte Lötstellen durch Prüfungen in der Fertigung und Tests an realer Hardware; die Analyse des Quellcodes kann sie nicht aufdecken.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Softwareentwicklung und Projektmanagement

  1. Welche Beschreibung trifft auf den Black-Box-Test zu?
  2. Ein Eingabefeld akzeptiert nur ganze Zahlen; Werte von 1 bis einschließlich 100 werden angenommen, alle anderen führen zu einem Fehler. Wie viele Äquivalenzklassen ergeben sich insgesamt (gültige und ungültige zusammen), wenn die Eingaben durch Äquivalenzklassenbildung aufgeteilt werden?
  3. Ein Programm legt den Eintrittspreis nach dem Alter (einer ganzen Zahl ab 0) fest: 0 bis 17 Jahre zahlen den Kinderpreis, 18 bis 64 Jahre den Normalpreis und ab 65 Jahren den Seniorenpreis. Welche Testwerte sind für eine Grenzwertanalyse, die die Grenzen prüft, an denen die Preiskategorie wechselt, am geeignetsten?
  4. Die Spezifikation lautet „Warnung ausgeben, wenn die Temperatur 85 °C oder höher ist“, in der Firmware steht aber versehentlich „if (t > 85)“. Die Temperatur t ist eine ganze Zahl. Mit welchem der folgenden Testwerte lässt sich dieser Fehler finden?
  5. Die Werte von temp und err lassen sich unabhängig voneinander wählen. Wie viele Testfälle sind für den Code „if (temp > 80) { fan = HIGH; } else { fan = LOW; } if (err) { log(); }“ mindestens nötig, um Anweisungsabdeckung zu erreichen (jede Anweisung mindestens einmal auszuführen)?