science >> Wetenschap >  >> Elektronica

NIST-tool maakt uitgebreidere tests op risicovolle software mogelijk

Credit:witte Mocca/Shutterstock/N.Hanacek/NIST

Elke keer dat we aan boord van een hightech vliegtuig of moderne auto stappen, vertrouwen we ons leven toe aan software. Een langdurige onderzoeksinspanning onder leiding van twee onderzoekers van het National Institute of Standards and Technology (NIST) en hun medewerkers heeft nieuwe tools ontwikkeld om dit soort veiligheidskritieke software nog veiliger te maken.

Een bestaande softwaretoolkit uitbreiden, de nieuwe creatie van het onderzoeksteam kan de veiligheidstests versterken die softwarebedrijven uitvoeren op de programma's die helpen bij het besturen van onze voertuigen, onze energiecentrales bedienen en andere veeleisende technologie beheren. Hoewel deze tests vaak kostbaar en tijdrovend zijn, ze verkleinen de kans dat deze complexe code hapert omdat deze een onverwachte combinatie van invoergegevens heeft ontvangen. Deze bron van problemen kan elk geavanceerd softwarepakket teisteren dat op elk moment op betrouwbare wijze meerdere gegevensstromen van sensoren en menselijke operators moet bewaken en erop moet reageren.

Met de onderzoekstoolkit Automated Combinatorial Testing for Software, of HANDELINGEN, softwarebedrijven kunnen ervoor zorgen dat er geen gelijktijdige invoercombinaties zijn die onbedoeld een gevaarlijke fout kunnen veroorzaken. Als een ruwe parallel, denk aan een sneltoets, zoals het indrukken van CTRL-ALT-DELETE om een ​​systeem opzettelijk te resetten. Het risico van veiligheidskritieke software is dat er combinaties kunnen ontstaan ​​die onbedoelde gevolgen hebben.

Tot nu, er was geen manier om er zeker van te zijn dat alle significante combinaties in zeer grote systemen waren getest:een riskante situatie. Nutsvoorzieningen, met behulp van de vorderingen van het onderzoeksteam, zelfs software met duizenden invoervariabelen, die elk een reeks waarden kunnen hebben, grondig kan worden getest.

NIST's ACTS-toolkit bevat nu een bijgewerkte versie van Combinatorial Coverage Measurement (CCM), een tool die moet helpen de veiligheid te verbeteren en de softwarekosten te verlagen. De software-industrie geeft vaak zeven tot twintig keer zoveel geld uit aan het betrouwbaar maken van veiligheidskritieke software als aan meer conventionele code.

De peer-reviewed bevindingen van het onderzoeksteam verschijnen in twee papers die het team op 23 april zal presenteren op de IEEE International Conference on Software Testing 2019, Verificatie en validatie in Xi'an, China. Het onderzoek omvat medewerkers van de Universiteit van Texas in Arlington, Adobe Systems Inc. en het Oostenrijkse SBA Research.

NIST-wiskundige Raghu Kacker zei dat CCM een substantiële verbetering is van de ACTS-toolkit sinds de laatste grote toevoeging in 2015.

"Voordat we CCM herzien, het was moeilijk om software te testen die duizenden variabelen grondig behandelde, Kacker zei. "Die beperking is een probleem voor complexe moderne software zoals die wordt gebruikt in passagiersvliegtuigen en kerncentrales. omdat het niet alleen zeer configureerbaar is, het is ook levenskritiek. Het leven en de gezondheid van mensen hangen ervan af."

Softwareontwikkelaars kampen al tientallen jaren met bugs die het gevolg zijn van onverwachte invoercombinaties, dus begon NIST in de jaren negentig naar de oorzaken van softwarefouten te kijken om de industrie te helpen. Het bleek dat de meeste storingen betrekking hadden op een enkele factor of een combinatie van twee invoervariabelen:de temperatuur en druk van een medisch apparaat, bijvoorbeeld, waardoor een systeemreset op het verkeerde moment wordt veroorzaakt. Sommige hadden betrekking op maximaal zes invoervariabelen.

Omdat een enkele invoervariabele een reeks potentiële waarden kan hebben en een programma veel van dergelijke variabelen kan hebben, het kan een praktische onmogelijkheid zijn om elke denkbare combinatie te testen, dus testers vertrouwen op een wiskundige strategie om een ​​groot aantal mogelijkheden te elimineren. Tegen het midden van de jaren 2000, de NIST-toolkit kan ingangen in maximaal zes-wegcombinaties controleren, het elimineren van veel risico's op fouten.

"Onze tools sloegen aan, maar op het einde, je vraagt ​​je nog steeds af hoe goed je het hebt gedaan, hoe grondig uw testen waren, " zei NIST computerwetenschapper Richard Kuhn, die met Kacker aan het project werkte. "We hebben CCM geüpdatet zodat het die vragen kon beantwoorden."

De eigen tools van NIST waren in staat om software te verwerken die een paar honderd invoervariabelen had, maar SBA Research heeft nog een nieuwe tool ontwikkeld die software kan onderzoeken met maximaal 2, 000, het genereren van een testsuite voor maximaal vijfvoudige combinaties van invoervariabelen. De twee tools kunnen op een complementaire manier worden gebruikt:terwijl de NIST-software de dekking van invoercombinaties kan meten, het SBA-algoritme kan de dekking uitbreiden tot duizenden variabelen.

Onlangs, Adobe Systems Inc. nam contact op met NIST en vroeg om hulp bij het vijfvoudig testen van een van zijn softwarepakketten. NIST voorzag het bedrijf van de door CCM en SBA ontwikkelde algoritmen, waarmee Adobe samen betrouwbaarheidstests op zijn code kon uitvoeren die aantoonbaar zowel succesvol als grondig waren.

Hoewel het SBA Research-algoritme geen officieel onderdeel is van de ACTS-testsuite, het team heeft plannen om het in de toekomst op te nemen. Ondertussen, Kuhn zei dat NIST het algoritme beschikbaar zal stellen aan elke ontwikkelaar die erom vraagt.

"De samenwerking heeft aangetoond dat we nu grotere klassen van problemen aankunnen, "Zei Kuhn. "We kunnen deze methode toepassen op meer applicaties en systemen die voorheen te moeilijk waren om te hanteren. We nodigen elk bedrijf dat geïnteresseerd is in het uitbreiden van zijn software uit om contact met ons op te nemen, en we delen alle informatie die ze nodig hebben."