Key points are not available for this paper at this time.
Gegeben einen falschen Wert, der während eines fehlgeschlagenen Programmablaufs erzeugt wurde (z. B. ein falscher Ausgabewert oder ein Wert, der das Programm zum Absturz bringt), erfasst der rückwärts gerichtete dynamische Slice des Wertes sehr häufig den fehlerhaften Code, der für die Erzeugung des falschen Wertes verantwortlich ist. Obwohl der dynamische Slice oft nur einen kleinen Prozentsatz der während des fehlgeschlagenen Programmablaufs ausgeführten Anweisungen enthält, kann der dynamische Slice dennoch groß sein, sodass vom Programmierer erhebliche Anstrengungen erforderlich sein können, um den fehlerhaften Code zu finden. In diesem Papier entwickeln wir eine Strategie zur Beschneidung des dynamischen Slices, um eine Teilmenge von Anweisungen im dynamischen Slice zu identifizieren, die wahrscheinlich für die Erzeugung des falschen Wertes verantwortlich sind. Wir beobachten, dass einige der Anweisungen, die zur Berechnung des falschen Wertes verwendet wurden, möglicherweise auch an der Berechnung korrekter Werte beteiligt waren (z. B. kann ein Wert, der von einer Anweisung im dynamischen Slice des falschen Wertes erzeugt wurde, auch bei der Berechnung eines korrekten Ausgabewertes vor dem falschen Wert verwendet worden sein). Für jede solche ausgeführte Anweisung im dynamischen Slice berechnen wir unter Verwendung der Wertprofile der ausgeführten Anweisungen einen Vertrauenswert, der von 0 bis 1 reicht - ein höherer Vertrauenswert entspricht einer größeren Wahrscheinlichkeit, dass die Ausführung der Anweisung einen korrekten Wert erzeugt hat. Gegeben einen fehlgeschlagenen Ablauf, der die Ausführung eines einzelnen Fehlers beinhaltet, zeigen wir, dass das Beschneiden eines dynamischen Slices durch den Ausschluss nur der Anweisungen mit dem Vertrauenswert von 1 sehr effektiv ist, um die Größe des dynamischen Slices zu reduzieren und gleichzeitig den fehlerhaften Code im Slice zu behalten. Unsere Experimente zeigen, dass die Anzahl der unterschiedlichen Anweisungen in einem beschnittenen dynamischen Slice 1,79 bis 190,57 Mal geringer ist als im vollständigen dynamischen Slice. Vertrauenswerte priorisieren auch die Anweisungen im dynamischen Slice entsprechend der Wahrscheinlichkeit, dass sie fehlerhaft sind. Wir zeigen, dass die Untersuchung der Anweisungen in der Reihenfolge steigender Vertrauenswerte eine effektive Strategie zur Reduzierung des Aufwands für die Fehlersuche ist.
Zhang et al. (Sun,) untersuchten diese Frage.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: