Integruotos testavimo (BIT) sistemos privalumai

Apžvalga

Integruotų testų (BIT) sistema yra išsami, modulinė ir išplečiama testavimo sistema, skirta „Linux“ pagrindu sukurtoms įterptosioms sistemoms. Ji teikia automatizuotą aparatinės ir programinės įrangos diagnostiką per papildinių pagrindu sukurtą architektūrą, užtikrindama sistemos patikimumą, vientisumą ir parengtį darbui.


Pagrindiniai privalumai

🛡️ Padidintas sistemos patikimumas

  • Proaktyvus gedimų aptikimas prieš gedimams paveikiant veiklą
  • Nuolatinis svarbiausių sistemos išteklių stebėjimas
  • Ankstyvojo įspėjimo sistema apie galimą aparatinės įrangos gedimą

⚡ Sumažintas prastovos laikas

  • Automatinė diagnostika panaikina rankinio testavimo išlaidas
  • Suplanuotas testų vykdymas vykdomas fone
  • Momentinis gedimų pranešimas leidžia greitai reaguoti

📊 Išsami aprėptis

  • Aparatinės įrangos patvirtinimas (PCI, USB, GPIO, nuoseklusis, CAN, Ethernet)
  • Sistemos išteklių stebėjimas (procesorius, atmintis, diskas)
  • Duomenų kelio patikra (TCP, CAN magistralė, nuoseklieji prievadai)

🔌 „Plug-and-Play“ architektūra

  • Dinaminis įskiepio įkėlimas vykdymo metu
  • Konfigūracijos valdomi bandymo parametrai
  • Norint pridėti naujų testų, nereikia jokių pagrindinių sistemos modifikacijų

📋 Sistemų integracija

  • Veikia kaip gimtoji „Linux“ paslauga
  • Automatinis paleidimas įkrovos metu
  • Standartinis paslaugų valdymas ( systemctl start/stop/status )

Testų tipai ir aprėptis

BIT sistema įgyvendina tris pagrindines testavimo kategorijas, suderintas su pramonės standartų integruotų testavimo metodikomis:

Įjungimo bitas (PBIT)

Testai, atliekami vieną kartą paleidžiant sistemą, siekiant patikrinti aparatinės įrangos vientisumą prieš pradedant įprastą veikimą.

Nuolatinis BIT (CBIT)

Testai, kurie periodiškai atliekami įprasto veikimo metu, siekiant aptikti vykdymo laiko gedimus ir išteklių išeikvojimą.

Gamyklinis antgalis (FBIT)

Išsamūs aparatinės įrangos bandymai, naudojami gamybos ir priežiūros metu, siekiant patikrinti visas sistemos sąsajas.


Testų santraukos lentelė

Įjungimo BIT (PBIT) testai

Testo pavadinimas Aprašymas Dažnis
pbit_bsp_version Patikrinama, ar BSP versija atitinka numatytą konfigūraciją. Kartą paleidimo metu
pbit_can Patvirtina CAN magistralės sąsajos prieinamumą Kartą paleidimo metu
pbit_checksum Tikrina failų kontrolines sumas dėl vientisumo Kartą paleidimo metu
pbit_cpu_cores Patvirtina numatomą procesoriaus branduolių skaičių Kartą paleidimo metu
pbit_cpu_usage Patikrina, ar pradinis procesoriaus panaudojimas neviršija ribų Kartą paleidimo metu
pbit_disk_health Patikrina disko SMART sveikatos būseną Kartą paleidimo metu
pbit_disk_usage Tikrina disko vietos prieinamumą įkrovos metu Kartą paleidimo metu
pbit_dmesg_check Skenuoja „dmesg“ dėl kritinių klaidų Kartą paleidimo metu
pbit_ethernet Patvirtina Ethernet sąsajos prieinamumą Kartą paleidimo metu
pbit_file_checksum Tikrina svarbių sistemos failų vientisumą Kartą paleidimo metu
pbit_firewall_configuration Patikrina, ar užkardos taisyklės tinkamai sukonfigūruotos Kartą paleidimo metu
pbit_gpio Patvirtina GPIO kontaktų prieinamumą ir būseną Kartą paleidimo metu
pbit_gpu_loading Tikrina GPU tvarkyklę ir pradinį įkėlimą Kartą paleidimo metu
pbit_memory_usage Patikrina laisvą atmintį paleidimo metu Kartą paleidimo metu
pbit_pci_whitelist Patvirtina PCI įrenginius pagal patvirtintą baltąjį sąrašą Kartą paleidimo metu
pbit_permissions_verification Patvirtina failų / katalogų teises Kartą paleidimo metu
pbit_power_test Tikrina maitinimo šaltinio būseną ir įtampą Kartą paleidimo metu
pbit_selinux_apparmor_status Patvirtina apsaugos modulio būseną Kartą paleidimo metu
pbit_serial_ports Patvirtina nuosekliojo prievado prieinamumą Kartą paleidimo metu
pbit_ssh_configuration Patvirtina SSH saugumo konfigūraciją Kartą paleidimo metu
pbit_syslog_analysis Nuskaito sistemos žurnalą, ar nėra kritinių paleidimo klaidų Kartą paleidimo metu
pbit_temperature Patikrina pradinius terminius rodmenis Kartą paleidimo metu
pbit_usb_whitelist Patvirtina USB įrenginius pagal patvirtintą baltąjį sąrašą Kartą paleidimo metu

