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 114 Steckbrief Mutationentest 1365 Evolutionärer Test Ein Traum wird - фото 24

Abb. 1-14: Steckbrief Mutationentest

1.3.6.5 Evolutionärer Test

Ein Traum wird wahr.

Ein besonders interessanter und eher forschungsorientierter testmethodischer Ansatz ist die evolutionäre Testfallableitung. In der Praxis hinter dem funktionalen Test zurückbleibend, wird ein Verfahren zur vollautomatischen Testfallgenerierung verfolgt – dem Traum jedes Testverantwortlichen.

vollautomatische Testgenerierung für

Funktions-, Struktur- und Realzeittest

Den evolutionären Testverfahren ist im weiteren Verlauf dieses Buchs ein eigenes Kapitel gewidmet, deshalb sei hier nur festgehalten, dass sich diese Methodik der Testfallableitung für verschiedene Anwendungen von Funktionstest über Strukturtest bis hin zum Realzeittest (z. B. Ermittlung der längsten Ausführungszeit, Worst Case Execution Time) eignet. Genetischen Algorithmen folgend werden zielgerichtet Stimuli iterativ so lange immer weiterentwickelt und (im Hinblick auf die Eigenschaft, ein Fehlverhalten hervorzurufen) optimiert, bis ein Fehler auftritt, das SUT quasi »gebrochen« wurde. Gelingt die Herbeiführung eines Fehlverhaltens nicht in einer gewissen Zeit, weist das System den Fehler mit hoher Wahrscheinlichkeit auch nicht auf und das Verfahren bricht ab.

Evolutionäre Verfahren zeichnen sich dadurch aus, dass man nur sehr wenig über das SUT wissen muss (Black Box) und eine Eignung für große Parameterräume bei vollständiger Automatisierbarkeit vorliegt.

Abb 115 Steckbrief evolutionärer Test 137 BacktoBackTest und Testorakel - фото 25

Abb. 1-15: Steckbrief evolutionärer Test

1.3.7 Back-to-Back-Test und Testorakel

Beim Einsatz von automatisierten Methoden zur Testfallableitung ist es natürlich erforderlich, zu den erlangten Testfällen auch die Ermittlung der spezifikationskonformen (also korrekten) Antworten sowie auch die Testbewertung automatisieren zu können.

Wie funktioniert ein Testorakel?

Systeme zur Ermittlung spezifikationskonformer Antworten bezeichnet man als Testorakel. Beim Soll-/Istwert-Vergleich unterstützen sie bei der Feststellung der Sollwerte. Dies ist nicht in allen Fällen möglich, es wird z. B. nicht gelingen, aus einem Lastenheft diese Informationen automatisiert zu extrahieren. Je nachdem, in welcher Weise die Spezifikation vorliegt, ergeben sich allerdings gewisse Möglichkeiten der Automatisierung.

Ein Testorakel kann z. B. ein ausführbarer Prototyp eines Lastenhefts sein. In der Tat werden oftmals statt eines textuellen Lastenhefts ausführbare Modelle vom Auftraggeber an den Zulieferer übergeben, die exemplarisch die wesentlichen Aspekte des zu implementierenden Verhaltens aufweisen – allerdings nur als Hülle und ohne reale Implementierung. Auch auf Robustheitsmaßnahmen wird hier weitgehend verzichtet. Liegt ein derartiger ausführbarer Prototyp vor, kann er als Testorakel genutzt werden.

Back-to-Back-Tests arbeiten

nur scheinbar redundant ...

Ein weiteres Einsatzgebiet für Testorakel ist der Back-to-Back-Test. Das zu testende Programm wird zweimal parallel und unabhängig voneinander erstellt. Jede Version wird mit denselben Testdaten beaufschlagt. Bei unterschiedlichen Ergebnissen ist eine Version fehlerhaft. Nur diejenigen Fehlerzustände, die in beiden Versionen mit selber Fehlerwirkung vorhanden sind, bleiben unentdeckt.

... und sind vor allem voll-

ständig automatisierbar!

Der Vorteil eines Back-to-Back-Tests ist die Automatisierbarkeit. Es ist ein Leichtes, beide Programmversionen mit denselben Testdaten zu beaufschlagen und die Antworten zu vergleichen.

