ComputereSoftware

Testprogrammer - processen med at registrere fejl i et softwareprodukt

Ved udvikling af software er en væsentlig del af produktionsprocessen afhængig af programtest. Hvad dette er, og hvordan denne aktivitet udføres, vil blive diskuteret i denne artikel.

Hvad hedder testning?

Dette forstås som den proces, hvor softwaren køres, for at lokalisere placeringen af forkert kodefunktion. For at opnå det bedste resultat opbygges vanskelige sæt inputdata bevidst. Hovedformålet med revisor er at skabe optimale muligheder for fejl i softwareproduktet. Selvom testen af det udviklede program undertiden kan forenkles til normal ydeevne og funktion. Dette sparer tid, men ledsages ofte af upålidelig software, brugerens utilfredshed og så videre.

effektivitet

Hvor gode og hurtige fejl har en betydelig indvirkning på omkostningerne og varigheden af softwareudvikling af den krævede kvalitet. Så på trods af at testerne modtager løn flere gange mindre end programmører, koster omkostningerne ved deres tjenester normalt 30-40% af omkostningerne ved hele projektet. Dette skyldes antallet af medarbejdere, fordi det er en usædvanlig og temmelig vanskelig proces at lede efter en fejl. Men selvom softwaren bestod et solidt antal tests, er der ingen 100% garanti for, at der ikke kommer fejl. Det er bare ikke kendt, når de vil manifestere. For at tilskynde testere til at vælge typer verifikation, der er mere tilbøjelige til at finde en fejl, anvendes forskellige motivationsmidler: både moralsk og materiel.

Tilgang til arbejde

Den optimale situation er, når forskellige mekanismer implementeres for at sikre, at der ikke er fejl i softwaren helt fra begyndelsen. Til dette er det nødvendigt at tage sig af det rette arkitekturdesign, en præcis teknisk opgave, og det er også vigtigt ikke at foretage justeringer, når projektet allerede er startet. I dette tilfælde står testeren i stand til at finde og bestemme et lille antal fejl, der forbliver i det endelige resultat. Dette vil spare både tid og penge.

Hvad er en test?

Dette er et vigtigt aspekt af inspektørens aktivitet, hvilket er nødvendigt for vellykket påvisning af programkode mangler. De er nødvendige for at overvåge rigtigheden af ansøgningen. Hvad er inkluderet i testen? Den består af deres oprindelige data og værdier, som skal opnås som resulterende (eller mellemliggende). For at kunne identificere problemer og uoverensstemmelser skal prøver udarbejdes efter algoritmen blev udviklet, men programmeringen begyndte ikke. Og det er ønskeligt at anvende flere tilgange ved beregning af de nødvendige data. I dette tilfælde øges sandsynligheden for at registrere fejl, fordi det er muligt at undersøge koden fra et andet synspunkt. Komplekse tests skal give verifikation af de eksterne effekter af det færdige softwareprodukt såvel som dets arbejdsalgoritmer. Særlig interesse er tilvejebragt af begrænsende og degenererede tilfælde. Så i praksis med aktiviteter med fejl kan det ofte oplyses, at cyklen kører en gang mindre eller mere end planlagt. Det er også vigtigt at teste computeren, hvorved du kan kontrollere overensstemmelsen af det ønskede resultat til forskellige maskiner. Dette er nødvendigt for at sikre, at softwaren kan fungere på alle computere. Desuden er det vigtigt at teste den computer, som udviklingen skal udføres på, i udviklingen af multi-platform udvikling.

Kunsten at finde bugs

Programmer er ofte rettet mod at arbejde med et stort udvalg af data. Er det virkelig nødvendigt at oprette det helt? Nej det er det ikke Øvelsen af "miniaturisering" af programmet blev udbredt. I dette tilfælde er der en rimelig reduktion i mængden af data i forhold til hvad der skal anvendes. Lad os se på dette eksempel: Der er et program, hvor en matrix på 50x50 er oprettet. Med andre ord - du skal manuelt indtaste 2500 tusinde værdier. Dette er selvfølgelig muligt, men det vil tage meget lang tid. Men for at teste ydeevnen modtager softwareproduktet en matrix, hvis dimension er 5x5. For at gøre dette skal du indtaste allerede 25 værdier. Hvis der i dette tilfælde er et normalt, fejlfrit arbejde, så betyder det at alt er i orden. Selvom her er der faldgruber, der består i, at der under en miniaturisering forekommer en situation, hvorved ændringerne bliver implicitte og midlertidigt forsvinder. Det er også meget sjældent, men det sker også, at der opstår nye fejl.

Forfølgede mål

Testning af softwaren er ikke en nem opgave på grund af, at denne proces ikke kan formaliseres fuldt ud. Store programmer har næsten aldrig den nødvendige eksakte standard. Derfor bruges der som en vejledning en række indirekte data, som dog ikke fuldt ud kan afspejle egenskaberne og funktionerne i softwareudviklingen, der bliver debugged. Og de skal vælges på en sådan måde, at det korrekte resultat beregnes, selv før softwareproduktet testes. Hvis dette ikke er gjort på forhånd, så er der en fristelse til at overveje alt omkring, og hvis maskinresultatet falder ind i det forventede interval, så vil en fejlagtig beslutning træffes, at alt er korrekt.

Tjek i forskellige forhold

