Was haben Fehlerlokalisierung und Verbrechensermittlung gemeinsam? / Sudo Null IT-Nachrichten

Hallo alle! Mein Name ist Ivan, ich bin QA-Ingenieur für das Release-Team bei inDriver. In diesem Artikel möchte ich frei über die Ähnlichkeit von kognitiven Aktivitätsmodellen beim Softwaretesten und der strafrechtlichen Ermittlung spekulieren. Mir scheint, dass diese Bereiche viele Gemeinsamkeiten haben – zum Beispiel erforschen beide Prozesse die Ergebnisse von Fehlverhalten, die Ursachen und Folgen eines solchen Verhaltens und dokumentieren die Ergebnisse.

Vor einem Jahr erhielt ich ein Angebot für die Stelle als QA Manual Engineer bei inDriver. Davor habe ich aber sieben Jahre lang in verschiedenen Abteilungen von Strafverfolgungsbehörden in Strafsachen ermittelt. Während meines Dienstes war ich mit einem erheblichen Spektrum von Straftaten befasst: von schweren Straftaten gegen das Leben und die Gesundheit bis hin zu überregionalen Wirtschaftsdelikten. An meinem letzten Arbeitsplatz war meine Position: „Senior Investigator of the SCH for the ROPD of the Investigative Department of the Ministry of Internal Affairs for the Republic of Sacha (Yakutien)“. Wenn Sie die ersten beiden Wörter weglassen, sieht es aus wie ein Rebus.

Jetzt organisiere ich Regressionstests, schreibe Autotests für mobile Benutzeroberflächen und viele andere Dinge, die damit zusammenhängen, die Bereitstellung neuer Funktionen für Benutzer zu beschleunigen, ohne die Qualität des Produkts zu beeinträchtigen.

Beginn einer Untersuchung

So wie eine strafrechtliche Untersuchung mit einer Begehung des Tatorts beginnt, so beginnt ein Bug Report mit einer Beschreibung der Umgebung, in der der Defekt entdeckt wurde. So erhalten wir einige bedingungslose Daten. Und auf ihrer Grundlage können Sie mithilfe von Schlussfolgerungen, Kenntnissen über die Welt um uns herum oder über das Produkt den Umfang der Forschung eingrenzen, mit der Planung weiterer Maßnahmen beginnen und Hypothesen aufstellen.

Planschema der Inspektion der Szene und Beschreibung der Umgebung im FehlerberichtPlanschema der Inspektion der Szene und Beschreibung der Umgebung im Fehlerbericht

Wir erstellen einen Aktionsplan

Wenn wir die ersten Daten erhalten, entsteht eine Situation der Informationsvielfalt. Jetzt ist es wichtig, einen Aktionsplan zu erstellen. Zeit ist unsere wichtigste Ressource. Es ist unwahrscheinlich, dass das Überprüfen aller Werte von -2147483648 bis 2147483647 im Namenseingabefeld eine gute Idee ist, um einen Fehler zu finden. Der Ermittler hat auch nicht die Möglichkeit, alle Bewohner der Stadt zu verhören oder alle Haushaltsutensilien zur molekulargenetischen Untersuchung zu schicken.

Um dieses Problem zu lösen, wendet QA Testdesigntechniken an – Grenzwerte, Äquivalenzklassen, paarweise. Der Ermittler hingegen bedient sich Taktiken und Kombinationen, die es ihm ermöglichen, sein weiteres Vorgehen möglichst effizient zu planen.

Ein Beispiel für ein Inhaltsverzeichnis einer Vernehmungs-ChecklisteEin Beispiel für ein Inhaltsverzeichnis einer Vernehmungs-Checkliste

Aufstellung der ersten Hypothesen

Nehmen wir an, wir erhalten eine Mordmeldung über einen Unfall in unserer App. Aufgrund der Erfahrung des Ermittlers weiß ich, dass in fast 90 % der Fälle die Mörder irgendwie mit dem Opfer (Ehemänner, Ehefrauen, Verwandte, Freunde, Nachbarn) in Verbindung stehen. Also in der Anwendung – wir orientieren uns am Wissen über das Produkt: Sagen wir, wir bekommen einen Sniffer, prüfen ausgehende Anfragen und empfangene Antworten. Bisher nichts Interessantes – alle Familienmitglieder haben Alibis und die Antwort vom Server lautet “200”. Hier scheint alles in Ordnung zu sein.

