Stefan Schmerler - Softwaretest in der Praxis

Здесь есть возможность читать онлайн «Stefan Schmerler - Softwaretest in der Praxis» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: unrecognised, на немецком языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Softwaretest in der Praxis: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Softwaretest in der Praxis»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Dieses Buch ist als praktische Hilfestellung für all jene gedacht, die sich als Entwickler, Manager oder Studierende mit der Fragestellung des effizien­ten Testens von Software auseinandersetzen. Anhand vieler konkreter Beispiele aus der Praxis und fast 400 Illustratio­nen wird leicht verständlich vermittelt, auf welche Weise Software heute getestet wird und welche Werkzeuge und Testsysteme dabei zum Einsatz kommen. Ein zentraler Punkt dieses Buchs ist die Testmethodik – das Wie macht die Musik! Bereits durch Beachtung einfacher Grundregeln bei der Testfallermittlung kann mit geringeren Aufwänden in kürzerer Zeit der Reifegrad von Software deutlich über das Maß gesteigert werden als dies beim unsystematische (und leider oft anzutreffenden) «Drauflos-Testen» der Fall wäre.
Konkret adressiert das Buch folgende Fragestellungen: Welche Testtechnologie soll eingesetzt werden für mein spezifisches Problem?
Wie lange und mit welchem Aufwand sollte ich testen, um guten Gewissens (was auch immer das beim Testen heißen mag) die Testphase abbrechen zu können? Wie hoch ist das dann noch verbleibende Risiko, wie fehleranfällig ist mein System dann noch? Gibt es eine Metrik für Reifegrad und Qualität von Software, die einfach und schnell anzuwenden ist?
Für die häufigsten Testprobleme werden Schritt-für-Schritt-Anleitungen hinsichtlich Testfallermittlung vorgeschlagen, um mit minimalem Aufwand die größtmögliche Absicherungstiefe zu erzielen. Der Leitfaden kann unmittelbar eingesetzt werden in fast jedem Softwareentwicklungsprojekt. Neben dem klassischen Softwaretest (dynamische und statische Test­verfahren, Test von Echtzeitsystemen, modellbasierter Test u.a.), werden wichtige Aspekte der Absicherung eingebetteter Software am Beispiel der Automobilelektronik detailliert erläutert, z. B. Hardware-, Software-, Mo­del- und Vehicle-in-the-Loop-Technologie, virtuelle Integration bis hin zum Test von Fahrerassistenzsystemen und der Software für Autonomes Fahren.

Softwaretest in der Praxis — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Softwaretest in der Praxis», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Abb 110 Hierarchisches Funktionsmodell in Simulink Grafische Notationen - фото 20

Abb. 1-10: Hierarchisches Funktionsmodell in Simulink

Grafische Notationen machen Funktionen

besser verständlich als lange Listings.

Die Simulation ist eines der am weitesten verbreiteten Analyseverfahren. Sie ist vergleichsweise kostengünstig, intuitiv anwendbar und bietet viele Möglichkeiten. Durch die automatische Codegenerierung aus dem Modell (zielgerichtet optimiert für spezifische Ziel-Controller) muss die Funktion nur einmal modelliert werden, die klassische und fehleranfällige manuelle Codeerstellung kann entfallen. Wer allerdings glaubt, automatisch generierter Code sei fehlerfrei, der sei hier eines Besseren belehrt, wie Codeanalysewerkzeuge uns Tag für Tag aufzeigen. Doch auch dazu später mehr.

Simulation prüft nicht das SUT,

sondern nur dessen Abstraktion.

Eines sollte man bei der Simulation im Auge behalten. Simulation ist immer eine Abstraktion von der Realität. Je realitätsnäher das Modell ist, desto geringer ist dieser Unterschied. Er ist aber immer existent.

Simulation ist immer eine Abstraktion von der Realität. Es hängt vom Testziel ab, ob der Unterschied zwischen Modell und Realität tolerierbar ist. Keine Simulation kann den finalen Test des realen Systems ersetzen.