Typisk forekommer testen af programmer i de mængder, der kræves for en minimumsvalidering af funktionalitet inden for et begrænset interval. Aktiviteter udføres med ændringer i parametre samt vilkårene for deres arbejde. Testprocessen kan opdeles i tre faser:

  • Kontroller under normale forhold. I dette tilfælde testes den grundlæggende funktionalitet i den udviklede software. Resultatet skal være som forventet.
  • Kontroller nødsituationer. I disse tilfælde er det meningen at opnå grænsedata, hvilket kan påvirke effektiviteten af den oprettede software negativt. Som et eksempel kan du arbejde med ekstremt store eller små tal eller generelt en fuldstændig mangel på information.
  • Undtagelsescheck. Det indebærer brug af data, der ligger uden for behandling. I sådanne situationer er det meget dårligt, når softwaren opfatter dem som egnet til beregning og giver et plausibelt resultat. Det er nødvendigt at passe på, at der i sådanne tilfælde er afvisning af data, der ikke kan behandles korrekt. Det er også nødvendigt at give oplysninger om denne bruger

Software Testing: Typer

Det er meget vanskeligt at oprette software uden fejl. Det tager lang tid. For at få et godt produkt anvendes to typer test ofte: "Alpha" og "Beta". Hvad er de Når de siger om alfa-testning, betyder det testning, som udføres af udviklerens personale under "laboratoriebetingelser". Dette er det sidste trin i testen, før programmet overføres til slutbrugere. Derfor forsøger udviklerne at tænde maksimumet. For at lette driften kan data logges for at skabe en kronologi af problemer og deres eliminering. Betatestning forstås som levering af software til et begrænset antal brugere, så de kan udnytte programmet og identificere de fejl, der mangler. En funktion i dette tilfælde er, at softwaren ofte ikke bruges til det tilsigtede formål. På grund af dette vil der opdages fejl, hvor der ikke er set noget før. Dette er helt normalt, og der er ingen grund til at bekymre sig om dette.

Afslutning af test

Hvis de foregående trin er blevet gennemført, er det fortsat at foretage accepttesten. I dette tilfælde bliver det en ren formalitet. Under denne kontrol er der bekræftelse på, at der ikke er fundet yderligere problemer, og softwaren kan frigives til markedet. Jo større betydning det endelige resultat vil have, desto mere vil revisionen blive gennemført. Det er nødvendigt at sikre, at alle faser er bestået med succes. Sådan ser testprocessen generelt ud. Og nu skal vi gå ind i de tekniske detaljer og tale om sådanne nyttige værktøjer som testprogrammer. Hvad er de, og i hvilke tilfælde bliver de brugt?

Automatiseret test

Tidligere var det antaget, at dynamisk analyse af udviklet software - er for tung tilgang, hvilket er ineffektivt at bruge til at registrere defekter. Men på grund af stigningen i kompleksiteten og omfanget af programmerne viste det modsatte syn. Automatisk test bruges, hvor de vigtigste prioriteter er effektivitet og sikkerhed. Og de skal være med nogen input data. Som et eksempel på programmer, som sådan testning er tilrådeligt, kan følgende nævnes: netværksprotokoller, webserver, sandboxing. Vi vil næste overveje flere prøver, der kan bruges til sådanne aktiviteter. Hvis du er interesseret i gratis testprogrammer, så er det ret svært at finde kvalitet blandt dem. Men der er hackede "pirat" versioner af velprøvede projekter, så du kan vende om til deres tjenester.

lavine

Dette værktøj hjælper med at registrere defekter ved at teste programmer i den dynamiske analysemodus. Det samler data og analyserer udførelsesbanen for den udviklede objekt. Testeren gives et sæt inputdata, der forårsager en fejl eller omgå det sæt af tilgængelige begrænsninger. På grund af tilstedeværelsen af en god verifikationsalgoritme udvikles et stort antal mulige situationer. Programmet modtager en række input datasæt, der giver dig mulighed for at simulere et betydeligt antal situationer og skabe betingelser, hvor den mest sandsynlige forekomst af en fejl forekommer. En vigtig fordel ved programmet er brugen af en heuristisk metrisk. Hvis der er et problem, er applikationsfejlen højst sandsynlig. Men dette program har begrænsninger som at kontrollere kun en mærket indgangsstik eller -fil. Når der udføres en operation som programtest, vil der være detaljerede oplysninger om tilstedeværelsen af problemer med nulpegere, endeløse sløjfer, forkerte adresser eller fejlfunktioner på grund af brugen af biblioteker. Dette er selvfølgelig ikke en komplet liste over opdagede fejl, men kun deres almindelige eksempler. Korrigere manglerne, desværre, skal udviklere - automatiske værktøjer til disse formål er ikke egnede.

KLEE

Dette er et godt program til test af hukommelse. Det kan opfange ca. 50 systemopkald og et stort antal virtuelle processer, der således udføres parallelt og separat. Men generelt søger programmet ikke efter individuelle mistænkelige steder, men behandler den maksimale mængde kode og analyserer de anvendte dataoverførselsveje. På grund af dette afhænger testtiden af programmet afhængigt af objektets størrelse. Ved check er indsatsen lavet på symbolske processer. De er en af de mulige måder at udføre opgaver i et program, der bliver testet. På grund af den parallelle operation er det muligt at analysere et stort antal varianter af driften af ansøgningen under undersøgelse. For hver sti efter afslutningen af dens testning er sætene af inputdata, hvorfra testen begyndte, begyndt. Det skal bemærkes, at testprogrammer, der bruger KLEE, hjælper med at identificere et stort antal afvigelser, hvilket ikke bør være. Det kan finde problemer selv i applikationer, der udvikles i årtier.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 da.delachieve.com. Theme powered by WordPress.