Wir wissen auch, dass ein geistig gesunder Mensch nicht ohne Grund morden wird. Auf dieser Grundlage können wir von einem unbegrenzten Kreis von Personen zu denen übergehen, mit denen das Opfer finanzielle, berufliche oder andere Verbindungen hatte. So können wir in der Anwendung herausfinden, ab welcher Version sich der Fehler zu reproduzieren beginnt, und Hypothesen darüber aufstellen, welche Codeänderungen zu seinem Auftreten führen könnten.

Aufzeichnung von Protokollen

Als nächstes versuchen wir, alle Ereignisse festzustellen, die der Tat vorausgingen, um Spuren zu finden:

  • Wir schauen uns Videoaufnahmen an.

  • Wir befragen die Nachbarn: Haben sie Kampfgeräusche gehört, haben sie misstrauische Gesichter gesehen.

  • Wir stellen fest, wen das Opfer kurz vor der Tat angerufen hat.

Im Falle eines Mangels erfassen wir außerdem Spuren von:

Dabei stellen wir fest, dass ein NullPointerException-Mann kurz vor der Tat die Wohnung betreten hat. Nachbarn identifizierten ihn als einen zuvor verurteilten lokalen Schläger, der regelmäßig trank und das gesamte Haus in Schach hielt.

Kontrolle vor Ort

Angenommen, ein Mann gesteht, nachdem er Beweise vorgelegt hat, ein Verbrechen begangen zu haben. Aber die Ermittlungen enden hier nicht. Wir müssen sicherstellen, dass er es war, der dieses Verbrechen begangen hat, und dass das Schuldbekenntnis aus Reue und nicht aus Angst, die Stimmung des Ermittlers zu verderben, verursacht wurde.

Dazu wird eine „Zeugenkontrolle vor Ort“ durchgeführt, bei der der Angeklagte die Tatdetails ausführlich wiedergibt und über Umstände spricht, die einer an der Tatbegehung unbeteiligten Person nicht bekannt sein können. Nachdem wir also ein stabiles Szenario zum Reproduzieren eines Fehlers gefunden hatten, stellten wir sicher, dass wir genau das fanden, wonach wir suchten.

Abgeschlossener Kriminalfall = Fehlerbericht

Nachdem alle Umstände des Verbrechens festgestellt wurden, befasst sich der Ermittler nicht mit der Beseitigung dieses Mangels. Er erstellt die in den Materialien des Strafverfahrens erhaltenen Informationen, erstellt eine Anklageschrift und legt sie dem Gericht vor. Die Entscheidung über die Bestrafung, die Beseitigung des Fehlers oder die Anerkennung des Fehlers als unschuldiges Feature wird außerhalb des Testprozesses getroffen.

Ermittlung der Tatursache

Um die Begehung ähnlicher Straftaten in Zukunft zu verhindern, ist der Ermittler verpflichtet, die Umstände, die zu seiner Begehung beigetragen haben, festzustellen und Maßnahmen zu ergreifen. Zum Beispiel, um zu verstehen, warum bisher niemand auf Berichte über einen Mobber reagiert hat oder warum die gegen ihn ergriffenen Maßnahmen nicht dazu beigetragen haben, eine Straftat zu verhindern.

Auch beim Testen – wenn ein Fehler in der Produktion gefunden wird, schadet es nicht, die Faktoren zu ermitteln, die dazu beigetragen haben:

  • Unzureichende Testabdeckung.

  • Ohne Tests zusammenführen.

  • Schlechte Zuordnung.

  • Unerledigte Anforderungen.

  • Von einem QA-Spezialisten ungeprüfte Eckfälle.

  • Ein wenig Zeit für Tests und Entwicklung.

  • Geringe Qualifikation des Entwicklungsteams.

  • Häufig wechselnde Anforderungen.

Fazit

Offensichtlich unterscheiden sich die Berufe eines Ermittlers und eines Testers voneinander. Auch wenn es ähnliche Momente gibt, sind die Unterschiede doch viel größer. Aber wenn Sie aus irgendeinem Grund den Wunsch haben, Ihr Handwerk radikal zu verändern, dann finden Sie bei unserem Partner passende Kurse, es ist möglich. Auch in einem völlig fremden Bereich findet man Aktivitäten mit ähnlicher Denkweise – und dann wird es ein wenig leichter sein, sein Ziel zu erreichen.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *