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
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
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:
- Įgyvendinkite
TestRunsavybę:
impl TestRun for MyCustomTest {
fn run(&mut self) {
// Your test logic here
self.base_test.status = TestStatus::Success;
}
}- Eksportuokite įskiepio sąsają:
#[no_mangle]
pub extern "C" fn create_test() -> Box {
Box::new(MyCustomTest::new())
} - Sukurkite konfigūracijos failą (nebūtina):
[my_custom_test]
frequency = 60
enabled = true
threshold = 90- 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 timeSaugos 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_managerDebian paketo diegimas
cargo deb -p bit_manager
sudo dpkg -i target/debian/bit_manager_*.debKonfigū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_usagePavyzdinė 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