var tror du kan vara hem för programfel? Rätt, i programvara. Men var exakt?
varför händer det att program inte fungerar korrekt? Det är väldigt enkelt – de skapas och används av människor. Om användaren gör ett misstag kan detta leda till ett problem i programmets funktion – det används felaktigt, vilket innebär att det kanske inte beter sig som förväntat.
mänskligt fel
ett fel – är en mänsklig handling som ger ett felaktigt resultat.
programvaran är dock designad och skapad av människor som också kan (och gör) göra misstag. Det betyder att det finns brister i själva programvaran. De kallas defekter eller buggar (båda beteckningarna är likvärdiga). Kom ihåg – programvara är mer än bara kod.
programvarufel eller fel
fel, Fel – en brist på en komponent eller ett system som kan leda till fel på viss funktionalitet. En defekt som upptäcks under programkörning kan orsaka fel på en enskild komponent eller hela systemet.
under körningen av programkoden kan fel som var inbäddade även under skrivandet visas: programmet kanske inte gör vad det ska, eller vice versa – gör vad det inte borde och en krasch inträffar.
programfel eller krasch
fel eller krasch är en skillnad mellan det faktiska resultatet av driften av en komponent eller ett system och det förväntade resultatet.
fel i programmet kan vara en indikator på förekomsten av en defekt i den.
således finns felet när tre villkor är uppfyllda samtidigt:
- det förväntade resultatet är känt;
- det faktiska resultatet är känt;
- det faktiska resultatet skiljer sig från det förväntade resultatet.
det är viktigt att förstå att inte alla buggar orsakar kraschar – vissa av dem kan inte manifestera sig på något sätt och förbli obemärkt (eller visas endast under mycket specifika omständigheter).
fel kan orsakas inte bara av defekter utan också av miljöförhållanden: till exempel kan strålning, elektromagnetiska fält eller förorening också påverka driften av både programvara och hårdvara.
totalt finns det flera felkällor och följaktligen fel:
- fel i Specifikation, design eller implementering av programvarusystemet;
- systemanvändningsfel;
- ogynnsamma miljöförhållanden;
- avsiktlig skada;
- de potentiella konsekvenserna av tidigare fel, förhållanden eller avsiktliga åtgärder.
defekter kan uppstå på olika nivåer, och systemets kvalitet beror direkt på om de korrigeras och när.
kvalitet-i vilken grad uppsättningen inneboende egenskaper uppfyller kraven.
programvarukvalitet är en samling egenskaper hos programvara som återspeglar dess förmåga att möta uttalade och underförstådda behov. Krav är ett etablerat behov eller förväntan. Vanligtvis antas eller krävs.
i det första fallet gjordes allt korrekt och vi fick en produkt som helt uppfyller kundens förväntningar och uppfyller kvalitetskriterierna.
i det andra fallet gjordes fel redan under kodning, vilket ledde till att fel uppstod i den färdiga produkten. Men på den här nivån är buggar ganska lätta att upptäcka och fixa, eftersom vi ser bristande överensstämmelse.
det tredje alternativet är värre-här gjordes misstag vid systemets designstadium. Detta kan bara märkas genom att göra en noggrann kontroll med specifikationen. Att korrigera sådana defekter är inte heller lätt – du måste omforma produktdesignen.
i det fjärde fallet fastställdes defekterna vid kravbildningsstadiet; all vidareutveckling och till och med testning gick ner på den initialt felaktiga vägen. Under testningen hittar vi inte buggar – programmet kommer att klara alla tester, men det kan avvisas av kunden. Du kommer att lära dig mer om detta i våra online QA-klasser och certifiering.
konventionellt finns det fem orsaker till att fel uppstår i programkoden.
- brist på teamkommunikation. Ofta når affärskraven helt enkelt inte utvecklingsteamet. Kunden har en förståelse för hur de vill se den färdiga produkten, men om deras IDE inte förklaras ordentligt för utvecklarna och testarna kanske resultatet inte blir som förväntat. Krav bör vara tillgängliga och begripliga för alla deltagare i mjukvaruutvecklingsprocessen.
- komplexiteten i programvaran. Modern programvara består av många komponenter som kombineras i komplexa mjukvarusystem. Multi-threaded applikationer, klient-server och distribuerad arkitektur, multi-tier databaser – program blir svårare att skriva och underhålla, och desto svårare blir programmerarnas jobb. Och ju svårare arbetet är, desto fler misstag kan personen som utför det göra.
- ändringar av krav. Även mindre förändringar av krav sent i utvecklingen kräver mycket arbete för att göra ändringar i systemet. Applikationens design och arkitektur förändras, vilket i sin tur kräver ändringar i källkoden och principerna för interaktion mellan mjukvarumoduler. Dessa pågående förändringar är ofta källan till subtila defekter. Ändå är ofta förändrade krav i modern verksamhet mer regel än undantag, så kontinuerlig testning och riskkontroll under sådana förhållanden är det direkta ansvaret för kvalitetssäkringsavdelningen.
- dåligt dokumenterad kod. Det är svårt att underhålla och modifiera dåligt skriven och dåligt dokumenterad kod. Många företag har särskilda regler för att skriva och dokumentera kod av programmerare. Även om det i praktiken ofta händer att utvecklare tvingas skriva program snabbt i första hand, vilket påverkar produktens kvalitet.
- verktyg för mjukvaruutveckling. Renderare, bibliotek, kompilatorer, skriptgeneratorer och andra utvecklingshjälpmedel är också ofta dåligt presterande och dåligt dokumenterade program som kan bli en källa till defekter i den färdiga produkten.