Teknik 1 · Kapitel 3
Problemlösning inom IT
Från ett synligt symptom till en testad teknisk lösning.
Lektionsmål
Efter kapitlet ska du kunna...
- identifiera och analysera tekniska problem
- använda en systematisk problemlösningsprocess
- skilja symptom, orsak och lösning åt
- förklara varför testning och förbättring behövs
Startfråga
Knappen fungerar inte – vad gör du?
- Ändrar flera kodrader på måfå?
- Laddar om sidan och hoppas?
- Bygger om hela funktionen?
Börja med att beskriva exakt vad som händer och när.
Begrepp
Vad är ett tekniskt problem?
Något fungerar inte som det ska.
Ett behov saknar en fungerande lösning.
Ett system behöver förbättras.
Exempel: långsam webbplats, felaktigt resultat eller en spelkaraktär som fastnar.
Viktig skillnad
Symptom är inte samma sak som orsak
| Symptom | Möjlig orsak |
|---|---|
| Sidan laddar långsamt | För stora bilder eller långsam kod |
| Spelet kraschar | Ett oväntat värde hanteras inte |
| Knappen reagerar inte | Händelsen är inte kopplad till funktionen |
Lös orsaken – inte bara det som syns.
Helhetsbild
Fem steg i processen
Processen ersätter gissningar med observationer och kontrollerbara beslut.
Algoritmiskt tänkande
Gör problemet hanterbart
Dekomposition
Bryt ner ett stort problem i mindre delar.
Abstraktion
Fokusera på relevanta detaljer och bortse från resten.
Tillsammans gör de problemet lättare att analysera steg för steg.
Steg 1
Identifiera problemet
- Vad fungerar inte?
- När och var uppstår problemet?
- Vem påverkas?
- Vad förväntades hända?
- Vad hände i stället?
Bra problembeskrivning
Gör felet observerbart
Otydligt
”Webbplatsen är trasig.”
Tydligt
”På mobil öppnas inte menyn när användaren trycker på menyknappen.”
En tydlig beskrivning begränsar vad som behöver undersökas.
Steg 2
Analysera orsaken
- reproducera felet
- studera kod och loggar
- kontrollera indata och variabler
- jämför när det fungerar och inte fungerar
En reproduktion visar under vilka villkor felet uppstår.
Tre feltyper
Vilken typ av fel?
| Feltyp | Vad händer? | Exempel |
|---|---|---|
| Syntaxfel | Programmeringsspråket kan inte tolka koden. | En avslutande parentes saknas. |
| Exekveringsfel | Programmet startar men avbryts när felet inträffar. | Programmet försöker dividera ett tal med noll. |
| Logiskt fel | Programmet körs men ger fel resultat. | Rabatten adderas till priset i stället för att dras av. |
Kontrollfråga
Vilken typ av fel?
Ett program ska addera två tal men multiplicerar dem i stället.
Analysverktyg
Beskriv innan du kodar
Flödesschema
Visar processens steg, riktningar och beslut.
Pseudokod
Beskriver lösningens logik med begripliga steg.
LÄS in lösenord
OM lösenordet är korrekt
VISA startsidan
ANNARS
VISA felmeddelande
Steg 3
Föreslå flera lösningar
- ändra kod eller inställningar
- förbättra design och användarflöde
- optimera filer eller resurser
- jämför tid, effekt och risk
Den första idén är inte automatiskt den bästa lösningen.
Konsekvenser
Kan lösningen skapa nya problem?
En ändring kan lösa ett fel men samtidigt påverka:
Välj den lösning som fungerar bäst för systemet som helhet.
Steg 4
Implementera kontrollerat
- gör en tydlig förändring i taget
- dokumentera vad som ändras
- behåll möjligheten att återställa
- testa den minsta relevanta delen först
Om allt ändras samtidigt blir det svårt att veta vad som hjälpte.
Steg 5
Testa resultatet
- Är det ursprungliga problemet borta?
- Fungerar lösningen flera gånger?
- Fungerar den även med annan indata?
- Har något annat slutat fungera?
”Det fungerade en gång” är inte ett tillräckligt test.
Interaktiv felsökning
Vad är bästa nästa steg?
Ett formulär misslyckas ibland när det skickas, men teamet vet inte vilken inmatning som utlöser felet.
Exempel · webbplats
Knappen gör ingenting
- Identifiera: klick ger ingen reaktion.
- Analysera: JavaScript-funktionen körs inte.
- Föreslå: kontrollera kopplingen mellan knapp och funktion.
- Implementera: korrigera kopplingen.
- Testa: prova flera klick och olika enheter.
Exempel · Unity
Karaktären faller genom marken
- Symptom: karaktären passerar markytan.
- Analys: kontrollera collider och fysikinställningar.
- Orsak: collider saknas eller är fel inställd.
- Lösning: korrigera komponenten.
- Test: prova flera platser och rörelser.
Optimering
När inget är trasigt – men för långsamt
Optimering förbättrar exempelvis snabbhet, stabilitet eller resursanvändning.
- minska bildstorlekar
- förenkla onödigt arbete i koden
- anpassa serverkapacitet till belastningen
Mät före och efter ändringen. Annars vet du inte om den hjälpte.
Gummiankemetoden
Förklara problemet högt
- Beskriv vad systemet ska göra.
- Förklara vad varje steg faktiskt gör.
- Säg vilka antaganden du gör.
- Notera var förklaringen inte längre håller.
Du kan förklara för en person – eller ett föremål. Poängen är att formulera tanken tydligt.
Problemlösning och lärande
Fel kan ge kunskap
När du undersöker varför något inte fungerar lär du dig hur systemet är uppbyggt.
Slumpmässiga ändringar ger däremot svag kunskap om vad som faktiskt hände.
Praktisk övning
Felsök systematiskt
- Välj ett konkret fel i ett program, en webbplats eller ett spel.
- Beskriv förväntat och faktiskt resultat.
- Reproducera felet och dokumentera stegen.
- Formulera två möjliga orsaker.
- Ändra en sak och testa igen.
- Redovisa vad testet visade.
Exit ticket
Tre frågor
- Vad skiljer ett symptom från en orsak?
- Varför ska man ändra en sak i taget?
- Hur kontrollerar du att lösningen inte skapade ett nytt fel?
Sammanfattning
Kom ihåg
- Beskriv problemet tydligt innan du försöker lösa det.
- Skilj symptom från bakomliggande orsak.
- Reproducera, analysera och jämför möjliga lösningar.
- Implementera en kontrollerad förändring i taget.
- Testa både lösningen och resten av systemet.