Några tankar om testbarhet

En faktor som påverkar tiden för test fundamentalt är ett systems testbarhet.

Bygger man in i systemet (helst från början) egenskaper och funktioner som underlättar testarbetetet så har man stor chans att hålla tidsåtgången för test på en hyfsad nivå över tiden.

Här är en lista på saker som i mitt tycke ökar testbarheten för komplexa och stora system åtminstone:

1. Testmiljöer
Tillgång till en kontrollerad, helst produktionslik testmiljö är vanligtvis ett av fundamenten i ett testprojekt. Men räcker det med en? Inte sällan vill man ha flera testmiljöer för att det inte ska uppstå flaskhalsar och så att olika tester inte stör varandra. Att ha extra testmiljöer med äldre versioner är ofta inte helt fel heller…

1.1 Det ska vara lätt att skapa nya testmiljöer godtyckligt, publika som lokala.

2. Testdata
Utan bra testdata, inga bra tester…

2.1 Det ska finnas möjlighet att använda/skapa produktionslikt testdata i godtycklig mängd med en minimal insats.
2.2 Testdata ska kunna flyttas mellan (test)miljöer
2.3 Testdata ska kunnat sparas i ett visst läge (snapshot)

3. Systemtid
I komplexa system händer det ofta massa spännade saker över tiden. Har vi tid att vänta i realtid på att någon viktig händelse ska triggas? Nix.

3.1 Datum och klockslag i en testmiljö ska kunna ändras godtyckligt (åtminstone framåt i tiden).

4. Systemfel
Ohanterade systemfel kan ju förekomma och bör ofta åtgärdas ASAP. Men vilken kodrad? Vilket data?

4.1 Systemfel ska loggas automatiskt innehållande relevant information som stack-trace och parametervärden

5. Loggfunktionalitet
Loggar innehåller ofta viktiga pusselbitar i vårt dagliga testarbete.

5.1 Omfattande loggfunktionalitet ska finnas och vara konfigurerbar utfrån behov

6. Testverktyg
Måste man använda dyra externa testverktyg? Nix, bygg in skräddarsydd funktionalitet för tidskrävande obligatoriska (test)aktiviteter i systemet istället.

6.1 Via lämpligt gränssnitt ska inbyggda testverktyg vara tillgängliga som kan användas vid testarbete (konfigurerbart)

7. Automatisering
Automatisera regressionstester eller ej? Om ja så…

7.1 Systemets alla gränssnitt ska vara förutsägbara och varje enskilt objekt ska ha ett sammanghangsunikt id-begrepp om möjligt

8. Versionshantering
Vilken version testar vi mot?

8.1 Systemets versionsidentitet ska finnas tillgängligt via gränssnitt.

Hur är det systemens testbarhet där ute?

Tags:

About Stefan Thelenius

Stefan Thelenius Testspecialist hos Itello Stefan är inriktad på mera tekniska aktiviteter kring test så som testverktygsutveckling, automatisering, testmiljöhantering och prestanda m.m men utövar även utforskande testning dagligdags i ett Scrumteam. Har en egen testblogg. Började arbeta med QA/QC 1994 inom medicinteknik och fokuserar sedan 2000 på mjukvarutest inom finansbranschen.