====== Mars Climate Orbiter – software- og systemfejl ====== ===== Baggrund ===== * Opsendt af NASA i december 1998 som del af Mars Surveyor-programmet. * Formål: Studere Mars’ klima og fungere som kommunikationsrelæ. * Missionen gik tabt i september 1999 ved indflyvning i Mars’ atmosfære. ===== Hvad gik galt? ===== * En softwarekomponent fra Lockheed Martin leverede thrust-data i pound-force (imperiale enheder). * NASA’s navigationssoftware forventede data i newton (metriske enheder). * Enhederne blev ikke konverteret korrekt. * Resultat: Forkert beregning af bane → rumsonden kom for tæt på Mars og brændte op i atmosfæren. ===== Hvorfor blev fejlen ikke opdaget? ===== * Manglende end-to-end systemvalidering af enheder. * Utilstrækkelig interface-specifikation mellem teams. * Afvigelser i navigationsdata blev observeret, men ikke eskaleret korrekt. * Ingen robust automatisk kontrol for konsistens i måleenheder. ---- ===== Relation til software testing ===== ===== 1. Kravspecifikation og interface-kontrakter ===== * Klare og entydige enhedskrav burde have været dokumenteret. * Interface Definition Documents (IDD) skal verificeres gennem test. * Manglende enforcement af standarder (SI-enheder). ===== 2. Integration Testing ===== * Individuelle komponenter fungerede korrekt isoleret. * Fejlen opstod i integrationen mellem to systemer. * __Integrationstest burde have fanget enhedsmismatch.__ ===== 3. System Testing & End-to-End Testing ===== * Simuleringer burde have afsløret urealistiske baneafvigelser. * Edge cases og akkumulerede beregningsfejl blev ikke håndteret tilstrækkeligt. ===== 4. Validation vs. Verification ===== * Verification: “Bygger vi systemet korrekt?” → Ja, hver komponent virkede. * Validation: “Bygger vi det rigtige system?” → Nej, helheden var inkonsistent. * Klassisk eksempel på at lokal korrekthed ≠ global korrekthed. ===== 5. Organisatoriske faktorer ===== * “Faster, better, cheaper”-strategi medførte strammere budget og tidsplan. * Kommunikationsproblemer mellem organisationer. * Afvigelser i data blev ikke behandlet med tilstrækkelig risikovurdering. ===== Konsekvenser ===== * Mission til ca. 125 millioner USD gik tabt. * NASA ændrede procedurer for systems engineering og verifikation. * Øget fokus på enhedsstandardisering og tværgående review-processer.