Honderden Mac-apps voor Mole testen
De laatste tijd doe ik een nogal dwaas, herhalend werk, het soort dat veel ontwikkelaars in het AI-tijdperk liever mijden. Om verwijderen en het opruimen van resten te verbeteren, verzamelde ik meer dan 300 Mac-apps uit China en elders, meer dan 100 GB aan downloads. Ik verdeelde ze in 30 groepen van tien en liet AI via computerinteractie ze downloaden van hun officiële sites, op mijn Mac installeren, hun mappen, updatebundels en opstartonderdelen bekijken, ze daarna verwijderen en naar resten zoeken om gaten in de regels van Mole te vullen.
Van 100 naar 300, en daarna 800
Ik was van plan 100 veelgebruikte apps te testen. Toen dacht ik dat ik net zo goed nog honderd kon doen, en nog eens. Later kwam de verzameling op 709, inclusief App Store-versies en extensies. Normaal probeer ik mijn Mac op ongeveer 30 apps te houden. Zo zag het bureaublad eruit tijdens het testen.
De lijst is sindsdien gegroeid naar 800 apps, inclusief Adobe-apps en antivirussoftware die lastig te verwijderen zijn, alledaagse ontwikkelaarstools en AI-tools. Zelfs na al die controles bleef ik resten vinden die algemene regels misten. Ik moest volgen waar elke app zijn bestanden echt schreef.
Het werk kan saai zijn, en installaties brengen veel onderbrekingen: bevoegdheidsvragen, aankoopschermen en verzoeken om een beheerderswachtwoord. De agent handelt het meeste af; ik help met de rest. Een verrassing was dat hij scripts schreef voor installeren, verwijderen en resten controleren om zijn eigen werk makkelijker te maken. Ik eindigde als zijn assistent voor een deel van de klus.
Installeren is alleen het begin
Het tijdrovende deel is een app volgen door zijn hele leven op de Mac: de eerste start, bevoegdheidsvragen, updates, opstartonderdelen en uiteindelijk verwijderen. In het installatieprogramma kijken mist mappen die pas ontstaan nadat de app draait. Alleen de appbundel verwijderen vertelt niet wat er gebeurde met bestanden die hij ergens anders plaatste.
Voor elke reeks zijn de vragen concreet: welke app maakte deze map, van wie is de updatehelper, staat het opstartonderdeel er nog, en wat blijft er na verwijderen over? Het echte pad en het eigenaarschap moeten duidelijk zijn voordat het een opruimregel wordt. Een vergelijkbare naam is niet genoeg. Edities uit de App Store en via directe download verdienen ook aparte controles, omdat dezelfde productnaam niet dezelfde installatie- of gegevenslocaties inhoudt.
AI kan deze controles herhalen en stappen scripten die het al heeft uitgewerkt, maar bevoegdheden, beheerderswachtwoorden en onzeker eigenaarschap vragen nog aandacht. Zonder dat schat ik dat het handwerk tien keer zo lang had geduurd.
Sommige dingen vragen om een echte installatie
Ik verwachtte dat software-engineering ordelijk genoeg was dat het testen van 100 apps de meeste patronen zou dekken. Die verwachting overleefde het werk niet. Veel paden waren niet met een algemene regel te vinden, en sommige bundelidentificaties gebruikten niet eens omgekeerde domeinnotatie. Een afspraak die op papier netjes oogt, kan iets zijn dat een ontwikkelaar ooit terloops invulde. Ik moest elke app installeren en bekijken.
Vinden wat moet blijven
Die eerste ronde van meer dan 300 apps voegde 13 herbruikbare regelcategorieën en meer dan 90 precieze opruimpaden toe. Hij corrigeerde ook meer dan 30 plekken waarvan ik dacht dat ze opgeschoond moesten worden maar die niet aangeraakt mogen worden, breidde controles op updates en opstarten uit, en voegde meer dan 100 eenheidstests toe. Dit zijn de cijfers van die ronde, terwijl de applijst blijft groeien.
De correcties tellen even zwaar als de nieuw gevonden resten. Een cache kan opnieuw gemaakt worden; een bestand dat iemand schreef niet. Gegevens die meerdere apps delen, horen niet te verdwijnen omdat één ervan wordt verwijderd. Een bestand dat verlaten oogt, kan ergens anders nog gebruikt worden, dus onzeker eigenaarschap is een reden om het met rust te laten.
Een groter opruimtotal is niet het doel van de oefening. Algemene regels dekken herhaalbare patronen, ongebruikelijke paden vragen om individuele bevestiging, en tests bewaren de gevallen die niet verwijderd mogen worden. Dat geeft latere regelwijzigingen een manier om fouten te vangen die vandaag al zijn gevonden.
Verwijdergidsen die je zonder Mole kunt gebruiken
Ik heb ook verwijderstappen voor elke app gepubliceerd, over welke achtergrondprocessen je eerst stopt, wanneer je het officiële verwijderprogramma gebruikt, en welke gegevens je zelf beslist te houden. Alle 800 apps hebben nu gratis gidsen in het Engels en in vereenvoudigd Chinees. Je kunt ze volgen ook als je Mole niet hebt gekocht, en controleren of de apps op je Mac in de lijst staan.
Een onverwacht rendement van toegankelijkheid
Mole begon in vroege versies ondersteuning toe te voegen voor mensen met een visuele beperking, inclusief toegankelijkheidsattributen. Die attributen hielpen hier ook: AI kon ze gebruiken om de juiste regelaars en knoppen nauwkeuriger te vinden. Werk dat eerder voor mensen die de app gebruiken was gedaan, hielp mij uiteindelijk om hem te testen.
Toegankelijkheidsattributen beschrijven meer dan de positie van een knop: ze kunnen de naam, het type regelaar en de huidige toestand prijsgeven. Dat geeft een script een manier om dezelfde regelaar te vinden nadat de indeling verschuift. Een schermafbeelding en vaste coördinaten alleen kunnen ergens anders wijzen als een venster verschuift of een dialoog verandert.
Die attributen zijn eerst voor mensen. Dat een AI een knop vindt, bewijst niet dat iemand met VoiceOver de taak kan afronden. Labels, de focusvolgorde en of resultaten worden aangekondigd, vragen nog om controle. Dit werk liet me de waarde inzien van ontwerpen voor verschillende manieren om een computer te gebruiken.
Bouw je apps of websites, dan is toegankelijkheid ook iets waar je je code-assistent om kunt vragen. Het kan het product makkelijker maken voor mensen met een visuele beperking, en het kan je eigen geautomatiseerde tests betrouwbaarder maken. Ik blijf deze controles doen. De lijst met geteste software toont de apps die tot nu toe zijn vastgelegd; je kunt een andere app voorstellen voor een volgende reeks. Ik ben ook van plan de regels die tijdens dit werk zijn toegevoegd geleidelijk naar Mole CLI te brengen.