Modellbildung kann für komplexe Systeme extrem aufwendig sein. Diesen Aufwand muss man treiben, wenn aus Simulationsergebnissen belastbare Erkenntnisse gezogen werden soll. So kann es sein, dass aufgrund zu großer Abstraktion des Modells oder schlichtweg aufgrund von Modellfehlern das Modell sich so weit vom eigentlichen SUT unterscheidet, dass eine fehlerfreie Simulation nicht automatisch ein fehlerfreies SUT bedeutet. Und umgekehrt spiegeln sich womöglich simulativ gefundene Fehler gar nicht im realen SUT. Wir dürfen nicht vergessen: Testziel ist die Fehlerfreiheit des Codes auf dem Steuergerät und nicht nur die des Modells!

industrielle Nutzung

Im industriellen Kontext werden daher erhebliche Aufwände getrieben, um mit qualitativ höchstwertigen Modellen arbeiten zu können. Nur so kann man aufgrund der Verlässlichkeit der Ergebnisse durch die simulative Erprobung die teurere Erprobung auf der Zielhardware bzw. in der Zielumgebung reduzieren. In der Automobilindustrie kommen nicht selten bei HiL-Simulatoren Fahrzeugmodelle zum Einsatz, für die Dutzende von Personenjahren angesetzt werden können.

Wie komplex sollte ein Modell sein?

Und ein weiterer Aspekt ist nicht zu vernachlässigen: Je komplexer und »besser« ein Modell ist, desto rechenaufwendiger ist die Simulation. Wenn die Ausführung eines Codes bis auf die Simulation der Prozessorhardware reicht, liegt ggf. ein Vielfaches zwischen Simulationszeit und Echtzeit, d. h. es könnte Minuten dauern, um eine Sekunde eines Funktionscodes zu simulieren. Andererseits ist es oftmals das Ziel, dass die Simulation so performant ist, dass Echtzeit erreicht werden kann. Hintergrund ist der Wunsch, bei der Absicherung eines Systems reale und simulierte Komponenten zu mischen, d. h., beide Welten benötigen dieselbe Zeitbasis, um miteinander kommunizieren zu können. Es werden also sehr leistungsfähige Hardwareplattformen zum Einsatz gebracht.

Ziel ist es, die Echtzeit zu schlagen.

Bei der Wahl der Modelltiefe sollte man allerdings aus wirtschaftlichen Gründen auch nicht über das Ziel hinausschießen. Es gilt der Grundsatz: So viel wie nötig, so wenig wie möglich. Die Systeme werden also so dimensioniert, dass noch genügend Rechenreserven vorhanden sind, um in jeder Situation noch Performance in Echtzeit erreichen zu können. Und ist die Simulation schneller als die Realität, ist das kein Problem: Die Realität kann zwar nicht auf die Simulation warten (die Dauer einer Sekunde lässt sich leider nicht ändern, auch wenn man das Gefühl hat, dass die Zeit manchmal viel zu schnell vergeht …), umgekehrt ist das aber sehr wohl möglich: Rechner sind sehr geduldige Wesen.

1.3.6 Testmethoden

Intuition und Bauchgefühl sind

keine guten Berater beim Test.

Wie bereits ausgeführt, liegt der Schlüssel zur Effizienz beim Testen in der Automatisierung und Methodik der Tests. Ein ziel- und planloses Ausprobieren verschiedener Stimuli »nach Intuition« und das Beenden des Testprozesses »nach Bauchgefühl« sind der beste Garant für eine kostenintensive und dennoch in puncto Reifegrad schlechte Absicherung.

Die Kunst des Testens besteht darin, mit möglichst wenigen Tests die wesentlichen Fehler zu finden.

Worauf kommt es beim Testen an?

