1. Foren
  2. Kommentare
  3. Internet
  4. Alle Kommentare zum Artikel
  5. › Software-Tests neu denken…

Gibt es denn sowas wie Modelsim für Software?

Für Konsolen-Talk gibt es natürlich auch einen Raum ohne nerviges Gedöns oder Flamewar im Freiraum!
  1. Thema

Neues Thema Ansicht wechseln


  1. Gibt es denn sowas wie Modelsim für Software?

    Autor: bla 09.02.21 - 16:28

    kwt

  2. Re: Gibt es denn sowas wie Modelsim für Software?

    Autor: TheNX 09.02.21 - 16:37

    Ich kenne Modelsim nicht. Aber es gibt im Softwaretesting-Bereich eine unüberschaubare Menge an Werkzeugen. Man kann durchaus eine Testumgebung schaffen, die jeden denkbaren Aspekt einer Software abdeckt. In der Regel beschränkt man sich aber natürlich eher auf Aspekte, die sich aus der Userstory ergibt.

    Leider gibt es aber keinen automatisierten "DAU-Test" oder "Crazy User-Test", also wo ein echter Anwender die Software absichtlich "misshandelt". Ja, es gibt fuzzy logic tests usw. aber ich habe noch keinen gesehen, der eine komplette Anwendung vom UI bis zur Datenbank randomisiert durchtesten kann.

  3. Re: Gibt es denn sowas wie Modelsim für Software?

    Autor: bla 09.02.21 - 16:55

    Wenn du Hardware in VHDL oder Verilog oder was auch immer beschreibst, dann kannst du dir mit Modelsim den zeitlichen Verlauf deiner Signale anschauen.
    Dazu schreibst du dir eine sogenannte Testbench, die deine Hardware stimuliert.

    Das Problem mit den selbst geschriebenen Testbenches ist aber, dass es ein ziemlicher Aufwand ist möglichst viele Fälle abzudecken und das man gerne dazu tendiert, nur das zu berücksichtigen, was man erwartet.

  4. Re: Gibt es denn sowas wie Modelsim für Software?

    Autor: TheNX 09.02.21 - 19:03

    bla schrieb:
    --------------------------------------------------------------------------------
    > Wenn du Hardware in VHDL oder Verilog oder was auch immer beschreibst, dann
    > kannst du dir mit Modelsim den zeitlichen Verlauf deiner Signale
    > anschauen.
    > Dazu schreibst du dir eine sogenannte Testbench, die deine Hardware
    > stimuliert.
    >
    > Das Problem mit den selbst geschriebenen Testbenches ist aber, dass es ein
    > ziemlicher Aufwand ist möglichst viele Fälle abzudecken und das man gerne
    > dazu tendiert, nur das zu berücksichtigen, was man erwartet.

    Danke für deine Erklärung, wieder was gelernt. :-)

    Der Aufwand kann beim Software-Testing auch sehr hoch sein. Daher auch mein Hinweis, dass man sich eher an den Userstories und den dadurch relevanten Punkten abarbeitet. Insofern ist das hier sehr ähnlich. Man versucht möglichst viele Szenarien abzudecken, aber irgendeines wird es doch geben, an das man nicht gedacht hat. Am einfachsten und schnellsten umsetzbar sind noch die Unit-Tests. Die halten zumindest schon mal die gröbsten Fehler raus. Leider werden Unit-Tests faktisch nie für erste sicherheitsrelevante Tests genutzt, sondern eher eben für die rein funktionale Seite.

  5. Re: Gibt es denn sowas wie Modelsim für Software?

    Autor: freebyte 09.02.21 - 21:21

    TheNX schrieb:
    --------------------------------------------------------------------------------
    > Der Aufwand kann beim Software-Testing auch sehr hoch sein. Daher auch mein
    > Hinweis, dass man sich eher an den Userstories und den dadurch relevanten
    > Punkten abarbeitet.

    Das Kernproblem ist, dass die Tests gerne weit oben am UI installiert werden.

    Real muss man schon ziemlich weit unten Fehler abfangen.

    Ganz simples Beispiel: Viele Rundungsroutinen taugen nichts für die "bürgerliche Rundung" wie sie in DE gängig ist und wenn, dann funktionieren sie nicht immer so, wie gedacht vorallem wenn durch eine falsche Anwendung der Routine "Datenschrott" reinkommt.

    Im Artikel wurde ein Problem mit Zähler=0 und/oder Nenner=0 erwähnt, wenn das in der Reihenfolge korrekt abgeprüft wird, muss man nicht auf "Zähler=0 UND Nenner=0" prüfen.

    Da würde ich eher mal eine Prüfung auf die übergebenen Datentypen und/oder den realistischen Wertebereich einbauen (hab es hier nur mit EUR und KMUs zu tun, also wird gegen +/- 999 Millionen geprüft)

    Und so kann man das weiterführen.

    Bei PHP Software scheint man sich da eher selten bis gar nicht drum zu kümmern, aber das ist auch nicht die Zielgruppe

    fb

  6. Re: Gibt es denn sowas wie Modelsim für Software?

    Autor: xUser 09.02.21 - 22:51

    TheNX schrieb:
    --------------------------------------------------------------------------------
    > Der Aufwand kann beim Software-Testing auch sehr hoch sein. Daher auch mein
    > Hinweis, dass man sich eher an den Userstories und den dadurch relevanten
    > Punkten abarbeitet. Insofern ist das hier sehr ähnlich. Man versucht
    > möglichst viele Szenarien abzudecken, aber irgendeines wird es doch geben,
    > an das man nicht gedacht hat. Am einfachsten und schnellsten umsetzbar sind
    > noch die Unit-Tests. Die halten zumindest schon mal die gröbsten Fehler
    > raus. Leider werden Unit-Tests faktisch nie für erste sicherheitsrelevante
    > Tests genutzt, sondern eher eben für die rein funktionale Seite.

    Die Frage ist immer, testest du um eine Funktion zu verifizieren (verification testing) oder um Defekte zu finden (defect testing).

    Die Qualität deiner Tests kannst du zum Beispiel mittels mutation testing verifizieren. Das fügt zufällig Fehler in deinen Programcode ein und schaut dann, ob deinen Tests den Fehler finden. Die Idee hier ist, dass die meisten Fehler durch "falsche" Änderungen eingebaut werden. Dies simuliert das mutation testing.

    Willst du deinen Parser testen, dann fütterst du den mit zufälligen Werten und schaust was passiert (fuzzing).

    Schwierig wird es immer wenn du ein Transformation testen musst. Dann brauchst du (wie im Artikel beschrieben) ein Test-Orakel, welches dir sagt ob am Ende das richtige rausgekommen ist. Hier braucht man entweder eine andere Software zum Vergleichen oder muss sich ein synthetisches Modell bauen, möglichst ohne die Fehler dort zu reproduzieren.

    Es gibt sehr viel Literatur zum Thema Testen, aber nur wenig davon wird außerhalb der Sicherheitsbranchen (Raumfahrt, Flugzeug, ...) genutzt.

  7. Re: Gibt es denn sowas wie Modelsim für Software?

    Autor: TheNX 10.02.21 - 01:09

    freebyte schrieb:
    --------------------------------------------------------------------------------
    > TheNX schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Der Aufwand kann beim Software-Testing auch sehr hoch sein. Daher auch
    > mein
    > > Hinweis, dass man sich eher an den Userstories und den dadurch
    > relevanten
    > > Punkten abarbeitet.
    >
    > Das Kernproblem ist, dass die Tests gerne weit oben am UI installiert
    > werden.
    >
    > Real muss man schon ziemlich weit unten Fehler abfangen.

    Jain, es macht in der Praxis einer kundenspezifischen Entwicklung keinen Sinn an der Basis anzufangen. Denn dann testet man schön bottom top durch und stellt dann irgendwann in dem Prozess fest, dass die gewünschte Funktionalität gar nicht so implementiert wurde, wie es die Userstory/Lastenheft/etc. es wollen.

    > Ganz simples Beispiel: Viele Rundungsroutinen taugen nichts für die
    > "bürgerliche Rundung" wie sie in DE gängig ist und wenn, dann funktionieren
    > sie nicht immer so, wie gedacht vorallem wenn durch eine falsche Anwendung
    > der Routine "Datenschrott" reinkommt.
    >
    > Im Artikel wurde ein Problem mit Zähler=0 und/oder Nenner=0 erwähnt, wenn
    > das in der Reihenfolge korrekt abgeprüft wird, muss man nicht auf "Zähler=0
    > UND Nenner=0" prüfen.
    >
    > Da würde ich eher mal eine Prüfung auf die übergebenen Datentypen und/oder
    > den realistischen Wertebereich einbauen (hab es hier nur mit EUR und KMUs
    > zu tun, also wird gegen +/- 999 Millionen geprüft)

    Das alles würde ich eher in Unit-Tests packen, die dann die entsprechende Funktion(en) bzw. Methoden darauf prüft. Ist eigentlich schnell implementiert.

    > Bei PHP Software scheint man sich da eher selten bis gar nicht drum zu
    > kümmern, aber das ist auch nicht die Zielgruppe

    Hatte das zweifelhafte Vergnügen damit, PHP testen zu dürfen. Da ist die Kultur der "coolen Programmierer" leider noch weiter verbreitet. Testing ist da sehr uncool. Aber gleichzeitig muss ich dazu sagen, dass es definitiv Ausnahmen gibt. Aber dennoch ist PHP eher eklig zum testen, da stehen schwache Typisierung, anonyme Klassen usw. ziemlich im Weg, das kann ziemlich hässlich zum Testen werden.

    xUser schrieb:
    --------------------------------------------------------------------------------
    > TheNX schrieb:
    > ---------------------------------------------------------------------------
    > Die Frage ist immer, testest du um eine Funktion zu verifizieren
    > (verification testing) oder um Defekte zu finden (defect testing).

    Die Terminologie kenne ich in der QA für Software so nicht, meinst du eher den Unterbereich Unit-Testing? Die Schwerpunkte bei Anwendersoftware sind typischerweise Funktion anhand der Userstory etc., Usability/Accesbility testing, Sicherheit, sowie Unit-Testing. Der Rest je nach genauer Softwareart.

    > Die Qualität deiner Tests kannst du zum Beispiel mittels mutation testing
    > verifizieren. Das fügt zufällig Fehler in deinen Programcode ein und schaut
    > dann, ob deinen Tests den Fehler finden. Die Idee hier ist, dass die
    > meisten Fehler durch "falsche" Änderungen eingebaut werden. Dies simuliert
    > das mutation testing.

    Jain. In der Praxis muss man bei den Unit-Tests eben das definieren, was man anhand Tickets für die Aufgabe verstanden hat. Das kann schon mal falsch sein und würde kein Unit-Test der Welt als falsch erkennen. Ansonsten sollte man jeden Unit-Test natürlich auf Tauglichkeit prüfen, bringt schließlicht nichts, wenn immer PASS angezeigt wird, egal was passiert. Insofern bringt mutation testing ,randomisiert eingesetzt, auf der globaleren Ebene eher wenig Erkenntnisgewinn.

    > Willst du deinen Parser testen, dann fütterst du den mit zufälligen Werten
    > und schaust was passiert (fuzzing).

    Ja, natürlich. Besser aber noch, nicht einfach wild fuzzing zu machen, sondern bewusst Extrembedingungen, Sicherheitsaspekte (SQL-Injection etc.) usw. gleich mit einzubauen. Fuzzing ist immer nur das Sahnehäubchen drauf.

    > Schwierig wird es immer wenn du ein Transformation testen musst. Dann
    > brauchst du (wie im Artikel beschrieben) ein Test-Orakel, welches dir sagt
    > ob am Ende das richtige rausgekommen ist. Hier braucht man entweder eine
    > andere Software zum Vergleichen oder muss sich ein synthetisches Modell
    > bauen, möglichst ohne die Fehler dort zu reproduzieren.

    Ist machbar, aber ja, das ist einer der herausfordernden Dinge beim Testing.

    > Es gibt sehr viel Literatur zum Thema Testen, aber nur wenig davon wird
    > außerhalb der Sicherheitsbranchen (Raumfahrt, Flugzeug, ...) genutzt.

    Ja, siehe mein anderes Posting.

  8. Re: Gibt es denn sowas wie Modelsim für Software?

    Autor: minnime 17.02.21 - 13:19

    Im Grunde müsste man möglichst weit oben an der UI testen. Das geht aber nicht weil man dazu entweder die Steuerelemente in den UI Klassen public machen muss oder man packt den Unittest direkt in die UI Klasse mit rein, was beides nicht toll ist. Testet man weiter unten ist der Wert des Tests fraglich.

  9. Re: Gibt es denn sowas wie Modelsim für Software?

    Autor: xUser 20.02.21 - 10:39

    minnime schrieb:
    --------------------------------------------------------------------------------
    > Im Grunde müsste man möglichst weit oben an der UI testen. Das geht aber
    > nicht weil man dazu entweder die Steuerelemente in den UI Klassen public
    > machen muss oder man packt den Unittest direkt in die UI Klasse mit rein,
    > was beides nicht toll ist. Testet man weiter unten ist der Wert des Tests
    > fraglich.

    UI Tests sind prinzipbedingt langsam. Außerdem sind ihre Failures eher unspezifisch zum eigentlichen Error und Fault. Deswegen ist es sehr sinnvoll auch möglichst tief zu testen, wo die Komplexität noch zu managen ist.

    Weiterhin kommen dir bei UI Testing Design Themen dazwischen, welche für die Business-Funktionen nicht relevant sind.

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. THD - Technische Hochschule Deggendorf, Deggendorf
  2. DAVASO GmbH, Leipzig
  3. Nagel-Group | Kraftverkehr Nagel SE & Co. KG, Berlin, Frankfurt am Main, München, Hamburg
  4. WILO SE, Dortmund

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. 8,75€
  2. 34,49€
  3. 8,99€
  4. 3,39€