Nuolatiniai BIT (CBIT) testai

Testo pavadinimas Aprašymas Dažnis
cbit_bsp_version Stebi BSP versijos nuoseklumą Konfigūruojamas
cbit_can Stebi CAN magistralės būklę ir klaidų skaitiklius Konfigūruojamas
cbit_checksum Periodinis failų vientisumo patikrinimas Konfigūruojamas
cbit_cpu_cores Stebi procesoriaus branduolių prieinamumą Konfigūruojamas
cbit_cpu_usage Stebi procesoriaus naudojimą per slenkantį langą Kas 1 s
cbit_disk_health Stebi disko SMART atributus Konfigūruojamas
cbit_disk_usage Stebi disko naudojimą pagal slenksčius Kas 30 sekundžių
cbit_dmesg Stebi branduolio pranešimų buferį Konfigūruojamas
cbit_dmesg_check Nuolatinis dmesg klaidų aptikimas Konfigūruojamas
cbit_ethernet Stebi Ethernet ryšio būseną ir klaidas Konfigūruojamas
cbit_ethernet_status Stebi Ethernet ryšio būseną Konfigūruojamas
cbit_firewall_configuration Stebi užkardos taisyklių vientisumą Konfigūruojamas
cbit_gpio Stebi GPIO būsenos pokyčius Konfigūruojamas
cbit_gpu_loading Stebi GPU panaudojimą Konfigūruojamas
cbit_memory_usage Seka atminties naudojimo modelius Konfigūruojamas
cbit_pci_whitelist Stebi PCI įrenginio pakeitimus Konfigūruojamas
cbit_permissions Stebi failų leidimų pakeitimus Konfigūruojamas
cbit_permissions_verification Nuolatinis leidimų patvirtinimas Konfigūruojamas
cbit_power_consumption Stebi energijos suvartojimą ir efektyvumą Konfigūruojamas
cbit_selinux_apparmor_status Stebi saugos modulio būseną Konfigūruojamas
cbit_serial_ports Stebi nuosekliojo prievado prieinamumą Konfigūruojamas
cbit_ssh_configuration Stebi SSH konfigūracijos pakeitimus Konfigūruojamas
cbit_syslog_analysis Nuolatinis sistemos žurnalo klaidų stebėjimas Konfigūruojamas
cbit_temperature Stebi terminius rodmenis ir tendencijas Konfigūruojamas
cbit_usb_whitelist Stebi USB įrenginio pakeitimus Konfigūruojamas

Gamykliniai bitų (FBIT) testai

Testo pavadinimas Aprašymas Dažnis
fbit_can_data Testuoja CAN magistralės perdavimo / priėmimo funkcijas Konfigūruojamas
fbit_gpio_data Patvirtina GPIO įvesties / išvesties funkcionalumą Konfigūruojamas
fbit_pci PCI įrenginių išvardijimas ir patikrinimas Konfigūruojamas
fbit_serial_data Patvirtina nuosekliojo prievado kilpinį ryšį Konfigūruojamas
fbit_ssd SSD skaitymo / rašymo našumo patvirtinimas Konfigūruojamas
fbit_system_data Sistemos informacijos rinkimas Konfigūruojamas
fbit_tcp_data Testuoja Ethernet duomenų kelius naudodamas iPerf Konfigūruojamas
fbit_usb USB įrenginio skaitymo / rašymo patvirtinimas Konfigūruojamas
fbit_video Vaizdo išvesties patikrinimas Konfigūruojamas