Das Testergebnis ist immer auch im wirtschaftlichen Kontext zu sehen. Niemand kann es sich leisten, für einfache Steuerungen Monate an Testaufwand zu investieren. In kurzer Zeit ein akzeptables Ergebnis zu erreichen, ist oftmals besser, als sich über einen langen Zeitraum an das perfekte Ergebnis anzunähern. Zeit ist im industriellen Kontext ein rares Gut, und wenn die verbleibenden Fehler tolerierbar sind, ist dies der optimale Weg. Es lohnt sich für viele Systeme nicht, die letzten 5 % vorhandener Fehler aus dem Code zu eliminieren, wenn man dafür 50 % der bislang investierten Ressourcen bräuchte! Man sollte sich allerdings Gedanken über die kritischsten Fehler gemacht haben und diese absichern. Mit den dann noch verbleibenden Auffälligkeiten kann man ggf. leben und diese erst bei Auftreten beseitigen.

A fool with a tool is still a fool.

Testmethodik kann als das Know-how des Testens bezeichnet werden. Die zum Einsatz kommende Testtechnologie ist nur eine notwendige, aber keine hinreichende Bedingung für den effizienten Testerfolg – ich erinnere an den Wahlspruch der 1990er Jahre: »A fool with a tool is still a fool.«, als man in tiefer Toolgläubigkeit in Werkzeuge investierte, ohne sie richtig verstanden zu haben oder anwenden zu können. Merke: Die beste Technologie nutzt nichts, wenn sie nicht richtig angewandt wird!

Testen muss planvoll erfolgen mit

klar definiertem Ziel und Ende.

In diesem Kontext ist der Einsatz von Testmethodik zu sehen. Wenn ein Testingenieur nicht sofort auf die Frage antworten kann, warum gerade jetzt genau dieser Test ausgeführt wird, verfolgt er höchstwahrscheinlich keinen Plan und seinen Tests liegt womöglich keinerlei Methodik zugrunde.

Im Folgenden soll ein Überblick über die verbreitetsten Testmethoden gegeben werden. Diese werden in Form von Steckbriefen mit den wichtigsten Charakteristika und einer Bewertung vorgestellt, um in diesem Kapitel einen schnellen Überblick zu vermitteln. Eine Vertiefung erfolgt dann noch in den folgenden Kapiteln, insbesondere in Kap. 5 (Dynamischer Test).

1.3.6.1 Funktionaler Test

Funktionstest erfolgt

gegen die Spezifikation.

Der wichtigste Vertreter im Bereich Testmethodik ist der funktionale Test oder auch Funktionstest mit einer Reihe von Untermethoden. Allen gemein ist das Prinzip, dass ein Funktionstest immer gegen die Spezifikation erfolgt. Man liest die Spezifikation des SUT und leitet daraus die durchzuführenden Testinhalte ab.

Eigenschaften von Lastenheften

Technische Spezifikationen z. B. für elektronische Steuergeräte umfassen eine Vielzahl von Anforderungen, Diagrammen und Beschreibungen technischer Abläufe des Sollverhaltens. Für die Erfassung haben sich in den letzten Jahren Werkzeuge wie z. B. DOORS als Standard etabliert. Sie bringen Struktur in die große Menge an funktionalen Teilbeschreibungen, indem sie Anforderungen (Requirements) vereinzeln, d. h. einzeln referenzierbar machen. Jede Anforderung erhält eine ID und kann im Übrigen auch zu Testdaten oder anderen Dokumenten verlinkt werden.

Unter Testabdeckung versteht man den Anteil aller Anforderungen, die bereits in einem Test überprüft wurden. Man könnte z. B. für jede Anforderung einen Test erstellen, der den in der Anforderung dokumentierten technischen Sachverhalt prüft.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Softwaretest in der Praxis»

Представляем Вашему вниманию похожие книги на «Softwaretest in der Praxis» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Softwaretest in der Praxis»

Обсуждение, отзывы о книге «Softwaretest in der Praxis» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x