ControlFlag: et kodefejlfindingsværktøj

Intel har frigivet frigive den betydelige version af ControlFlag 1.0, som er en software kontrolsystem tillader opdage fejl og uregelmæssigheder i din kode kilde ved hjælp af et maskinlæringssystem trænet på en stor mængde eksisterende kode.

I modsætning til traditionelle statiske analysatorer, ControlFlag anvender ikke foruddefinerede regler, hvor det er svært at forudse alle mulige muligheder, men snarere del af statistikken over brug af alle typer konstruktioner sprog i en lang række eksisterende projekter.

Ifølge forskning sker det at finde og fjerne fejl i kode oftest manuelt og tager mere end 50 % af udviklernes arbejdstid. 

Værktøjet lærer at identificere og mærke disse stilistiske muligheder, og du kan tilpasse fejlidentifikation og rette anbefalinger baseret på din viden, hvilket minimerer ControlFlag dårlige kodekarakteriseringer, der simpelthen kan være en stilistisk afvigelse mellem to teams af udviklere. .

Om ControlFlag

Systemet trænes ved at bygge en statistisk model ud fra den eksisterende kildekodematrix åben udgivet på GitHub og lignende offentlige repositories. I træningsfasen bestemmer systemet typiske skabeloner til at bygge strukturer i koden og opbygger et syntaktisk træ af forbindelser mellem disse skabeloner, hvilket afspejler strømmen af ​​kodeudførelse i programmet.

Som følge heraf dannes et referencebeslutningstræ, som kombinerer udviklingserfaringen fra alle analyserede kildetekster. En lignende mønsterindstillingsproces udføres for koden under test, som sammenlignes med et referencebeslutningstræ. Store uoverensstemmelser med tilstødende grene indikerer en anomali i det mønster, der verificeres.

Af egenskaberne Af versionen ControlFlag 1.0, fuld understøttelse af C-skabeloner er fremhævet og evnen til at opdage anomalier i betingede "hvis"-udsagn.

For eksempel, når du analyserer kodestykket "if (x = 7) y = x;" systemet vil opdage, at "variabel == tal"-konstruktionen generelt bruges i "if"-sætningen til at sammenligne numeriske værdier, så "variabel = tal"-indikationen i "if"-sætningen er sandsynligvis forårsaget af en typografisk fejl.

Sættet giver et script, der gør det muligt at downloade de C-lagre, der er tilgængelige på GitHub og bruge dem til at bygge en model. Klar-til-gå-modeller er også tilgængelige, så du kan begynde at tjekke koden med det samme

Systemet er en del af Maskinprogrammeringsforskningsprojektet (MPR) fra Intel, hvis hovedmål er at reducere den tid, der kræves til softwareudvikling med 1000 gange på grund af automatisering.

Specielt arbejder Intel i øjeblikket på at træne Controlflag til automatisk at rette opdagede fejl. Også i 2020 udgav virksomheden MISIM-værktøjet, udviklet i samarbejde med MIT-laboratorier, som kan studere kodestykker for at forstå, hvad et stykke kode er beregnet til at gøre. Systemet er beregnet til at blive brugt til at give udviklere måder at forbedre kodeeffektiviteten.

"Debugging forventes at gøre endnu mere skade på udviklere og industrien som helhed," sagde Intel. Meddelelse... "Når ControlFlag er fuldt implementeret, kan hjælpe med at afbøde denne udfordring ved at automatisere besværet med softwareudvikling såsom test, overvågning og fejlretning."

“Den største fordel ved ControlFlags uovervågede tilgang til mønstergenkendelse er, at du i bund og grund kan lære at tilpasse dig udviklerens stil. Fordi programmet har begrænset input til de kontrolværktøjer, du skal evaluere. ControlFlag kan identificere typografiske variationer i programmeringssprog på samme måde, som læsere kan genkende fuldstændige forskelle mellem ord og bruge engelske forkortelser,” skriver Intel.

Endelig hvis du er interesseret i at vide mere om det Om ControlFlag skal du vide, at det er skrevet i C++ og er open source under MIT-licensen og dens kode er hostet på GitHub.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.