Als meine Frau und ich in unser Haus einzogen, bestand meine erste Aufgabe darin, die alten Lichtschalter in häufig genutzten Räumen durch neue zu ersetzen. Nachdem ich herausgefunden hatte, wie es gemacht wurde, erschien es einfach: Gehen Sie zum Schaltkasten, schalten Sie den Schutzschalter für diesen bestimmten Raum aus und ersetzen Sie die Schalter.
Alles schien gut, bis ich eine machte schockierend Entdeckung, dass einer der Schalter (wir waren nicht sicher, was er kontrollierte) immer noch Strom hat, nachdem er den Schalter in diesen Raum ausgeschaltet hatte. Ich ging direkt in den Laden, um einen Schaltungstester zu bekommen ... Dieser Schalter musste jedoch noch ersetzt werden. Ich konnte alle 30 Schalter auf einmal ausschalten, aber ich war wirklich neugierig, welcher Schalter diesen Schalter steuert.

Also was jetzt?
Der einfachste Ansatz scheint zu sein, eine Schaltung zu einer Zeit auszuprobieren, bis ich herausfinden könnte, welche Schaltung den Schalter steuert. Natürlich befinden sich Schalter und Steckdose auf verschiedenen Etagen, so dass dies immer noch mühsam erscheint. Wenn ich Glück habe, schalte ich sofort die richtige Schaltung aus. Wenn ich jedoch Pech habe, bedeuten 30 Rennstrecken viele Treppenaufgänge.
Eine binäre Suche?
Ich könnte eine binäre Suche durchführen, bei der die Hälfte der Schaltkreise eingeschaltet und die Hälfte ausgeschaltet ist. Ich könnte herausfinden, zu welcher Gruppe der Schalter gehört, und diesen Vorgang wiederholen, bis ich zu einem Schalter komme. Eine schnelle Internetsuche zeigt jedoch, dass es eine Möglichkeit gibt zwei Schaltungen müssen ausgeschaltet sein, damit ich den Schalter endlich umschalten kann. Die One-to-a-Time-Methode wird mir dabei nicht helfen.
Ich bin sicher, dass ich nur eine Schaltung ausschalten muss, aber was ist, wenn es nicht der Fall ist? Das klingt, als könnte ich ein entworfenes Experiment durchführen, aber ich habe nicht die typische Vorstellung von zufälligem Rauschen, und meine Antwort ist im Wesentlichen binär (Leistung für den Switch oder nicht). Was ich wirklich will, ist ein Design mit diesen Funktionen:
Wenn es sich nur um eine Schaltung handelt, sagen Sie mir genau, um welche es sich handelt.Wenn es sich um zwei Stromkreise handelt, geben Sie mir eine Richtung, indem ich weiß, dass ich einen Fall gesehen habe, bei dem beide Schalter ausgeschaltet waren (und nicht alle Schalter ausschalten, was nicht besonders hilfreich ist).Erreichen Sie die ersten beiden Punkte in so wenigen Tests wie möglich.Es stellt sich heraus, dass ich dies mit nur acht Tests tun kann, wobei bei jedem Lauf / Test einige der Schalter eingeschaltet und einige ausgeschaltet sind.
Wie?
Beim Discovery Summit 2014 , John Salls Plenarvortrag zeigte eine Vorschau auf einige der fantastischen neuen Funktionen, die in JMP 12 nächsten März erscheinen werden. Mein persönlicher Favorit ist die neue JMP Pro 12-Plattform in DOE für Arrays, die von Joseph Morgan, dem neuesten Mitglied des DOE-Entwicklungsteams, implementiert wurde.
Ein abdeckendes Array?
Für eine Stärke t Überdeckungsfeld, gegeben eines t Spalten, jede mögliche Ebenenkombination tritt auf mindestens einmal . Für ein 2 überdeckendes Array, das Spalte (Faktor) A mit den Pegeln A1 und A2 und Spalte B mit den Pegeln B1 und B2 aufweist, kann jedes der Paare (A1, B1), (A1, B2), (A2, B1), (A2, B2) müssten im Design erscheinen.
Wenn ich also eine Stärke-2-Abdeckung hatte, bei der die Faktoren die Schalter mit den Ein / Aus-Pegeln repräsentieren, weiß ich, dass ich für jedes Schalterpaar irgendwo im Experiment beide Schalter ein, einen ein und einen aus und gesehen habe beide aus.
Für DOE-Vertraute klingt dies möglicherweise ähnlich der Definition für ein orthogonales Array. Der Hauptunterschied besteht darin, dass bei einem orthogonalen Array jede Kombination genau gleich oft vorkommt, während bei einem abdeckenden Array nur jede Kombination vorkommt. Wenn sich 30 Faktoren ergeben, X1-X30, die die Schaltungen mit den Einstellungen Ein / Aus repräsentieren, hat das kleinste Stärke-2-Array nur acht Läufe. Für diesen speziellen Fall sind beim ersten Test alle Schalter auf "Ein" gesetzt, sodass ich wirklich nur sieben Tests benötigen würde. Ein orthogonales Array für diesen Fall würde 32 Läufe erfordern.
Covering-Arrays werden häufig beim Softwaretest eingesetzt und helfen dabei sicherzustellen, dass keine Softwarefehler auftreten t -Kombinationen von Faktoren. Abdeckungs-Arrays helfen dabei, dies zu einem Bruchteil der Kosten einer umfassenden Prüfung zu erreichen. Überdeckungsarrays wurden bereits 2006 zum Testen von Teilen von JMP verwendet.
Wie funktioniert es in diesem Fall?
Nehmen wir an, ich habe das 8-stufige Stärke-2-Array und habe aufgezeichnet, ob der Switch für jeden Lauf Strom hatte oder nicht. Ich zeige nur die ersten Faktoren in der folgenden Abbildung, aber meine eigentliche Datentabelle geht an X30.

Dies ist nur eine Vorschau auf das, was in JMP 12 zu erwarten ist, aber in diesem Beispiel kann ich erkennen, dass die Schaltung X1 der Täter ist. Der Lichtschalter funktioniert immer, wenn X1 eingeschaltet ist, und nicht, wenn X1 ausgeschaltet ist. Dies ist bei anderen Brechern nicht der Fall. Ich kann jetzt nicht nur den Schalter wechseln, sondern auch das Rätsel lösen, welche Schaltung ihn tatsächlich steuert.
Abschließende Gedanken
In diesem Beispiel scheinen einige zusätzliche Fahrten die Treppe hinauf keine große Sache zu sein, aber Sie können sich Beispiele vorstellen, bei denen ein Test sehr teuer sein kann, so dass jeder gespeicherte Lauf einen großen Unterschied macht. Insbesondere wenn die Anzahl der Faktoren zunimmt, gibt es viel zu viele Möglichkeiten, die Sie verpassen können, wenn Sie keinen Zugriff auf Software zur Abdeckung von Arrays haben. Was wäre, wenn ich viel mehr Schalter hätte, sagen wir 100, 200 oder 500? Sie denken vielleicht, dass ein Cover-Array zu groß werden würde, um damit fertig zu werden. Die Laufgröße für die oben genannten Fälle beträgt 10, 11 bzw. 13 - erstaunlich!
Sie können sich auf weitere Informationen zu Arrays freuen, wenn JMP 12 nächsten März veröffentlicht wird!