5 tips för att säkerställa en buggfri mjukvaruutveckling
Har din programvara buggar? Naturligtvis gör det det, eftersom alla program som finns tillgängliga där ute har problem och buggfri programvara är en myt. Det är dock fortfarande möjligt att avsevärt minimera buggar, fel och säkerhetsproblem genom att följa några bokaktiga men praktiska begränsningstekniker.
Det är mycket disciplin inblandat när det kommer till felspårning, eftersom det kräver att alla uppmuntras att stå för reglerna. Särskilt i startups och kreativt drivna branscher kan det vara ganska svårt att avskräcka all informell kommunikation. Faktum är att i många fall nämner människor inte ”buggspårning” som sin mest fokuserade del av ett projekt.
Vad handlar buggspårning om egentligen?
Enligt Technopedia: ”Bugspårning är en process som används av kvalitetssäkringspersonal och programmerare för att hålla reda på mjukvaruproblem och lösningar.”
Ett buggspårningssystem hanterar därför all information om rapporterade fel och håller reda på statusen för varje bugg. Du ser definitivt behovet av omfattande information när du spårar problem. Att tillhandahålla tillräckligt med data kräver inte bara en enorm mängd tid utan också riklig kompetens inom området mjukvaruutveckling.
Buggklassificeringen
Det finns tre typer av programvarubuggar:
- Felaktiga specifikationer
- Implementeringsfel
- Saknar specifikation
Vilken som helst av dessa buggtyper kan enkelt klassificeras som ett kritiskt problem (eller omklassificeras som en förbättring). Framför nämns några av riktlinjerna för omklassificering som används av Sam Hatoum, grundare av Xolv.io.
- Gör den felaktiga specifikationen oss en förlust? Till exempel anger specifikationen att spåra klick räknas, när det ska spåra utgifter. Omklassificera Bug.
- Kan implementeringsfelet försummas? Till exempel installeras webbteckensnitt när det ska bäddas in i programvaran.
- Innebär den saknade specifikationen nya funktioner? Till exempel kan användare inte dela och redigera sina profildetaljer på sociala nätverk.
Insatserna höjs för produktcheferna att effektivt klassificera buggar, eftersom utvecklingsteamet instrueras att prioritera buggar framför allt annat arbete. Utvecklarna kommer inte att fungera eller något annat förrän alla buggar har tagits bort.
Forma teamkvalitetsstandarder
När ett design- och utvecklingsteam beslutar om ett appvirus kan omklassificeras som en förbättring eller inte, anger den beslutsprocessen implicit teamets kvalitetsstandarder. Till exempel kan en varumärkesägare som betonar högkvalitativ bild ha låg tolerans för designavvikelser. De skulle istället omklassificera dessa problem som buggar.
Ett konsekvent omklassificeringssystem låter dig kontinuerligt anpassa förväntningar mot verklighet, samtidigt som du upprätthåller ett strukturerat leveranssätt som sätter ditt teams kvalitetsstandarder först.
Felet misslyckas
Nyligen genomförda studier hävdar att nästan 40 procent av systemfelen orsakas av programvarubuggar, medan andra säkerhetsproblem och programsårbarheter står för 60 procent, orsakade av vanliga minnes- och samtidighetsrelaterade problem. Att minska programbuggar i din applikation är det bästa sättet att öka säkerheten, stabiliteten och tillförlitligheten för din programvara.
Tips för att säkerställa en buggfri mjukvaruutveckling
Under utvecklingen av loggverktyget SmartInspect använde utvecklarna många metoder för att hålla kvaliteten på sitt system hög. Listan som nämns ovan innehåller några av de tekniker de använde.
1 Skapa utrymme för kommunikation
Att upptäcka och rapportera buggar kräver kompetens att identifiera relevant information som sedan läggs till i varje problemrapport. Det finns många felspårnings- och kvalitetssäkringsverktyg som Usersnap som erbjuder möjligheten att automatiskt bifoga nödvändig information. Ändå kommer det alltid att finnas utrymme för saknad eller missförstådd information, vilket leder till ett behov av korrekt kommunikation.
I vissa testscenarier finns det inget utrymme för den typen av avslöjande mellan utvecklarna och testarna. Frågor som: ”Hur kan jag komma i kontakt med de ansvariga experterna?” eller ”Är det okej att be om feedback via telefon eller e-post?” måste besvaras i början av buggspårningsprocessen.
För att undvika missförstånd för testare och utvecklare, försök att få alla på samma sida och skapa en feedback-orienterad kultur där båda parters arbete respekteras på samma sätt.
2 Håll det en-mot-en
Undvik att diskutera buggar i ett projektmöte. Missförstå mig inte nu. Det finns inget dåligt med att arbeta som ett team, reproducera och fixa buggar. Men diskutera inte problem i utdragna möten med hela kabinettet. Enligt Thomas Peham, en teknikbloggare på Usersnap.com, är det ganska långsamt att rapportera buggar och sedan diskutera dem i nästa utvecklings-”omtestningsfas”.
Det är faktiskt mycket mer effektivt att hålla det en-mot-en. Som Yegor skrev i sin artikel om de 5 principerna för felspårning, är varje felrapport länkad mellan två personer – specificeraren och problemlösaren. Oavsett hur många personer som är involverade i processen finns det bara 2 huvudansvar (med två olika roller) för att lösa ett rapporterat problem.
3 Säkerställ ett inköp från ditt team
Om hela ditt team inte använder det, skulle en bra felspårningsdatabas vara ineffektiv. Det är bäst att börja med att få alla dina intressenter (kundservice, kvalitetssäkring, projektledare och utvecklare) att utvärdera verktyg och försöka fatta ett beslut tillsammans; logga och åtgärda defekter på ett konsekvent sätt genom att använda samma system.
Om du kämpar med att få folk ombord, här är vad du kan göra;
För utvecklare, fastställa lagen för att acceptera felrapporter genom individuella databaser och inte någon annan metod. När testare skickar dig e-postmeddelanden med feedback, be dem bara att slänga rapporterna i informationssystemet istället. Förutom att se till att saker och ting håller sig organiserade, hjälper detta också till med rapporteringen genom att tillhandahålla all nödvändig information och definiera nödvändiga fält.
Ett annat sätt att skapa en mer effektiv process är att få QA, eller support att verifiera buggar från kunder och lägga till de exakta stegen i databasen innan utvecklarna ens meddelas. Att effektivt spåra dina programvaruproblem är en av de viktigaste aspekterna av att ha ett tillförlitligt och konsekvent ramverk för projektledning.
- En bra debugger
Om du använder system som Visual Studio eller Delphi har du redan tillgång till en extremt kraftfull debugger som du bör använda. I fallet med en skriptmiljö där utvecklare ofta försöker eliminera buggar genom att trial and error, blir processen inte bara ett besvärligt sätt att identifiera och lösa problem, utan är också mycket farligt om du inte helt förstår din kod och inte kan gå igenom det med en debugger. Gör dig själv en tjänst genom att skaffa en bra felsökningsplattform för ditt team – det finns felsökningsverktyg för nästan allt.
4 Vet vad en ”stängd” bugg betyder
Har du någonsin varit inblandad i en diskussion om att stänga en bugg? Nåväl, grattis, du har varit i den värsta tänkbara buggspårningssituation som någonsin kan inträffa.
Om du hamnar i en diskussion om ”buggstatus”, överväg att ta ett steg tillbaka och ställa dig själv följande frågor:
- Vems ansvar är det att acceptera resultat?
- Vilka är kriterierna för acceptans?
- Vem är ansvarig för att ge ordern?
Ta en titt på innebörden av ”stängd”. I de flesta utvecklingsteam stängs en bugg av personen som fixade felet. Peham rekommenderar att du stänger felrapporten av personen som rapporterade problemet. När lösningen för en viss bugg har lagts fram av utvecklaren bör reportern uppmanas att stänga rapporten. Detta skulle säkerställa att återkopplingen är en tillräcklig lösning för mjukvaruproblemen.
5 virtuella maskiner
För att testa din programvara för buggar på många olika operativsystem och miljöer som möjligt bör du använda virtuella maskiner med verktyg som Virtual PC eller annan tillgänglig virtualiseringsprogramvara. Du kan spara massor av tid genom denna metod eftersom du enkelt kan kopiera, dela och återställa de virtuella maskinerna, så att du kan testa din programvara på alla typer av konfigurationer.
Det är alltid att föredra att skapa olika standardbilder för alla operativsystem du regelbundet testar och lägga dem på en filserver. När du är i behov av en mycket specifik konfiguration för att testa något, kan du börja med en av basavbildningarna utan att installera operativsystemet, nödvändig programvara och drivrutiner och så vidare.
Det är inget nytt koncept
När Hatoum kom på det här konceptet fick han reda på att idén med Zero-Bug-mjukvaran inte är ny. Det har faktiskt funnits sedan 1960-talet, som många av de bortglömda gamla skolans filosofier.
Den legendariske kvalitetsexperten, Phillip Crosby, uppfann termen Zero-Defect när han arbetade på Martin Company eller som för närvarande kallas ’Lockheed Martin’ där det rapporterades att de uppnådde ”en 54% minskning av defekter i hårdvara under statlig granskning”.
Till en början användes Zero-Defect-tekniken inom flygtillverkning på 60-talet, och användes sedan inom biltillverkning på 1990-talet. Det finns många likheter mellan tillverkningsindustrin och mjukvaruleverans.
Den populära agila hanteringsmodaliteten Kanban, till exempel, härstammar från Toyota Production System. Vad detta i princip säger oss är att vi enkelt kan undersöka dessa tillverkningsprocesser för teknisk inspiration inom mjukvaru- eller apputveckling, och Zero-Bug är en av dessa inspirationer.
Den extrema kostnaden för att uppfylla standarden är dock en stor kritik mot nolldefektmetoden. Och om det implementeras felaktigt kan detta verkligen vara sant. I Zero-Bug-metoden har Hatoum direkt hanterat detta problem genom omklassificering av buggar till funktioner och betydande förbättringar, vilket gör att kostnaden kan kontrolleras genom teamets kvalitetsstandarder.
Börja idag
Som teknikanvändare och utvecklare kan du börja gå igenom alla befintliga fel och klassificera dem genom att använda det tidigare nämnda systemet. Om du tror att du har hundratusentals problem kan det här vara ett bra tillfälle att logga in dem och börja om på nytt. Oroa dig inte, du kan alltid flytta buggar från arkiven till den aktuella domänen när du behöver.
Utvecklingsteamet behöver inte nödvändigtvis vänta tills hela klassificeringsövningen är klar innan de börjar klämma ihop buggar; de kan komma igång så snart några buggar har klassificerats. Teamet får inte börja arbeta med några andra objekt i eftersläpningen förrän alla artiklar har ”buggfrigjorts” eller omklassificerats. Det är just denna regel som tvingar produktchefer att prioritera nytt arbete rätt.
Sammanfatta det
Varje rapporterad bugg i ett projekt kräver ytterligare tid för att fixas. Buggspårning kräver därför stor kommunikationsförmåga från individer som spårar felen samt känslighet från de som fixar dem. Med de ovan nämnda spårningshacken kan ditt team försöka bli mer produktivt samtidigt som de rapporterar alla typer av tekniska eller säkerhetshinder.