Test & QA
43 resultater
- Har strømlinet CI/CD‑processer og sparet 4.000 timer ved at indføre automatisering i softwareudviklingspipelines.
- Har migreret HTTP‑API'et fra Fiber til Huma v2 — 649 paths og 760 operationer — og opnået og fastholdt 100 % paritet mellem de ruter, serveren registrerer, og den OpenAPI‑beskrivelse, den udgiver.
- Har genereret API‑kontrakten udad fra databasen — OpenAPI, en typet TypeScript‑klient på 44.076 linjer, 61 mock handlers og de grænser, UI'et håndhæver — med en guard i hvert led, der fejler ved drift.
- Har bygget GitHub Actions CI/CD‑pipelines med et distroless produktions‑frontend‑image og promovering på tværs af flere miljøer.
- Har skrevet 578 go‑task‑automatiseringsmål på tværs af native-, Docker- og HTTPS‑udviklingstilstande, linting, test, database og deployment.
- Har sat en zero‑warnings‑kvalitetsstandard på tværs af seks sprog — Go, TypeScript, SQL, Python, Shell og Markdown — håndhævet af pre‑commit‑hooks.
- Har bygget en lagdelt automatiseret testsuite — 981 Go‑tests, 543 frontend- og browserspecs, 494 SQL‑adfærdstests — med mutationstest, property‑based tests og en tilgængelighedsgate.
- Har bygget kodebasens guard‑motor — 268 registrerede commit‑tjek, 277 lint‑regler og 15 egne ESLint‑regler — plus 146 tests af selve tjekkene, så det er builden, der holder standarden, ikke reviewet.
- Har holdt skemaet ærligt på tværs af 1.022 migrationer med en CI‑gate, der bygger databasen begge veje — en frisk installation og en installation plus hver eneste migration — og fejler, når de to ikke stemmer overens.
- Har hærdet SSH til 24 hævdede direktiver med validering i tre trin — kandidatfilen, den samlede konfiguration og dernæst dæmonens egen tilbagelæsning — efter at tilbagelæsningen fangede den kørende server i stilhed at tilsidesætte to af de fireogtyve.
- Har bevist hele bandlysningsstien ved hver hærdningskørsel ved at bandlyse en reserveret testadresse, læse den resulterende kerneregel og ophæve bandlysningen i en garanteret oprydningsblok, så et fængsel, der holder op med at virke, får kørslen til at fejle i stedet for at melde sig rask.
- Har verificeret firewallregler efter position frem for tilstedeværelse ved at læse den nummererede regelliste og den levende pakkefilterkæde, for en regel, der findes, er ikke en regel, nogen pakke når frem til.
- Har fået check mode til at sige sandheden på hele platformen efter at have fundet seks sonder, der traf beslutning på en værdi, værten aldrig gav, fordi Ansibles command‑modul melder succes under --check, mens det springer kommandoen helt over.
- Har tilføjet et preflight‑play, der kører den samme kode som konvergensen mod operatørens lokale hemmeligheder på omkring et sekund, efter at en halvt anvendt produktionskørsel døde på sin niende opgave med swap‑indstillingerne allerede skrevet til den levende vært.
- Har skåret systemd‑sandkassens eksponering ned på hver eneste unit, platformen selv installerer — en dødmandsknap‑tjeneste fra 9,6 UNSAFE til 1,5, en internetvendt git‑forge fra 8,3 EXPOSED til 1,5 — og har tilføjet et parsertjek ved konvergens efter at have fundet et stavefejlsbehæftet direktiv ignoreret i stilhed i tre unit‑skabeloner.
- Har bygget en commit‑gate af 22 en‑linjes lintere plus fire, der fortjener et afsnit, uden et advarselsniveau og uden tilladte inline‑undertrykkelser, med dækning af HTML, CSS, JavaScript, Python, YAML, Markdown, shell, links, stavning, hemmeligheder og typografi.
- Har skåret sitets browserdrevne kvalitetsgate fra 1.636 sekunder til 615 ved at planlægge dens tjek længst‑først gennem en worker‑pulje begrænset til fire baner, efter at have målt at alfabetisk rækkefølge kostede 320 sekunder mod 224.
- Har erstattet 27 gengivne skriftstørrelser, hvis nærmeste naboer lå 0,6 % fra hinanden, med en seks‑trins Major Third‑skala og har skrevet den linter, der fejler på den otteogtyvende.
- Har taget WCAG 2.2 niveau AA på tværs af 32 repræsentative sider — én pr. skabelon pr. sprog — i begge farvetemaer, plus to AAA‑kriterier, med et dokumenteret konformitetsnotat og et tjek, der forsvarer hver påstand.
- Har fundet og rettet 11 tilgængelighedsfejl, som browseren meldte sunde — otte footer‑links stadig i tab‑rækkefølgen bag pointer‑events, en scroll‑tidslinje, der klippede kolofonen af tre sider, og en regelmotor, der kørte 70 af sine 105 regler.
- Har lukket farvesystemet ved 28 dokumenterede farver med en linter, der fejler på en værdi, der er malet men udokumenteret, dokumenteret men umalet, fejlmålt, omstavet som en literal eller inden for en perceptuel afstand på 0,02 fra en, der allerede findes.
- Har fundet, at det lyse tema havde manglet et fuldsides overlay‑lag siden den dag, det blev skrevet, ved at hævde at begge temaer maler hver lagdelt flade med det samme antal lag.
- Har gjort reduceret bevægelse ærlig efter at have fundet elleve selektorer, der stadig animerede under præferencen, fordi en universel transition‑none‑regel taber på specificitet til enhver regel, der bærer en klasse.
- Har rettet et sitemap, hvor 172 af 176 URL'er delte ét ændringstidsstempel, ved at tage datoen fra git‑historikken efter at have fastslået, at eksporten omskriver hver fil ved hver kørsel.
- Har sat dokumentationen under sin egen linter — et linjebudget pr. fil, der kun skruer nedad, et indekskrav og et tjek af faktiske stier — som fandt seks af ni planer markeret som færdige, mens de bar uafkrydsede felter, og fjorten opgaver, der spærrede hver commit uden at være nævnt i noget dokument.
- Har bragt 10.242 linjer kvalitetsgate‑JavaScript under en formatter og en linter efter at have fastslået, at det var kodebasens største kodemængde og den eneste, intet læste, og har rettet 13 fund uden at undertrykke nogen.
- Har holdt generatoren til 981 testtilfælde med et dækningsgulv på 92 % grendækning og advarsler behandlet som fejl, og har hævdet idempotens ved at køre hele build‑pipelinen to gange fra en tom fil og kræve, at anden gennemløb intet ændrer.
- Har etableret PDF/UA‑1‑konformitet på tværs af ni dokumenter ved 106 af 106 regler og har fundet arkivvarianten fejle én regel ud af 146 — et nærved‑resultat, der læses som bestået af enhver, der ikke kører validatoren.
- Har valgt hver eneste regel, Python‑linteren har, som fejl og har arbejdet 1.815 fund ned til nul, hvor hver af de få undtagelser bærer en skreven begrundelse og to af dem er understøttet af et tjek frem for en kommentar.
- Har indlejret en QR‑encoder — Reed‑Solomon over GF(256), fast modullayout, otte maskemønstre — på 522 linjer frem for at tage en tredje runtime‑afhængighed, og har verificeret den ved at læse den færdige matrix tilbage med en uafhængigt skrevet dekoder.
- Har skrevet tests af selve tjekkene efter at have fastslået, at et tjek, der kun fodres med rent input, en dag melder rent, fordi det intet læste — ved at plante en stavefejl for at bekræfte, at stavekontrollen finder den, og ved at tage et id‑interval fra databasen frem for fra et tal i testen.
- Har fundet commit‑hooks og kvalitetsgaten køre forskellige tjek, mens et dokument lovede, at de var de samme, ved at sammenligne de to lister i en test — de fem, der kun nogensinde kørte i hånden, var dem, der læste CV‑prosaen.
- Har prøvekørt CI‑hooken på forge‑siden og har fundet to fejl, der ikke kunne nås ved at læse filen: en fallback, der lagde et uopløseligt argument på hookens input, og gits egen miljøvariabel, der fulgte gaten ind i checkouten og gjorde 19 tests røde.
- Har bygget et tværsprogligt indholdstjek, der fejler, når en oversættelse taber et tal, det engelske angiver, og når et sprog bruger notation, det ikke bruger — og har fundet to danske beskrivelser, der manglede en metrik, og seksten ukrainske spænd, der citerede på engelsk vis.
- Har stoppet en applikation i at fylde hukommelsen med 41 MB i sekundet — registrerede 111 GB komprimerede sider på en maskine med 36 GB — ved at begrænse hver hændelsesstrøm, abonnere efter hændelsestype og lægge et ratebudget på logning, hvilket tog 610.996 loglinjer ned til 1.411.
- Har taget Swift 6 fuldstændig streng samtidighed i brug uden aktører og har bygget bro fra en blokerende C‑hændelsesløkke til hovedaktøren gennem én producent, én forbruger og én rækkefølge — efter at have fastslået, at en opgave pr. hændelse mister den rækkefølge, grænsefladen afhænger af.
- Har skrevet en parser, der læser den rigtige C‑header på 7.308 linjer og verificerer hvert kaldssted, hver enum‑konstant og at hver pegerejende klasse er final, efter at en håndskrevet pladsholder‑header lod kald til tre fjernede funktioner kompilere, linke og crashe.
- Har taget testsuiten fra seks tests over en grænse på tres sekunder til 135 beståede på 8,9 sekunder ved at profilere hovedtråden og fjerne de to kald, den sad inde i i 3.989 ud af 4.017 stikprøver.
- Har navngivet hver eneste ikonknap i grænsefladen for skærmlæsere efter at have fundet send‑knappen annonceret som "arrow up circle, button", og har skrevet den linter, der kræver etiketten inden for otte linjer fra ikonet.
- Har bygget et designsystem på 48 tokens oven på platformens eget glasmateriale og har skrevet den linter, der afviser et magisk tal, en hårdkodet skriftstørrelse eller en animation, der ignorerer præferencen for reduceret bevægelse.
- Har nået den halvdel af beskedkernen, applikationen aldrig havde brugt — backupoverførsel, forsvindende beskeder, redigering og gensendelse af beskeder, verificerede invitationer, proxyer og krypteringspolitik — og har drevet hver test mod det rigtige bibliotek uden mocks.
- Har omskrevet applikationens fejlbeskeder efter en skreven tonestandard, efter at et afvist login gav brugeren skylden for at have tastet forkert, mens udbyderen i virkeligheden krævede en applikationsspecifik adgangskode, og har dækket det med en test, der nævner udbyderen.
- Har bygget virksomhedens ikon- og favicon‑sæt ud fra to håndlavede tegninger, hvor hvert afledt aktiv genskabes af et script og et tjek fejler, når en afledt fil er committet før sin kilde.
Dette arbejde er en del af det, vi tilbyder som DevOps & CI/CD‑automatisering, Teknisk ledelse & rådgivning, Frontend‑udvikling, UI/UX‑design & designsystemer, Teknisk dokumentation, Backend- & API‑udvikling, Sikkerhed & adgangsstyring og Webstedsudvikling & CMS.
Er du ved at bygge noget, der kræver det her? Kontakt os.