Diskussion:Testaufwand

Letzter Kommentar: vor 8 Jahren von GiftBot in Abschnitt Defekte Weblinks

hab noch ein paar Verweise von anderen Seiten hierher gesetzt --Erkan Yilmaz 19:09, 2. Okt 2006 (CEST)

Fehlerfreiheit durch Formale Verifikation? Bearbeiten

Hallo Sebastian, du hast den Artikel um die Aussage ergänzt, dass die "Abwesenheit von Fehlern durch die FV erreichbar" wäre. Ich hab das schon abgeschwächt und 'theoretisch' hinzugefügt. Nach dem Lesen von Formale Verifikation bin ich aber der Ansicht, dass auch damit keine 100% erreichbar sind, denke nur an mögliche Umgebungsbedingungen, die ein Programm beeinflussen können. Außerdem scheinen mir diese 100% dort schon deshalb nicht möglich, weil das Programm (so weit ich das verstehen kann; das Kapitel ist nicht sehr 'laientauglich') nicht wirklich ausgeführt wird, also auch menschliche Schwächen (Nichterkennen von Problemen) voll zum Tragen kommen können.

Ich schlage vor, die Aussage zu "Fehlerfreiheit" (durch Test nicht zu gewährleisten) einfach so stehen zu lassen; wir nehmen Deinen Satz also wieder raus, nehmen die schon in Softwaretest enthaltene Aussage (wegen der Komplexität ...) in Kurzform mit rein und ergänzen die Beispiele zu statische Tests in "Softwaretest" um die FV (schon erledigt).
Einverstanden? Viele Grüße von --VÖRBY 09:40, 26. Jan. 2011 (CET)Beantworten

Hmm meines Wissens nach gibt es für die formale Verifikation zunächst einmal eine formale Spezifikation. Alles was verlangt wird muss dort drinnen stehen, andere Umgebungsbedingungen gibt es nicht. Man kann prüfen, ob die formale Verifikation 100% die Spezifikation abdeckt, also kann man mit formaler Verifikation Fehlerfreiheit beweisen. Formale Verifikation = Der formale Beweis der Korrektheit eines Programms (IEEE 610.12). Im WP Artikel dazu steht "... den mathematischen Beweis, dass ein Programm der vorgegebenen Spezifikation entspricht"
mMn stimmt also die ursprüngliche Aussage, dass Abwesenheit von Fehlern durch die FV erreichbar ist - allerdings ausschließlich der Fehler, die bei der Spezifikation entstanden sind. In der Praxis funktioniert das auch - z.B. konnte in der Vergangenheit der 386er und die Fließkomma-Operationen des Pentiums formal als fehlerfrei (gegenüber der Spezifikation) bewiesen werden.
Ein Studienkollege von mir ist Uni-Prof und beschäftigt sich mit dem Thema. Er meinte dass heutzutage Programme in der Größe von bis zu 10.000 LOC formal als korrekt bewiesen werden können - alles was darüber hinausgeht ist einfach viel zu aufwändig. --Sebastian.Dietrich 21:53, 27. Jan. 2011 (CET)Beantworten
Danke für die ausführliche Antwort. Trotzdem halte ich diese Sache für praktisch nicht möglich: Wo gibt es eine solche Spezifikation - die jedes kleinste Detail exakt und widerspruchsfrei vorgibt? Zumal 'Testen' auch Fehler in der Spezifikation finden sollte (siehe Softwaretest#Definition). Findet der Verifizierende auch (jeden) Tippfehler im Code? Umgebungsbedingungen wären z.B. der Ablauf unter einer anderen Betriebssystemversion, Unterschiede Testumgebung / Produktionsumgebung, falsche JCL-Angaben (auch wenn sie formal fehlerfrei wären); was will man da (praktisch gesehen) 'verifizieren'? Es geht ja auch nicht nur um formale Fehlerfreiheit, sondern um vollständige Fehlerfreiheit.
Als Maßnahme bei den Statischen Tests habe ich die FV schon eingetragen, aber es sollte nicht behauptet werden, dass damit Fehlerfreiheit zu 100% erreichbar wäre. Außerdem denke ich, wir sollten unter 'Testaufwand', die Prinzipien des Demeter-Gesetzes sinngemäß anwendend, nicht zu weit vom Thema abschweifen. Auch war die bisherige Aussage nur eine Hinleitung zur nachfolgenden Hauptaussage, die ursprünglich mit 'Deshalb' begann. Nach wie vor würde ich also die Aussage gerne entfernen und den bisherigen Satz wie folgt ändern:
Nach den Prinzipien des Softwaretestens (ISTQB), Grundsatz 2, ist vollständiges Testen nicht möglich (*); denn Testen kann zwar die Anwesenheit von Fehlern zeigen, nicht aber deren Abwesenheit (Grundsatz 1).
(*) Alle Einflussgrößen, in allen möglichen Kombinationen, sind praktisch (außer bei trivialen Funktionen) nicht prüfbar.
Deshalb ...
Gerne können wir aber die Aussage in der jetzigen Form (mit 'theoretisch') auch drin lassen. Gib bitte nochmal kurz Antwort. Danke. --VÖRBY 09:49, 28. Jan. 2011 (CET)Beantworten
@Spezifikation die jedes kleinste Detail exakt und widerspruchsfrei vorgibt. Klar gibts die - heisst eben "Formale Spezifikation" und hat mit einer fachlichen Spez nichts ähnlich. Ist auch nix theoretisches, sondern wird auch immer wieder verwendet (z.B. bei CPUs, aber auch die Java Lang Spec kommt einer formalen Spez sehr nahe (siehe http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html)).
Nachdem eine formale Verifikation ein mathematischer Beweis ist, beweist sie 100% Fehlerfreiheit gegenüber der formalen Spez. Eine andere Fehlerfreiheit gibt es ja auch gar nicht, ein Fehler ist ja immer eine Abweichung gegenüber einer Spezifikation.
Obs jetzt auch unbedingt im Artikel stehen muss ist eine andere Sache. Hier gehts ja um Testaufwand und formale Verifikation ist kein Testverfahren. Ich würde also entweder den Satz drinnen lassen (aber ohne theoretisch, weil das eben nicht stimmt), oder ganz rausnehmen. --Sebastian.Dietrich 19:44, 28. Jan. 2011 (CET)Beantworten

Danke. Dann nehm ich's wieder raus; ist mir unter 'Softwaretest' (und in diesem Kontext steht ja 'Testaufwand' zu weit von der praktischen Realität beim Testen entfernt und sichert 'nur' die formale Fehlerfreiheit. Bis demnächst mal wieder. --VÖRBY 10:25, 29. Jan. 2011 (CET)Beantworten

Quellenangaben Bearbeiten

Nicht auffindbar: Martin Pol, Tim Koomen, Andreas Spillner: Management und Optimierung des Testprozesses, ISBN 978-3-89864-951-3 (nicht signierter Beitrag von 82.194.118.252 (Diskussion) 11:16, 8. Nov. 2012 (CET))Beantworten

Defekte Weblinks Bearbeiten

GiftBot (Diskussion) 23:25, 27. Dez. 2015 (CET)Beantworten