Enhets-testning
Postat: 5 augusti 2010, 11:17:55
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?
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?