Iš viso: 57 integruoti testai, apimantys aparatinės įrangos patvirtinimą, sistemos stebėjimą ir saugumo patikrą.


Įskiepio architektūra

BIT sistema sukurta remiantis galinga įskiepių architektūra , kuri užtikrina sklandų išplėtimą nekeičiant pagrindinio sistemos kodo.

Kaip tai veikia

BIT sistema naudoja „Zenoh“ kaip pranešimų tarpinę programinę įrangą, leidžiančią realiuoju laiku platinti bandymų rezultatus stebėjimo klientams ir sklandžiai integruotis su GVA (bendrosios transporto priemonės architektūros) sistemomis per protokolų sujungimą.

Pranešimų srauto architektūra

flowchart LR subgraph Server["🖥️ BIT Server"] BM["BIT Manager"] PBIT["PBIT Plugins"] CBIT["CBIT Plugins"] FBIT["FBIT Plugins"] end subgraph Zenoh["🌐 Zenoh Network"] ZS["Zenoh Session"] end subgraph Clients["📱 BIT Clients"] GUI["BIT GUI"] CLI["BIT CLI"] end subgraph Gateway["🔗 BIT Gateway"] ZDG["Zenoh-DDS Bridge"] end subgraph GVA["🎖️ GVA Domain (DDS)"] HUMS["Health & Usage
Monitoring Service"] end PBIT -->|TestResult| BM CBIT -->|TestResult| BM FBIT -->|TestResult| BM BM -->|"Zenoh Publish
bit/{hostname}/PBIT"| ZS BM -->|"Zenoh Publish
bit/{hostname}/CBIT"| ZS BM -->|"Zenoh Publish
bit/{hostname}/FBIT"| ZS ZS -->|"Subscribe
bit/+/+"| GUI ZS -->|"Subscribe
bit/+/+"| CLI ZS -->|"Subscribe
bit/+/+"| ZDG ZDG -->|"DDS Publish
GVA::HealthStatus"| HUMS

Išsami pranešimų seka

sequenceDiagram participant Plugin as Test Plugin participant BM as BIT Manager participant Zenoh as Zenoh Router participant GUI as BIT GUI participant Gateway as BIT Gateway participant HUMS as GVA HUMS (DDS) Note over Plugin,HUMS: Test Execution & Result Distribution Plugin->>BM: Execute Test BM->>BM: Encode BuiltInTestResult (Protobuf) BM->>Zenoh: Publish to bit/{hostname}/CBIT par Parallel Distribution Zenoh-->>GUI: Forward Result GUI->>GUI: Display in Dashboard and Zenoh-->>Gateway: Forward Result Gateway->>Gateway: Zenoh → DDS Transform Gateway->>HUMS: Publish GVA::HealthStatus HUMS->>HUMS: Update Vehicle Health Record end Note over GUI,HUMS: Real-time monitoring on both systems

Protokolo tilto detalės

Komponentas Protokolas įvestas Protokolo išėjimas Tikslas
BIT tvarkyklė Vidinis Zenohas Skelbia bandymų rezultatus
BIT grafinė sąsaja Zenohas Rodo rezultatus realiuoju laiku
BIT CLI Zenohas Komandinės eilutės stebėjimas
BIT šliuzas Zenohas DDS (BPV) Tiltai į transporto priemonių sistemas
GVA HUMS DDS Sveikatos ir naudojimo stebėjimas

Įskiepio funkcijos

Funkcija Aprašymas
Dinaminis pakrovimas Įskiepiai vykdymo metu įkeliami kaip bendros bibliotekos ( .so ).
Bruožais pagrįsta sąsaja Nuoseklūs TestRun ir TestDetails požymiai visiems įskiepiams
Konfigūracijos failai TOML pagrindu sukurta konfigūracija kiekvienam testui ( /etc/bit/*.toml )
Versijų stebėjimas Kiekvienas įskiepis praneša versiją ir kūrimo laiko žymą
Atgalinių skambučių registravimas Vieninga registravimo infrastruktūra visuose bandymuose
Paleisti skaitiklius Automatinis sėkmingų/nepavykusių statistikos stebėjimas

Naujo įskiepio kūrimas

Sukurti pasirinktinį BIT įskiepį yra paprasta:

  1. Įgyvendinkite TestRun savybę:
 impl TestRun for MyCustomTest {
    fn run(&mut self) {
        // Your test logic here
        self.base_test.status = TestStatus::Success;
    }
}
  1. Eksportuokite įskiepio sąsają:
 #[no_mangle]
pub extern "C" fn create_test() -> Box {
    Box::new(MyCustomTest::new())
}
  1. Sukurkite konfigūracijos failą (nebūtina):
 [my_custom_test]
frequency = 60
enabled = true
threshold = 90
  1. Sukurkite ir įdiekite bendrinamą biblioteką aplanke /usr/local/lib/bit_manager/

Rūdžių kalbos saugos funkcijos

BIT sistema įdiegta „Rust“ kalboje, užtikrinant neprilygstamas saugos garantijas, būtinas įterptosioms ir saugai svarbioms sistemoms.

Atminties saugumas

Funkcija Nauda
Nėra nulinių rodyklių Option tipai neleidžia naudoti nulinių rodyklių nukrypimų
Nėra buferio perpildymo Ribų tikrinimas visiems masyvų / vektorių pasiekimams
Be naudojimo po nemokamo naudojimo Nuosavybės sistema garantuoja atminties galiojimą
Jokių duomenų lenktynių Lygiagrečios prieigos klaidų prevencija kompiliavimo metu

Kodėl „Rust“ tinka BIT?

🔒 Kompiliavimo laiko saugumas

„Rust“ kompiliavimo metu aptinka ištisas klaidų kategorijas, kurios C/C++ kalboje sukelia vykdymo gedimus:

  • Atminties nutekėjimas
  • Buferio perpildymas
  • Lenktynių sąlygos
  • Nulinės rodyklės nuorodų atšaukimas

⚡ Nulinės kainos abstrakcijos

Aukšto lygio saugos funkcijos sukompiliuojamos į efektyvų mašininį kodą be jokių vykdymo laiko sąnaudų , atitinkančių C/C++ našumą.

🔧 Bebaimis lygiagretumas

Nuosavybės modelis leidžia saugiai vykdyti daugiagijas testavimo programas be duomenų lenktynių:

 // Thread-safe shared state with Arc>
let shared_state = Arc::new(Mutex::new(TestState::new()));

📦 Šiuolaikinis priklausomybių valdymas

  • Krovinių paketų tvarkyklė užtikrina atkartojamus surinkimus
  • Automatinis priklausomybių sprendimas
  • Integruota testavimo sistema

🛡️ Tipui saugi konfigūracija

Konfigūracijos analizavimas naudoja „Rust“ tipų sistemą, kad anksti aptiktų klaidas:

 let threshold: f32 = config.get("threshold")?;  // Type-checked at compile time

Saugos statistika

Metrika Rūdys ir C/C++
Atminties saugos klaidos Pašalinta kompiliavimo metu
Užkirsta CVE pažeidžiamumo klasių ~70 % dažniausiai pasitaikančių pažeidžiamumų
Vykdymo laiko nulinės rodyklės gedimai Neįmanoma
Gijų saugos pažeidimai Užfiksuota kompiliavimo metu

Integracija ir diegimas

Sisteminė paslauga

 # Enable automatic startup
sudo systemctl enable bit_manager

# Start the service
sudo systemctl start bit_manager

# Check status
sudo systemctl status bit_manager

Debian paketo diegimas

 cargo deb -p bit_manager
sudo dpkg -i target/debian/bit_manager_*.deb

Konfigūracijos keliai

Kelias Tikslas
/etc/bit/ Testavimo konfigūracijos failai (TOML)
/usr/local/lib/bit_manager/ Bendrinamos papildinių bibliotekos
/var/log/bit_manager/ Žurnalų failai

Inspektavimas ir stebėjimas

bit_inspect programa pateikia išsamią informaciją apie įkeltus testus:

 # List all available tests
bit_inspect

# Get detailed information about a specific test
bit_inspect cbit_disk_usage

Pavyzdinė išvestis:

 Details:
  Long-Name              Disk utilization test
  Author                 Ross Newman 
  Description            Check the disk is not nearing full
  Status                 NotRun

Plugin Details:
  Plugin Name            cbit_disk_usage
  Version                1.0.0
  Date Built             2025-03-09 01:42:11
  Run Frequency          Periodic(30s)

Santrauka

BIT sistema suteikia:

Išsami aparatinės ir programinės įrangos diagnostika
Išplečiama įskiepių architektūra individualiems testams
Saugus atminties išsaugojimas Rust kalboje
Pramonės standarto PBIT/CBIT/FBIT metodika
Gimtoji Linux/systemd integracija
Konfigūracijos pagrindu veikiantys bandymo parametrai
Stebėjimas ir registravimas realiuoju laiku