Deze systemen worden door mensen geschreven en door mensen getest en zijn inmiddels zo complex geworden dat het vrijwel onmogelijk is om ze echt helemaal te testen (te duur en daar door onmogelijk, technisch gezien zeker wel haalbaar).
Volledig testen (tenminste, als je het over black-box testen hebt) is finaal onmogelijk, dat lukt je zelfs bij een 32-bits fulladdertje al niet. Volledig testen betekent één-voor-één
alle mogelijke inputs in je systeem stoppen en de output controleren (bij die adder is dat dus 32 bits voor de ene input, 32 voor de andere input en een bitje voor je carry = 2^65 mogelijke invoerwaarden). En dan hebben we het over systemen zonder geheugen, als je dat ook nog eens mee gaat nemen explodeert het aantal testen dat je moet uitvoeren helemaal. En zelfs als je al die testen kon doen, hoe weet je dan zeker dat je voor
al die testen de correcte referentie-output hebt? Als je de daadwerkelijke uitvoer vergelijkt met verkeerde "goede" uitvoer dan heb je voor niks zitten testen.
Je zou systemen die zo complex zijn en zo belangrijk eigenlijk door een formele model checker heen moeten halen, maar ook dat heeft zo zijn problemen... Om maar eens iets te noemen, de eisen die je aan je systeem stelt worden dan bijvoorbeeld uitgedrukt in mu-calculus. Da's zo'n onleesbare zooi dat de laatste keer dat ik het moest gebruiken de meeste fouten in de eisen zaten en slechts enkele in het model zelf. Als je je checker moet debuggen met een bijna-goed systeem om daarna een paar kleine foutjes uit je systeem te kunnen halen is er iets mis...
Als er daadwerkelijk de vele terug roep acties als voorbeeld gegeven worden van een probleem dat veel kleiner zal worden door alles te centraliseren dan denk ik toch echt dat deze meneer nog maar eens iets moet gaan leren over menselijke fouten en programmeren en zo...
Of we kunnen eindelijk eens fatsoenlijke manieren van programmeren gaan ontwikkelen... Het slaat werkelijk nergens op dat nagenoeg alle systemen ontwikkeld worden via het principe "laten we het nog maar eens compileren en kijken of het werkt". Als een architect naar jou toekomt met het ontwerp van een brug "dit is pas een beta hoor, eerst even deze bouwen en dan eens kijken of ie sterk genoeg is" dan neem je hem toch totaal niet serieus?
Als je zeg 10 sensoren in een auto hebt hangen en 2 daar van roepen REMMEN!! terwijl de rest geen enkel probleem ziet of juist roept wat je ook doet niet remmen die gast achter je parkeert z'n hummer gelijk op je versnellingsbak als je nu remt. (..) Hoe meer input je hebt hoe meer combinaties er mogelijk zijn hoe complexer de logica moet worden om het allemaal af te handelen hoe groter de kan op een fout en hoe kleiner de kans dat de fout gevonden zal worden.
Ten eerste zeggen sensoren niet wat de auto moet doen, dat wordt gedaan door de controlesystemen. Sensoren meten alleen maar waardes en geven die door.
Los daarvan, de situatie die je nu schetst komt op dit moment natuurlijk ook al voor. Alleen zijn het nu tien systemen die uit moeten vechten of er geremd moet worden of niet. Als je alles in één systeem onderbrengt is het veel eenvoudiger (niet eenvoudig, wel eenvoudig
er) om één keuze te maken.
Ik mis een heel erg belangrijk punt (misschien wel genoemd maar hier niet vermeld) waar is mijn zwarte doos?
Sommige (alle??) auto's hebben al een zwarte doos... Een tijd terug is iemand nog veroordeeld voor (IIRC) doodslag nadat ie een andere auto geramd had. Ja, hij kwam van rechts, maar de zwarte doos lieten zien hoe hard die idioot precies reed, waardoor ie toch veroordeeld is.
Als iedere auto van aan zwarte doos zou zijn voorzien dan zouden dit soort fouten op te sporen zijn want dan zouden we terug kunnen kijken naar het geen het centrale systeem besloot wat de gebruiker wilde doen etc... en dus kunnen we leren van de fouten in de systemen die het ongeval veroorzaakte.
Wát....!? Je stelt serieus voor dat een paar mensen zichzelf dood moeten rijden door een fout in jouw software, zodat jij kunt debuggen?

Je kunt ongelukken nooit helemaal uitsluiten, en logs hebben
als er een keer een ongeluk gebeurt is zeker nuttig, maar zoals je het hier verwoordt klinkt het wel heel fout.
Als je bedenkt dat we bijvoorbeeld in de DHCP server
Da's een belangrijk apparaat, maar er staan geen levens op het spel als het ding een keertje crasht. Ik mag toch hopen dat veiligheidssystemen van auto's in een andere klasse van "correct programmeren" en "bewezen veiligheid" vallen...