# Tog i bruk den hälft av meddelandekärnan som applikationen aldrig hade använt — överföring av säkerhetskopior, försvinnande meddelanden, redigering och omsändning av meddelanden, verifierade inbjudningar, proxyer och krypteringspolicy — och körde varje test mot det riktiga biblioteket utan mockar.

september 2026

**Situation.** Klienten använde ungefär hälften av det som meddelandekärnan erbjuder. Den oanvända hälften var inte obskyr — överföring av säkerhetskopior mellan enheter, försvinnande meddelanden, redigering och omsändning av meddelanden, verifierade inbjudningslänkar, proxykonfiguration och krypteringspolicyn för en chatt. Var och en är en funktion som en användare skulle förvänta sig och var och en var ett otestat område av C‑gränssnittet, vilket är det farligare faktumet, eftersom ett otestat område av ett C‑gränssnitt är där ägarskapsmisstagen finns.

**Uppgift.** Den onådda kapaciteten måste köras och täckas, och testerna måste köras mot det riktiga biblioteket i stället för mot en ersättare.

**Handling.** Regeln som infördes var inga mockar för kärnan. En mock av ett C‑gränssnitt kodar in utvecklarens uppfattning om vad biblioteket gör, och varje fel som är värt att hitta här är ett ställe där den uppfattningen är fel — så ett godkänt mockbaserat test säger något om mocken. I stället skapar testerna riktiga konton i tillfälliga kataloger, kör det riktiga biblioteket och kontrollerar vad det faktiskt returnerar, där varje svit städar upp sitt eget tillstånd. Det var det som gjorde testtäckningen meningsfull: att köra överföringen av säkerhetskopior innebar att hantera en riktig överförings tillståndsmaskin och dess felvägar, och att köra verifierade inbjudningar innebar att konstruera det riktiga länkformatet och låta biblioteket tolka det. Golv för testtäckningen sattes per skikt i stället för som ett enda tal, till åttiofyra procent för kärnans wrapper, sjuttiofem för verktygsfunktioner och sextiofem för modeller, med resonemanget att skiktet som rör råa pekare ska hållas högst och att en modell som mest består av lagrade egenskaper inte ska fyllas ut med tester för att nå ett genomsnitt.

**Resultat.** Den tidigare onådda hälften av kärnan körs av tester mot det riktiga biblioteket, och wrappern har det högsta golvet i projektet. Kostnaden är hastighet och determinism: tester mot det riktiga biblioteket är långsammare än mockar och kan fallera av miljöskäl, vilket är priset för att de kan fallera av verkliga skäl.

---

- Roll: Applikationsingenjör för macOS
- Kategorier: [Backendutveckling](https://platform.engineer.company/sv/categories/backend/), [API:er och integration](https://platform.engineer.company/sv/categories/api/), [Automatisering och CI/CD](https://platform.engineer.company/sv/categories/automation/), [Tillförlitlighet och säkerhetskopiering](https://platform.engineer.company/sv/categories/reliability/), [Säkerhet](https://platform.engineer.company/sv/categories/security/), [Test och kvalitetssäkring](https://platform.engineer.company/sv/categories/testing/)
- Tjänster: [Backend- och API‑utveckling](https://platform.engineer.company/sv/services/backend-development/), [DevOps och CI/CD‑automatisering](https://platform.engineer.company/sv/services/devops-cicd/), [Säkerhet och behörighetshantering](https://platform.engineer.company/sv/services/security-access/)

<https://platform.engineer.company/sv/portfolio/reached-the-unused-half-of-the-messaging-core-161/>
