Sie haben eine absurde Anzahl möglicher Eingabesätze in Ihrem Eingabebereich. Sie können nicht alle testen, Punkt. Sie müssen eine Teilmenge der Eingabesätze testen und eine lohnende Heuristik verwenden, um die Sätze auszuwählen, die Sie testen.
Folgendes müssen Ihre Tests tun (dies ergibt sich aus den DO-254-Testempfehlungen, die mein Unternehmen verwendet):
- Jeder Ausgang muss mindestens einmal geändert werden
- Jeder Eingang muss mindestens einmal geändert werden
Das ist ein Minimum, kein Maximum. In solchen Fällen führen wir eine MCDC-Analyse (Minimum Condition Decision Coverage) durch, um festzustellen, welche anderen Eingabesätze wir testen müssen. Ich habe es immer so erklärt:
Stellen Sie sich vor, Ihre Black Box ist ein UND-Gatter mit 200 Eingängen. Sie können nicht jeden einzelnen Eingabesatz testen, also testen Sie eine Teilmenge des gesamten Eingaberaums. Zuerst folgen Sie den Regeln, die ich oben angegeben habe - Sie müssen mindestens zwei Fälle testen: einen, bei dem die Ausgabe 0 / False ist, und einen anderen, bei dem die Ausgabe 1 / True ist. Für das UND-Gatter ist dies einfach: alle 0 / Falsch und alle 1 / Richtig. Das beweist, dass sich Ihre Ausgabe ändern kann. Als nächstes wählen Sie Eingabesätze so aus, dass es einen Eingabesatz gibt, für den jeder Eingang der entscheidende Faktor in der Ausgabe ist. Für ein UND-Gatter mit 200 Eingängen erhalten Sie 200 verschiedene Eingangssätze: Der erste hat alle Eingänge True mit Ausnahme von Eingang Nr. 1, der zweite hat alle Eingänge True mit Ausnahme von Nr. 2 und so weiter. Mit dieser Methode überprüfen Sie, ob jede Eingabe eine unabhängige Auswirkung auf die Ausgabe hat. Wenn eine Eingabe falsch ist, ist dies nicht der Fall.
Sie sagten, Ihre Logik sei kombinatorisch. Dies ist vielen Latches / Flip-Flops vorzuziehen, aber immer noch nicht perfekt. Sie müssen von der Ausgabe rückwärts arbeiten, um Eingabesätze zu bestimmen, für die jede einzelne Eingabe eine entscheidende Auswirkung auf die Ausgabe hat. Wenn Ihre Logik kompliziert ist, haben Sie viel Arbeit vor sich, aber dies ist die schnellste und umfassendste Methode zum Testen Ihrer Logik-Blackbox.
Was die praktischen Aspekte betrifft, sind Sie allein. Das Unternehmen, für das ich arbeite, verwendet kundenspezifische Hardware, um systeminterne Black-Box-Tests auf Pin-Ebene von FPGAs (und theoretisch von ASICs, wenn Sie uns ein Teil zur Verfügung stellen könnten, das auf eine Platine gebracht werden kann) mit Betriebsgeschwindigkeit durchzuführen. Es ist umfassend und automatisiert, aber jede Testvorrichtung ist für das jeweilige Projekt maßgeschneidert. Für diesen Ansatz ist daher ein Vertrag erforderlich, bei dem nicht nur Artikel von der Stange gekauft und selbst kombiniert werden.
Eines der Probleme, die durch unseren Ansatz behoben werden, besteht darin, einfach alle Drähte anzuschließen. Ich denke, die meisten Leute würden einen obszön großen Logikanalysator vorschlagen, aber Sie haben Tausende von Pins, sodass Sie Teilmengen von Pins gleichzeitig testen müssen. Einer der positiven Aspekte des von uns verwendeten Ansatzes ist, dass alle Pins jederzeit überwacht werden, sodass Sie sehen können, dass sich die zu ändernden Ausgänge ändern, aber auch, dass sich die Ausgänge, die sich nicht ändern sollten, nicht ändern. Sie können das nicht bekommen, wenn Sie einen Logikanalysator mit weniger Pins als der Anzahl Ihrer Ein- / Ausgänge verwenden.