Kvaliteeditagamissüsteemi ümberehitamine tarkvara{0}}määratletud sõidukite ajastul

Jun 04, 2026

Jäta sõnum

I. Tarkvaraarendusprotsessi küpsus

Tarkvara kvaliteedi alus seisneb arendusprotsesside standardimises. Automotive SPICE võimekuse tasemed on praegu tööstuse etalon tarkvaraprotsesside küpsuse osas, kuid CL2 või CL3 saavutamine on ainult lähtetase. Tarkvara tarnekvaliteedi määrab tõeliselt kõrvalekallete kontrollimine protsessi täitmise ajal. Nõudehalduse näitel on levinud kõrvalekalle see, et pärast nõuete muutumist ei värskendata seotud testjuhtumeid sünkroonselt. Ühes projektis leiti pärast SOP-i OTA versiooniuuendusfunktsiooni probleem, kus sõiduki madala laetuse korral peatati OTA allalaadimine määramata ajaks ilma veast teatamata. Algpõhjus oli see, et nõudedokument oli lisanud madala oleku kaitseloogika, kuid vastavad testjuhtumid hõlmasid siiski ainult allalaadimisfunktsiooni kontrollimist, ilma katkestuste ja taaste stsenaariumideta. Sissejuhatusest avastamiseni hõlmas see defekt nelja iteratiivset versiooni ja paranduskulud olid peaaegu nelikümmend korda suuremad, kui see oleks varakult leitud. Nõuete jälgitavuse maatriks tuleb manustada pidevasse integreerimiskonveierisse. Kui nõude olek muutub muudetud, käivitatakse automaatselt seotud testjuhtumite ülevaatustoimingud ja ülevaatust läbimata testjuhtumid tuleks märkida blokeerivateks üksusteks. Koodi läbivaatamist tuleb ka kvantifitseerida. Uuringud näitavad, et moodulitel, millel on vähem kui kaks arvustuskommentaari tuhande koodirea kohta, on postituste{12}}defektide tihedus rohkem kui kolm korda suurem kui moodulitel, millel on üle viie kommentaari tuhande rea kohta. Arvustuste kommentaaride arvu ei saa siiski kasutada absoluutse näitajana, kuna on olemas ka madala kvaliteediga{14}kommentaarid. Tõhus lähenemine on liigitada ülevaatekommentaarid viide kategooriasse: loogikavead, puuduvad piirtingimused, koodi loetavus, jõudlusriskid ja ohutusriskid, keskendudes eelkõige kahe surmava kategooria avastamissagedusele: loogikavead ja ohutusriskid.

II. Pidev integreerimine ja pidev testimine
Tarkvara iteratsiooni kiirendamine nõuab testimise nihutamist vasakule, mis tähendab, et kvaliteedi kontrollimine viiakse sisse koodi kinnitamise etapis. Üksuse testimine on kõige vasakpoolsem kaitseliin, kuid tegelikes projektides kannatab ühikutesti koodi katvus sageli ülepaisutatud väärtuste tõttu. Ühe kontrolleri projekti puhul näitas üksuse testimise aruanne liinide katvust 92%, kuid integratsiooni testimise käigus leiti siiski suur hulk põhilisi vigu. Retrospektiivne analüüs näitas, et kuigi neid vigu sisaldavad koodiread täideti, ei kontrollinud testiväited asjakohaseid väljundeid. Rea katvus näitab ainult seda, et kood on käivitatud, mitte aga seda, et väljundeid on kontrollitud. Üks parendusmeetod on mutatsioonide testimise kasutuselevõtt, mis genereerib automaatselt koodimutandid, et hinnata testjuhtumite tõhusust. Kui mutanti ei tapeta, näitab see lünka testi väidetes. Pideva integreerimise torujuhtmete teine ​​valupunkt on testi liiga pikk täitmise aeg. Ühes OEM-i tarkvarahoidlas kulus täieliku regressioonitestide komplekti käitamiseks rohkem kui 20 tundi, mis tähendab, et arendajad pidid sageli ootama järgmise päevani, et saada pärast koodi esitamist tagasisidet. Lahendused hõlmavad paralleeltestimist, testjuhtumi prioriseerimist ja järkjärgulist testimist. Paralleelne testimine jagab testkomplekti mitme täitmissõlme vahel, vähendades täitmisaega ligikaudu kümnendikuni originaalist. Testjuhtumite prioriseerimine põhineb ajaloolisel defektide jaotusel, eelistades 20% testjuhtumitest, mis kõige tõenäolisemalt tuvastavad uusi defekte. See alamhulk suudab hõlmata ligikaudu 70% uutest defektidest. Täiendav testimine teostab ainult praeguse koodimuudatusega seotud testjuhtumeid, kasutades staatilist analüüsi, et tuvastada muudatuse mõju ulatus, et dünaamiliselt filtreerida testi ulatust.

III. Tarkvara defektide mõõtmine ja algpõhjuste analüüs

Tarkvaradefektide mõõtmismõõdikuid tuleb käsitleda erinevalt riistvaravigadest. Riistvara defektid keskenduvad tavaliselt defektide tihedusele, näiteks defektide arvule miljoni osa kohta. Tarkvaradefektide jaotus järgib siiski Pareto põhimõtet, umbes 80% tõsistest defektidest koondub 20% moodulitesse. Seetõttu on tõhusam mõõdik mooduli-taseme defektide konvergentsi trend, mis tähendab iga mooduli avatud defektide netomuutust iteratsioonide lõikes. Kui moodul näitab kolme järjestikuse iteratsiooni jooksul avatud defektide netokasvu, viitab see põhilisele arhitektuuriprobleemile, mis nõuab ümberarvutamist. Defekti algpõhjuse analüüsi sügavus määrab ennetusmeetmete tõhususe. Tavaliselt kasutatav klassifitseerimisraamistik liigitab tarkvara defektide algpõhjused viide tüüpi: nõuete mõistmise kõrvalekalded, disainiloogika vead, kodeerimise rakendamise vead, konfiguratsioonihalduse vead ja keskkonnasõltuvused. Konfiguratsioonihalduse vead on tarkvaraprojektide ainulaadne kategooria. Levinud näited hõlmavad vahevara teegi vale versiooni kasutamist, kompilaatori suvandite ebaühtlust ja puuduvaid kriitilisi parandusi harude ühendamisel. Ühes projektis avastati viimases testimisvoorus enne tarnimist piduritulede juhtimise loogikaviga. Viga sai alguse kolm kuud varem toimunud haru ühendamisest, kus arendaja oli põhiharu funktsioonikoodi liitmisel valesti valinud kõik piduritulede juhtmooduli muudatused kõrvale jätta. See juhtum viitab sellele, et erinevuste võrdlemine pärast filiaalide ühendamist peaks muutuma kohustuslikuks väravaks, kus ühinemistaotluste läbivaatamise eest vastutavad määratud töötajad.

IV. Tarkvara tagasikutsumine ja OTA haldus

OTA-tehnoloogia laialdase kasutuselevõtuga on tarkvaravigade parandamise meetodis toimumas põhjalikud muutused. Traditsiooniline tarkvara tagasikutsumine nõuab, et sõidukid külastaksid vilgutamiseks teeninduskeskusi, mis on kulukas,{1}}aeganõudev ja kasutajate nõuetele mittevastavuse tõttu. OTA tagasikutsumist saab lõpule viia otse kaugtõuke abil, kuid regulatiivsed nõuded