Warum, so fragen Sie, sollte aber jemand auf die Idee kommen, dasselbe Programm zweimal zu entwickeln? Die Antwort lautet: Wenn Aufwände eine untergeordnete Rolle spielen, z. B. bei hochsicherheitskritischen Systemen. Die Wahrscheinlichkeit, dass dieselben Fehler bei unabhängigen Entwicklungen unterlaufen, ist vergleichsweise gering. Werden diese Programmversionen im Betrieb eingesetzt, spricht man von heterogener Redundanz. Dies ist z. B. bei Flugsteuerungen der Fall. Mehrere Einheiten (z. B. drei) bearbeiten dieselbe sicherheitskritische Aufgabe, und wenn alle Systeme zum selben Ergebnis führen (ein einfacher Vergleich genügt), wird das Ergebnis akzeptiert. Falls ein System abweicht, nimmt man das Ergebnis der beiden anderen übereinstimmenden.

homogene/heterogene Redundanz

Während sich die heterogene Redundanz als robust gegen Entwurfs- und Implementierungsfehler erweist, zeigt sich die homogene Redundanz (exakt das gleiche System kommt mehrfach zum Einsatz) nur robust gegen den Ausfall einer Einheit (z. B. Hardwaredefekt). Auch beim autonomen Fahren wird sicheres Verhalten durch Redundanz erkauft.

1.4 Psychologische Aspekte des Testens

Ein Sprichwort sagt »Irren ist menschlich«, und so ist es nicht verwunderlich, dass Entwicklern bei einer so anspruchsvollen Aufgabe wie der Softwareerstellung Fehler unterlaufen. Entscheidend ist die Art und Weise, wie Fehler im Unternehmen kommuniziert werden, sei es nun die Mitteilung eines Reifegrads an das Management oder die Information eines betroffenen Entwicklers durch die Testergruppe.

Fingerspitzengefühl und fakten-

orientierte Dokumentation

Die Art und Weise, wie dies erfolgt, kann für die Zusammenarbeit der betroffenen Personengruppen positive oder negative Auswirkungen haben. Es ist immer ein besonderes Fingerspitzengefühl gefragt, um zu vermeiden, dass die Kommunikation von Fehlerzuständen nicht als Kritik am Produkt und seinem Autor aufgefasst wird. Die Testergruppe darf auch nicht als Überbringer schlechter Botschaften für deren Inhalte verantwortlich gemacht werden. Gewisse soziale Kompetenzen helfen, dieses Konfliktpotenzial deutlich zu senken und den respektvollen Umgang miteinander aufrechtzuerhalten. Laute Töne oder gar Streit sind stets zu vermeiden, da sie nicht förderlich sind für eine gute Zusammenarbeit zwischen Entwicklern und Testern.

das Gute im Fehler sehen!

Erkannte Fehlerwirkungen sind positiv aufzufassen, nicht als persönliches Versagen der beteiligten Autoren – können die Fehler doch erst nach deren Finden behoben werden. Dies verbessert die Qualität des Testobjekts. Dem Management kann dieser Sachverhalt ebenfalls als eine Verminderung des allgemeinen Produktrisikos auf positive Weise kommuniziert werden.

aus Fehlern lernen

Ein positiver Seiteneffekt ist die Möglichkeit, dass der Entwickler anhand erkannter konkreter Fehlerbilder seine eigenen Fähigkeiten verbessert. Aus Fehlern kann und sollte man lernen!

Ebenso spielt auch die Art der Dokumentation eine Rolle bei der Kommunikation. Testergebnisse und andere Resultate sind stets neutral und faktenorientiert zu dokumentieren. Fehlerberichte und Reviewergebnisse müssen objektiv und tatsachenbasiert verfasst werden.

sich in die Rolle der anderen

Fraktion hineinversetzen

Ein weiterer wichtiger Aspekt für die konstruktive Zusammenarbeit von Entwicklern und Testern ist die Fähigkeit, sich in die Rolle des anderen hineinversetzen zu können. Entwickler benötigen Testwissen und Tester benötigen Kenntnisse aus der Entwicklung. Dies ist sowohl fachlich von erheblichem Nutzen als auch bedeutsam für eine konstruktive Umgangsweise miteinander. Entwickler erwerben die Möglichkeit, ihre Testmethodik über die eines klassischen Entwicklertests hinaus zu verbessern und ihre Arbeit aus dem Blickwinkel der Testergruppe zu betrachten. Einer bei Entwicklertests häufig anzutreffenden Blindheit gegenüber den eigenen Fehlern kann hierdurch entgegengetreten werden.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x