Statische und dynamische Codeanalyse: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „DUMMY == Einleitung == Dieser Vortrag gibt einen Überblick über die aktuellen Möglichkeiten die Qualität von Software zu bestimmen und zu sichern. ==Ihre…“)
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
DUMMY
==Einleitung==
Ein Softwaretest prüft und bewertet Software auf Erfüllung der für ihren Einsatz definierten Anforderungen und misst ihre Qualität. Die gewonnenen Erkenntnisse werden zur Erkennung und Behebung von Softwarefehlern genutzt. Tests während der Softwareentwicklung dienen dazu, die Software möglichst fehlerfrei in Betrieb zu nehmen.


== Einleitung ==
Von diesem, eine einzelne Testmaßnahme bezeichnenden Begriff ist die gleich lautende Bezeichnung 'Test' (auch 'Testen') zu unterscheiden, unter der die Gesamtheit der Maßnahmen zur Überprüfung der Softwarequalität (inkl. Planung, Vorbereitung, Steuerung, Durchführung, Dokumentation usw.; siehe auch Definitionen) verstanden wird.
Dieser Vortrag gibt einen Überblick über die aktuellen Möglichkeiten die Qualität von Software zu bestimmen und zu sichern.
 
Den Nachweis, dass keine Fehler (mehr) vorhanden sind, kann das Softwaretesten nicht erbringen. Es kann lediglich fallibilistisch feststellen, dass bestimmte Testfälle erfolgreich waren. Edsger W. Dijkstra schrieb hierzu: „Program testing can be used to show the presence of bugs, but never show their absence!“ (Das Testen von Programmen kann die Existenz von Fehlern zeigen, aber niemals deren Nichtvorhandensein). Der Grund ist, dass alle Programmfunktionen und auch alle möglichen Werte in den Eingabedaten in allen ihren Kombination getestet werden müssten – was (außer bei sehr einfachen Testobjekten) praktisch nicht möglich ist. Aus diesem Grund beschäftigen sich verschiedene Teststrategien und -konzepte mit der Frage, wie mit einer möglichst geringen Anzahl von Testfällen eine große Testabdeckung zu erreichen ist.
 
Geben Sie einen Überblick über das Thema Software-Testverfahren.


==Ihre Aufgaben==
==Ihre Aufgaben==
* Recherchieren Sie die wichtigsten Methoden der Software-Qualitätssicherung.
*Motivieren Sie das Gebiet der statischen Codeanalyse.
* Präsentieren Sie diese anhand von Beispielen anschaulich.
*Einführung in die Qualitätssicherung durch statische Software-Testverfahren.
*Stellen Sie die in der Literatur gängigen Verfahren vor.
*Ordnen Sie vor diesem Hintergrund MATLAB Polyspace ein.
*Einführung in die Software mit praktischen Beispielen.
*Live-Vorführung von MATLAB Polyspace (Lizenzen sind an der HSHL vorhanden)
*Beschreiben Sie den Funktionsumfang der Software anhand praktischer Beispiele.
 
Sprechen Sie die Schnittstellen zu den Nachfolgenden Vorträgen bitte mit den Kommilitonen ab.


==Kür-Aufgabe==
==Kür-Aufgabe==
Machen Sie doch eine Umfrage unter Ihren Kommilitonen (Semester 1-7) welche Firmen welche Maßnahmen zur Software-Qualitätssicherung einsetzen und warum. Das wäre aber schon das ++ hinter der 1.  
Machen Sie doch eine Umfrage unter Ihren Kommilitonen (Semester 1-7) welche Firmen welche statische Software Testverfahren einsetzen und warum. Das wäre aber schon das ++ hinter der 1.
 


==Mögliche Fragen==
==Mögliche Fragen==
* Wie lässt sich SW-Qualität messen?
* Wozu braucht man eine statische/dynamische Codeanalyse?
* Welche Methoden zur Verbesserung der SW-Qualität gibt es?
* Wie funktioniert eine statische/dynamische Codeanalyse?
* Wie lässt sich das auf ihr Studium übertragen?
* Wie dokumiert man die Ergebnisse?
* Gibt es Tools, die einen beim Erhalt von SW-Qualität unterstützen können?
* Wie ist der Ablauf einer statischen/dynamischen Codeanalyse?


== Literaturs==
* Hoffmann, D. W.: Software-Qualität. Berlin Heidelberg; Springer-Verlag, 2013. DOI 10.1007/978-3-642-35700-8_4
* Witte, F.: Testmanagement und Softwaretest. Berlin Heidelberg: Springer, 2001. ISBN 978-3-658-09963-3
* Elfriede, D; Jeff, R; John, P.: Software automatisch testen. Wiesbaden: Springer 2016. ISBN 978-3-658-09963-3


