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», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

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

Интервал:

Закладка:

Сделать

1.5 Zusammenfassung

▶Man unterscheidet abhängig von der Ausführung des Testobjekts zwischen dynamischem und statischem Test mit jeweils vielen Unterausprägungen.

▶Ein Test zeigt als falsifizierendes Verfahren nur die Anwesenheit von Fehlern, nie deren Abwesenheit. Es gibt aber Verfahren, mit denen man das (Nicht-)Vorliegen von geforderten Eigenschaften beweisen kann.

▶Das wichtigste dynamische Testverfahren ist der Funktionstest gegen die Spezifikation, bei statischen Tests sind es Reviews und statische Codeanalysen. Oft ist es sinnvoll, mehrere Verfahren zu kombinieren.

▶Testen beansprucht einen großen Anteil der Entwicklungsressourcen. Es gibt je nach Risiko und Randbedingungen des Projekts beim Testaufwand einen optimalen Kompromiss zwischen Testaufwand und Reifegrad, den man aus wirtschaftlichen Gründen eingehen muss.

▶Beachten Sie die sieben Grundsätze des Testens!

▶Nur ein kleiner Teil des Umfangs einer Software spiegelt die eigentliche Funktion wider. Der größte Teil widmet sich der Robustheit und Fehlerbehandlung bzw. -vermeidung.

▶Psychologische Aspekte spielen beim Testen und vor allem bei der Kommunikation der Ergebnisse eine wesentliche Rolle.

2 Zuverlässigkeitsanalysen Zuverlässigkeitsanalysen unterstützen den - фото 26

2 Zuverlässigkeitsanalysen

Zuverlässigkeitsanalysen unterstützen den Absicherungsprozess durch die Einführung von Metriken zur Beurteilung des Reifegrads, insbesondere des Ausfallverhaltens von Software. Auf diese Weise bekommt der Tester objektive Kriterien an die Hand, nach denen er entscheiden kann, ob die angestrebten Qualitätsziele erreicht wurden und der Testprozess beendet werden kann.

2.1 Wichtige Eigenschaften von Embedded Software

Im Gegensatz zu Bürosoftware kann von Software eingebetteter Systeme eine erhebliche Gefährdung ausgehen. Aus diesem Grunde wurden bereits vor einigen Jahren Normen geschaffen, die sich mit Sicherheitsaspekten von Software auseinandersetzen. Eine dieser Normen ist die ISO 26262 [7]. Sie definiert:

Sicherheit ist die Abwesenheit unakzeptabler Risiken.

Realistischerweise wird auch für sicherheitskritische Systeme keine vollständige Abwesenheit von Risiken gefordert, vielmehr ist das Restrisiko auf einen annehmbaren Wert zu begrenzen. Man unterscheidet ferner zwischen Safety und Security:

Safety steht für den Schutz der Umwelt vor Fehlern der Elektronik, Security für den Schutz der Elektronik gegen Manipulation von außen.

Es bleibt festzustellen: Software ist sicher im Sinne von Safety, eingebettete Software nicht unbedingt. Je größer die möglichen Auswirkungen von Fehlverhalten sind, desto sicherheitskritischer ist die Software einzustufen.

Zuverlässigkeit

DIN EN ISO 9000 definiert den Begriff Zuverlässigkeit als Sammelbegriff zur Beschreibung der Verfügbarkeit eines Systems mit den Einflussfaktoren Funktionsfähigkeit, Instandhaltbarkeit und Instandhaltungsbereitschaft. Man benutzt hier auch den englischen Ausdruck Dependability.

DIN 40041

Die DIN 40041 verwendet einen engeren Zuverlässigkeitsbegriff im Sinne einer stochastischen Qualitätseigenschaft im Hinblick auf das Verhalten während oder nach bestimmten Zeitspannen unter vorgegebenen Anwendungsbedingungen. In dieser Definition spricht man im Englischen von Reliability.

Zuverlässigkeit ist ein Maß für die Funktionstüchtigkeit, ausgedrückt durch die Wahrscheinlichkeit, über eine definierte Zeit und bei definierten Randbedingungen funktionstüchtig zu bleiben.

Das Qualitätsmerkmal der Zuverlässigkeit untergliedert sich in vier Teilmerkmale:

▶Die Verfügbarkeit (Availability) beschreibt die Betriebsbereitschaft eines Systems oder einer Komponente.

▶Der Reifegrad (Maturity) gibt an, wie gut ein System funktional die Anforderungen erfüllt, durch die es spezifiziert wurde.

▶Unter Fehlertoleranz (Fault Tolerance) ist zu verstehen, wie gut ein System oder eine Komponente trotz Vorhandensein von Hardware- oder Softwarefehlern funktional noch seinen Anforderungen entspricht.

