Hunderte Mac-Apps für Mole testen
Um Deinstallation und Restdateisuche in Mole zu verbessern, wiederhole ich gerade eine ziemlich eintönige Arbeit. Ich habe über 300 Mac-Apps aus China und anderen Ländern gesammelt, zusammen mehr als 100 GB Downloads. In 30 Gruppen mit je zehn Apps ließ ich eine KI per Computerbedienung die offiziellen Downloads holen und auf meinem Mac installieren. Danach folgten Verzeichnisse, Update-Bundles und Autostart-Einträge, die Deinstallation und die Suche nach Resten, um fehlende Regeln zu ergänzen.
Von 100 auf 300 und dann 549
Eigentlich wollte ich nur 100 verbreitete Apps testen. Dann dachte ich: noch hundert. Und noch einmal. Später waren es 549, einschließlich App-Store-Versionen und Erweiterungen. Normalerweise versuche ich, meinen Mac auf etwa 30 Apps zu beschränken. Während der Tests sah mein Schreibtisch so aus.
Installationen bringen Unterbrechungen mit sich: Berechtigungen, Kaufangebote und gelegentlich ein Administratorpasswort. Das meiste erledigt der Agent selbst, beim Rest helfe ich. Überraschend war, dass die KI sogar Skripte für Installation, Deinstallation und Restdateiprüfung schrieb, um sich die Arbeit zu erleichtern. Zeitweise war ich ihr Assistent.
Die Installation ist erst der Anfang
Zeit kostet der gesamte Ablauf: erster Start, Berechtigungen, Updates, Autostart und schließlich die Entfernung. Im Installationspaket sieht man keine Verzeichnisse, die erst beim Ausführen entstehen. Auch das Löschen des App-Bundles verrät nicht, was mit anderswo abgelegten Dateien passiert.
Bei jeder Gruppe prüfe ich, wer ein Verzeichnis angelegt hat, wem der Update-Helper gehört und welche Autostart-Einträge nach der Entfernung bleiben. Erst wenn Pfad und Zugehörigkeit feststehen, lässt sich daraus eine Regel machen. Ähnliche Namen genügen nicht. App-Store- und Download-Versionen brauchen getrennte Prüfungen, weil derselbe Produktname keine identischen Speicherorte garantiert.
Die KI kann Prüfungen wiederholen und bekannte Schritte in Skripte fassen. Berechtigungen, Administratorpasswörter und unklare Dateizugehörigkeit benötigen trotzdem Aufmerksamkeit. Von Hand hätte es nach meiner Schätzung zehnmal so lange gedauert.
Was man erst nach der Installation erfährt
Ich hatte erwartet, dass nach 100 Apps die üblichen Konventionen fast alle weiteren Fälle erklären würden. Doch viele Pfade lassen sich mit allgemeinen Regeln nicht finden. Manche Bundle-IDs verwenden nicht einmal die umgekehrte Domain-Schreibweise. Hinter einer ordentlich wirkenden Konvention kann ein Wert stecken, den jemand damals einfach eingetragen hat. Da hilft nur, jede App zu installieren und zu prüfen.
Dabei habe ich auch Stellen korrigiert, an denen ich etwas löschen wollte, das bleiben sollte. App-Caches, persönliche Dateien und gemeinsam genutzte Daten sind nicht alle Müll, nur weil sie im selben Verzeichnis liegen. Mehr Tests zeigen auch mehr Dinge, die erhalten bleiben müssen.
Auch finden, was bleiben muss
Die erste Runde mit mehr als 300 Apps brachte 13 wiederverwendbare Regelkategorien und über 90 genaue Bereinigungspfade. Außerdem korrigierte ich mehr als 30 Stellen, die ich ursprünglich bereinigen wollte, obwohl sie unangetastet bleiben sollten. Dazu kamen ergänzte Update- und Autostart-Prüfungen sowie über 100 Unit-Tests. Das sind die Zahlen dieser Runde; die App-Liste wächst weiter.
Diese Korrekturen zählen genauso wie neu gefundene Reste. Ein Cache lässt sich möglicherweise neu erzeugen, eine selbst geschriebene Datei nicht. Gemeinsam genutzte Daten dürfen nicht verschwinden, nur weil eine der Apps entfernt wird. Scheinbar verlassene Dateien können noch gebraucht werden. Bei unklarer Zugehörigkeit ist Behalten besser als Löschen auf Verdacht.
Nur eine größere Bereinigungsmenge anzustreben, würde am Ziel vorbeigehen. Allgemeine Regeln decken wiederkehrende Muster ab, ungewöhnliche Pfade werden einzeln bestätigt. Tests halten fest, was nicht gelöscht werden darf, damit spätere Änderungen bereits behobene Fehler nicht wieder einführen.
Barrierefreiheit hilft unerwartet zurück
Mole unterstützt seit frühen Versionen Menschen mit Sehbehinderungen durch entsprechende Barrierefreiheitsattribute. Diese halfen nun auch der KI, die richtigen Elemente und Schaltflächen zu finden. Was ursprünglich den Nutzern helfen sollte, erleichterte mir die Tests.
Barrierefreiheitsattribute können Namen, Typ und Zustand eines Bedienelements beschreiben, nicht nur seine Position. Damit findet ein Skript dasselbe Element eher wieder, wenn sich das Layout verändert. Ein Screenshot mit festen Koordinaten kann nach einer Fensterbewegung oder einem anderen Dialog zum falschen Klick führen.
Zuerst sind diese Attribute jedoch für Menschen da. Dass eine KI einen Knopf findet, beweist nicht, dass jemand mit VoiceOver die Aufgabe abschließen kann. Beschriftungen, Fokusreihenfolge und die Ausgabe von Ergebnissen müssen weiterhin geprüft werden. Die Arbeit hat mir den Wert unterschiedlicher Bedienmöglichkeiten noch deutlicher gemacht.
Nach hundert Apps erwartete ich vor allem Wiederholung. Doch auch bei 300 und 549 kamen neue Details hinzu. Ich möchte verbreitete Apps weiter installieren und prüfen und die Erkenntnisse in Mole einarbeiten. Solche unspektakulären Prüfungen können beim tatsächlichen Entfernen einer App entscheidend sein.
Wer Apps oder Websites entwickelt, kann seinen Coding-Assistenten auch bei der Barrierefreiheit helfen lassen. Das kann die Nutzung für Menschen mit Sehbehinderungen erleichtern und eigene automatisierte Tests zuverlässiger machen. Ich werde weiter testen. Die bisherigen Einträge stehen in der Liste getesteter Software; weitere Apps können Sie in der Diskussion vorschlagen.