Forum: PC-Programmierung Gibt es eine bottom-up-FTA? (Fehlerbaumanalyse)


von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Hallo zusammen!

Viele von Euch (auch ich) programmieren, wie es uns gefällt.
Ich arbeite aber gerade in einem 4er-Team:

Person ❶ kennt die Bedürfnisse oder bringt sie zur Klärung.

Ich (❷) schreibe alles auf, also
* algemmeinverständlich die Bedürfnisse von ❶ als "Information" und
* sogenannte 'atomare Anforderungen', daraus abgeleitet,
  also die 'Requirements' für Programmierer und Tester.

Person ❸ soll anhand der Requirements die µC-SW implementieren.

Person ❹ soll alle Anforderungen testen und muss automatisierte 
Testsequenzen (Testfälle) definieren und durchführen, die "i.o." oder 
"n.i.o." sein können.

Nun meine Idee:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Beim Erstellen der Requirements möchte ich mir gleichzeitig Gedanken 
über die Testbarkeit machen, ohne die Testfälle vorzugeben, denn das ist 
der Job von ❹.

Als Methode wurde uns die FTA (Fehlerbaumanalyse) nahegelegt. Diese 
funktioniert aber eigentlich "top-down". Im Gegensatz dazu ist der 
FMEA-Ansatz zwar "bottom-up", aber die Idee ist eine andere:

Ich möchte parallel zu den Requirements auch 'Testbedingungen' 
erstellen, aus denen ❹ dann Testsequenzen erzeugen kann. Dadurch 
verbessere ich die Vollständigkeit meiner Spezifikation und spezifiziere 
nix, was nicht testbar ist.

Nun meine Fragen:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
1. Ist das üblich? Gibt es für diese Methodik eine Bezeichnung?
   Aus genannten Gründen passt weder "FMEA" noch "FTA".

2. Wie macht man 'Testschritte' aus den 'Testbedingungen'?
   Gibt es dafür ein Schema, also eine bekannte Methodik?

Beispiel:
¯¯¯¯¯¯¯¯¯
Req_1: Die Signale werden aus dem EEPROM initialisiert.
Req_2: Bei einen CRC-Fehler werden die Signale mit … initialisiert.
Req_3: Der Zeitstempel wird aus der aktuellen gültigen Uhrzeit gebildet.
Req_4: Bei ungültiger Uhrzeit (Timeout oder ungültig) ist der Zeit-
       stempel auf den 1. Januar 1970 zu setzen (Fehler-Ersatzwert).
…
Initialisierung:
  TestBed_1: Initialisierung mit gültigem CRC.
  TestBed_2: Initialisierung mit ungültigem CRC.
Zeitstempel:
  TestBed_3: Gültiger Zeitstempel ohne Timeout
  TestBed_4: Ungültiger Zeitstempel (z.B. Stunde > 23)
  TestBed_5: Timeout vom Zeit-Server
…:

^^^^ Das sind die 'TestBedingungen', die ich zusammen mit den 
Anforderungen erstellen will.

Disclaimer:
¯¯¯¯¯¯¯¯¯¯¯
* Es geht zwar um µC-Programmierung, nicht um PC, aber eher um
  "allgemeine Programmierfragen ohne direkten Mikrocontroller-Bezug"
  als um "Fragen rund um Mikrocontroller".

* Es gibt viele Projekte und Konstellationen, wo diese Methodik Quatsch
  ist. Nehmt bitte mal an, dass es sich um ein Projekt handelt, wo diese
  Methodik sinnvoll ist.

Referenzen:
¯¯¯¯¯¯¯¯¯¯¯
* FTA (Fehlerbaumanalyse)
http://www.ias.uni-stuttgart.de/lehre/vorlesungen/zsa/vorlesung/umdruck/zsa_ss15_kapitel_02.pdf
* FMEA (Fehlermöglichkeits- und Einfluss-Analyse)
http://www.ias.uni-stuttgart.de/lehre/vorlesungen/zsa/vorlesung/umdruck/zsa_ss15_kapitel_03.pdf

: Bearbeitet durch User
von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Parallel zu 'Requirements' auch die Testbarkeit zu betrachten, ist doch 
so naheliegend, dass es weder 'neu' noch 'Quatsch' sein kann.

* Gibt es Erfahrungen zu einer entsprechenden geeigneten Methodik?

* Weiß jemand, ob die Methodik bereits eine Bezeichnung hat,
  nach der man googeln könnte? Ich meine nicht 'ATDD' oder 'TDD'.
  Testgetriebene Entwicklung wäre ja quasi 'anders herum'.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.