Similarity Texter

DIE HOCHMÜTIGE DOHLE UND DER PFAU

Einst lebte eine Dohle, voll von eitlem Stolz, die stahl sich Federn, die dem Pfau entfallen warn und putzte sich damit. Das eigne Dohlenvolk ver- achtend trat sie in der schönen Pfauen Reihn. Der Unver- schämten reißt man hier die Federn aus, jagt sie mit Schnäbeln. Und die Dohle, bös verbleit will wieder nun betrübt zu ihrem Volk zurück. Die aber stoßen sie von sich, mit herbem Schimpf. Und eine derer, die zuvor verachtet, sprach zu ihr “Hätt’ unsre Lebensart dir vormals conveniert, hätt’st du, was die Natur dir schenkte, akzeptiert, dann wär dir weder jene Schande widerfahrn noch müsstest du zum Unglück jetzt verstoßen sein.”

Diese Version von Aesops Fabel ist aus Wilfried Strohs Sammlung von Übersetzungen von Jan Novák: “Aesopia”, die auf Geschichten von Phaedrus basieren.

Test 2007 – S19 AntiCutAndPaste

Software-Steckbrief

Nummer S07-19
Produkt AntiCutAndPaste
Hersteller ACNP Software, support@anticutandpaste.com
Web-Site http://www.anticutandpaste.com/
Software-Typ Code Checker -Prüft auf Übereinstimmungen in Programmcode, zum installieren
Kosteninfo AntiPlagiarist $29.95
AntiCutAndPaste (Windows) $24.95
AntiCutAndPaste (Linux) $19.95
Testdatum 7. September 2007

Testüberblick


Testablauf/Kommentare

  • Die Firma hat zwei Produkte, AntiPlagiatist für Texte und AntiCutUndPaste für Programmcode.
  • Wir haben AntiCutAndPaste heruntergeladen und auf zwei präperierte C# Klassen getestet, die mit 14 Überarbeitungen durchsetzt war.
  • Nach dem Aufruf sieht man die Oberfläche in Screenshot 1. Der Bericht ist sehr schwer zu verstehen (siehe Screenshot 2)
  • Wir haben auch AntiPlagiarist auf die beiden Codestücke angesetzt, er hat keine Übereinstimungen gemeldet.

Einzeltests

  • org_code.cs: 422 Zeilen, changed_code.cs: 441 Zeilen
  • Der Bericht wird sehr schell erstellt.Er ist aber in der kostenlosen Testversion nicht druck- oder kopierbar.
  • Es werden 27 gleiche Fragmente gemeldet
  • 1. Fragment: Es werden 5 Fragmente gemeldet mit 375 übereinstimmenden Zeichen, 1723 Zeichen insgesamt – das ist völlig unverständlich, denn es werden 3 Fragmente in einer Datei gemeldet, 2 in der anderen, so dass man nicht so recht versteht, was los ist. Man muss zurück zu den Dateien, die Zeilennummern aufschlagen, nebeneinander legen und sehen – tatsächlich, die Zeichenreihen stimmen überein. Umständlich.
  • Auch bei den nächsten Fragmenten stellen wir fest: es wird nur die Zeichenreihenübereinstimmung getestet. Es werden allerdings Leerschritte rausgeholt, wir haben weitere Dateien mit zusätzlciehn Zeilen und Leerschritten präperiert. Auch Änderungen in den Kommentaren werden hingenommen, es wird also nur geschaut, ob es Kommentare gibt, nicht, was da drin steht.
  • Wir benennen weitere Variablen um – damit verschwindet die Ankündigung der Übereinstimmung. Das heisst, dass gebundene Umbenennungen nicht erkannt werden.
  • Kommentarform-Anderungen (/* …*/ in // umgewandelt und umgekehrt) werden allerdings nicht als Übereinstimmung angesehen.
  • Dafür werden übliche Wiederverwendungen von Code-Fragmenten im eigenen Code als Kopie gemeldet.
  • Das System scheint also die whitespace (Leerschritte, neue Zeilen) und die Kommentare zu ignorieren und nach genauer Zeichenübereinstimmung zu suchen. Allerdings werden Kommentare auch nicht näher angesehen, wenn sich die Form der Herauskommentierung ändert, wird keine übereinstimmung gefunden.

Bewertung

Es wurde nur 1 der Änderungen gefunden. Mit 3 Punkten für ein „ja“, 1 für ein „teilweise“ und 0 für „nichts“ erreicht dieses System lediglich 3 von 45 Punkten. Zur Code-Vergleich ist dieses System nicht zweckmässig.

Änderung Beschreibung Erkannt?
1 Kommentare gelöscht nein
2 Klasse umbenannt nein
3 Variable umbenannt nein
4 Form der Kommentare geändert ja
5 Klassenvariablen verschoben nein
6 Kommentare ergänzt nein
7 Geschweifte Klammern um Anweisung ergänzt nein
8 Kommentare verschoben nein
9 Ausdruck in einen äquivalenten Ausdruck umformuliert nein
10 NOOP eingefügt: for (int i=0; i<1;i++){} nein
11 Methode umbenannt nein
12 Methode verschoben nein
13 Zwei Codezeilen vertauscht nein
14 Zwei Case-Zweige vertauscht nein
15 Ungenutzte Definition eingefügt nein

Screenshots


Das Programm
Screenshot 1: Nach dem Aufruf

Bericht
Screenshot 2: Der Bericht


Firmenwerbung:

„AntiCutAndPaste is designed to search for text fragments that have been copied and pasted in programming language source code or plain text. It is tested on sources from large C++, Visual Basic, Delphi, Java, and C# projects. AntiCutAndPaste will yield surprising results not only with publicly available sources samples but also with your own projects.“