När man skriver kod för inbyggda system så brukar jag enhetstesta många av funktionerna. Tyvärr brukar jag komma på mig själv med att jag glömmer testa av vissa grejjer och har därför börjat skriva ner en lista som hjälpmedel för att kunna skriva täckande tester.
Hittade en ganska bra lista på:
http://www.codeproject.com/KB/architect ... sting.aspx
Min egen början till lista ser ut enligt följande:
Allmänt:
- testa det förväntade användarfallet så att det fungerar.
- testa att
variabler:
- testa min max värdet på variabeln U8: 0 och 255, U16 0 och 65535
- testa negativa värden.
- Kontroller gränserna, max, max+1, min samt min-1
t.ex om ett värde förväntas ha ett invärde av 10-20 så kan både 9 och 10 testas, även 20 och 21.
Matte:
- kontrollera overflow, t.ex U8+U8 = får platts i en U8 eller att U16*U16 + U16 = får platts i en U32 med förväntade gränser. Dokumentera gränserna tydligt i koden.
- divition med 0
Strängar:
- Null värde
- börjar med '\0' tecken
- inget '\0' tecken eller en max-längd på t.ex 255 tecken.
Pekare:
- Null värde
- Vid kopiering eller annan hantering av strängar borde ett "längd" fält finnas.
Min fråga är:
Vet ni någon bra checklista som man kan hitta på nätet, eller kommer ni spontant på fler saker man skulle kunna testa?
Enhets-testning
Re: Enhets-testning
Det brukar vara bra att testa även max-3 max-2 max-1 max max+1 max+2 max+3 då det ibland pga undantagstillstånd (if-else) osv.. kan fallera även där.
Samt mata indata och logga både in + ut för att se om det går snett. Eller t.ex om kretsen blir överhettad mm.
Kraftiga beräkningar som kanske ger strömrusning och resulterar i "hiccup".
Samt mata indata och logga både in + ut för att se om det går snett. Eller t.ex om kretsen blir överhettad mm.
Kraftiga beräkningar som kanske ger strömrusning och resulterar i "hiccup".