▶Die Wiederherstellbarkeit (Recoverability) gibt an, wie lange im Fehlerfall der funktionale Ausfall des Systems oder der Komponente voraussichtlich anhalten wird.

MTBF

Als stochastische Eigenschaft können nun Kenngrößen definiert werden, allen voran die MTBF (Mean Time between Failure). Bei reparierbaren Systemen ist dies der Mittelwert der Zeitspanne zwischen zwei Ausfällen eines technischen Systems. Diese statistische Information sagt allerdings wenig über dessen Lebensdauer aus. Wenn z. B. ein Festplattenhersteller seine Geräte mit einer MTBF von 2.000.000 Stunden bewirbt – das entspricht einem mittleren Ausfall nach 228 Jahren – lehrt die eigene Erfahrung bereits, dass dies ein theoretischer Wert unter idealen Laborbedingungen sein muss, nicht die real zu erwartende Lebensdauer. Die Werte sind ferner Hochrechnungen des Ausfallverhaltens auf Grundlage von Beobachtungen über deutlich kürzere Zeiträume.

MTTF

Unter Mean Time to Failure (MTTF) versteht man bei nichtreparierbaren Systemen die mittlere Betriebsdauer bis zum Ausfall.

MTTR

Mean Time to Repair (MTTR) wiederum bezeichnet bei reparierbaren Systemen den Mittelwert des Stillstandszeitintervalls (Reparaturdauer).

Verfügbarkeit

Aus diesen Größen lässt sich die Verfügbarkeit, also das Maß für die Fähigkeit eines Systems, zu einem gegebenen Zeitpunkt funktionstüchtig zu sein, als das folgende Verhältnis berechnen:

Höhere Verfügbarkeit ergibt sich durch Vergrößerung der Zuverlässigkeit - фото 27

Höhere Verfügbarkeit ergibt sich durch Vergrößerung der Zuverlässigkeit (Zähler) und Verringerung der Stillstandszeitintervalle (Nenner).

Echtzeiteigenschaften: hart,

fest oder weich

Eine weitere für den Reifegrad eingebetteter Systeme wichtige Eigenschaft ist die Echtzeitfähigkeit. Dem Test dieser Eigenschaft ist im weiteren Verlauf dieses Buchs ein eigenes Kapitel gewidmet. Grob unterscheidet man nach harter, fester und weicher Echtzeitfähigkeit. Für harte Echtzeitsysteme bedeutet eine Abweichung im Zeitverhalten (besonders die Nichteinhaltung von Deadlines) in der Regel einen Fehler. Zu späte Reaktionen sind also Funktionsfehler.

Das Zeitverhalten wird wie

eine Funktion behandelt.

Bei festen Echtzeitanforderungen droht zwar nicht unbedingt ein unmittelbarer Schaden. Nach Ablauf der Zeitanforderung ist das Ergebnis der Berechnung jedoch nutzlos und kann verworfen werden. Weiche Echtzeitfähigkeit bedeutet hingegen, dass gemäß Spezifikation verspätete Reaktionen nur störend sind, sie führen aber zu keinem kritischen Systemverhalten und werden auch nicht verworfen.

2.2 Zuverlässigkeitsmodelle

Von zentraler Bedeutung beim Testen ist die sinnvolle Feststellung eines Testende-Kriteriums. Bei einem sinnvoll bestimmten Mindestreifegrad kann und sollte der Testprozess abgebrochen werden. Auch ein »Übertesten« sollte aus wirtschaftlichen Gründen nicht erfolgen – Aufwand und Nutzen stehen dann in keinem guten Verhältnis mehr.

Metriken für den Reifegrad

Voraussetzung für all dies sind quantifizierbare Eigenschaften des Softwarereifegrads – wir brauchen Metriken! Genau hier helfen uns Zuverlässigkeitsmodelle.

Was ist ein Zuverlässigkeitsmodell?

Ein Zuverlässigkeitsmodell ermöglicht Aussagen über das in Zukunft zu erwartende Ausfallverhalten, ohne auf statistische Werte warten zu müssen. Man kann z. B. schlecht fünf Jahre bei der Ermittlung einer MTTF warten, um eine Metrik hinsichtlich Ausfallverhalten zu erhalten. Aus diesem Grund greift man auf Daten zurück, die aus dem während der Entwicklung beobachteten Ausfallverhalten gewonnen wurden. Der Vorteil dieses Vorgehens liegt auf der Hand: Wir schaffen uns auf diese Weise die Möglichkeit zur Prävention. Im Auge behalten muss man nur die Beurteilungsqualität. Wie immer bei der Nutzung eines Modells liegt eine Abstraktionsstufe zwischen Modell und Realität. Gängige Methoden der Zuverlässigkeitsermittlung sind z. B.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x