== Literatur ==
* Ernest Wallmüller: Software–Qualitätsmanagement in der Praxis. Software-Qualität durch Führung und Verbesserung von Software-Prozessen. 2. Auflage. Hanser, München u. a. 2001, ISBN 3-446-21367-8.
* Hoffmann, D. W.: Software-Qualität. Springer, 2013. ISBN 978-3-642-35700-8
* Ungermann, C., Tesch, F.-J., Stolpe, B., Weissert, M.: Qualitätsmanagement bei der Softwareerstellung.Springer, 1996. ISBN 978-3-642-95788-8




----
----
→ zurück zum Hauptartikel: [[Seminar_SDE_WS_19/20|Seminar SDE WS 19/20]]
→ zurück zum Hauptartikel: [[Seminar_SDE_WS_19/20|Seminar SDE WS 19/20]]

Version vom 21. Oktober 2019, 13:01 Uhr

Einleitung

Ein Softwaretest prüft und bewertet Software auf Erfüllung der für ihren Einsatz definierten Anforderungen und misst ihre Qualität. Die gewonnenen Erkenntnisse werden zur Erkennung und Behebung von Softwarefehlern genutzt. Tests während der Softwareentwicklung dienen dazu, die Software möglichst fehlerfrei in Betrieb zu nehmen.

Von diesem, eine einzelne Testmaßnahme bezeichnenden Begriff ist die gleich lautende Bezeichnung 'Test' (auch 'Testen') zu unterscheiden, unter der die Gesamtheit der Maßnahmen zur Überprüfung der Softwarequalität (inkl. Planung, Vorbereitung, Steuerung, Durchführung, Dokumentation usw.; siehe auch Definitionen) verstanden wird.

Den Nachweis, dass keine Fehler (mehr) vorhanden sind, kann das Softwaretesten nicht erbringen. Es kann lediglich fallibilistisch feststellen, dass bestimmte Testfälle erfolgreich waren. Edsger W. Dijkstra schrieb hierzu: „Program testing can be used to show the presence of bugs, but never show their absence!“ (Das Testen von Programmen kann die Existenz von Fehlern zeigen, aber niemals deren Nichtvorhandensein). Der Grund ist, dass alle Programmfunktionen und auch alle möglichen Werte in den Eingabedaten in allen ihren Kombination getestet werden müssten – was (außer bei sehr einfachen Testobjekten) praktisch nicht möglich ist. Aus diesem Grund beschäftigen sich verschiedene Teststrategien und -konzepte mit der Frage, wie mit einer möglichst geringen Anzahl von Testfällen eine große Testabdeckung zu erreichen ist.

Geben Sie einen Überblick über das Thema Software-Testverfahren.

Ihre Aufgaben

  • Motivieren Sie das Gebiet der statischen Codeanalyse.
  • Einführung in die Qualitätssicherung durch statische Software-Testverfahren.
  • Stellen Sie die in der Literatur gängigen Verfahren vor.
  • Ordnen Sie vor diesem Hintergrund MATLAB Polyspace ein.
  • Einführung in die Software mit praktischen Beispielen.
  • Live-Vorführung von MATLAB Polyspace (Lizenzen sind an der HSHL vorhanden)
  • Beschreiben Sie den Funktionsumfang der Software anhand praktischer Beispiele.

Sprechen Sie die Schnittstellen zu den Nachfolgenden Vorträgen bitte mit den Kommilitonen ab.

Kür-Aufgabe

Machen Sie doch eine Umfrage unter Ihren Kommilitonen (Semester 1-7) welche Firmen welche statische Software Testverfahren einsetzen und warum. Das wäre aber schon das ++ hinter der 1.


Mögliche Fragen

  • Wozu braucht man eine statische/dynamische Codeanalyse?
  • Wie funktioniert eine statische/dynamische Codeanalyse?
  • Wie dokumiert man die Ergebnisse?
  • Wie ist der Ablauf einer statischen/dynamischen Codeanalyse?

Literaturs

  • Hoffmann, D. W.: Software-Qualität. Berlin Heidelberg; Springer-Verlag, 2013. DOI 10.1007/978-3-642-35700-8_4
  • Witte, F.: Testmanagement und Softwaretest. Berlin Heidelberg: Springer, 2001. ISBN 978-3-658-09963-3
  • Elfriede, D; Jeff, R; John, P.: Software automatisch testen. Wiesbaden: Springer 2016. ISBN 978-3-658-09963-3



→ zurück zum Hauptartikel: Seminar SDE WS 19/20