Haben wir etwas übersehen?

E-Mail an news@golem.de


Programm für IT-Jobeinstieg: Hoffen auf den Klebeeffekt
Programm für IT-Jobeinstieg
Hoffen auf den Klebeeffekt

Aktuell ist der Jobeinstieg für junge Ingenieure und Informatiker schwer. Um ihnen zu helfen, hat das Land Baden-Württemberg eine interessante Idee: Es macht sich selbst zur Zeitarbeitsfirma.
Ein Bericht von Peter Ilg

  1. Arbeitszeit Das Sechs-Stunden-Experiment bei Sipgate
  2. Neuorientierung im IT-Job Endlich mal machen!
  3. IT-Unternehmen Die richtige Software für ein Projekt finden

Weclapp-CTO Ertan Özdil: Wir dürfen nicht in Schönheit und Perfektion untergehen!
Weclapp-CTO Ertan Özdil
"Wir dürfen nicht in Schönheit und Perfektion untergehen!"

Der CTO von Weclapp träumt von smarter Software, die menschliches Eingreifen in der nächsten ERP-Generation reduziert. Deutschen Perfektionismus hält Ertan Özdil aber für gefährlich.
Ein Interview von Maja Hoock


    Fiat 500 als E-Auto im Test: Kleinstwagen mit großem Potenzial
    Fiat 500 als E-Auto im Test
    Kleinstwagen mit großem Potenzial

    Fiat hat einen neuen 500er entwickelt. Der Kleine fährt elektrisch - und zwar richtig gut.
    Ein Test von Peter Ilg

    1. Vierradlenkung Elektrischer GMC Hummer SUV fährt im Krabbengang seitwärts
    2. MG Cyberster MG B Roadster mit Lasergürtel und Union Jack
    3. Elektroauto E-Auto-Prämie übersteigt in 2021 schon Vorjahressumme