torsdag, maj 22, 2008

Integrationstest, review af koncept


Kender du situationen hvor dit projekt kører perfekt, alle unit tests er grønne og testerne har ikke fundet nogen alvorlige fejl i testmiljøet de sidste to-tre dag.
Nu skal det bare sættes op i produktionsmiljøet, og det burde være smertefrit.
Doh, det hele kollapser 100%, en eller anden DBA har ændret schemaet og DU er ikke blevet informeret, #%!

Den situation har jeg prøvet og det var ikke sjovt!

Så nu skal det være slut. Ideen er, at Nightly build henter schemaen fra PROD, laver en ny db ud fra dette schema og smider vore predefinerede testdata ind.
Nu burde det være muligt at køre samtlige unit tests mod denne database.
Hvis et eller andet kikser i dette forløb vil det også kikse når du skal sætte det i produktion, men nu ved du at problemet eksisterer allerede dagen efter rettelsen er foretaget.

Inden jeg begynder at kaste for mange kræfter efter dette projekt vil jeg gerne høre, om I har en altertiv løsning eller ideer til forbedring af oplægget.

Sig frem!

2 kommentarer:

Jesper J sagde ...

Ideen er jo fin, så længe at vi ønsker at ligne produktionsskemaet, måske har de flere tabeller end vi skal bruge, flere stored procs osv.

Måske skal der ændres på PROD databasen i denne release, hvad gør du så?

I disse tilfælde synes jeg ikke din løsning den er helt optimal, ellers så skal du lave sådan en XML fil sjover, som f.eks marker hvad for nogle tabeller og storedprocs osv. du ønsker at tracke, og hvad for nogle ændringer der skal ske til skemaet når det kommer over til DEV (Hvis du f.eks. har tilføjet et felt til Bruger)

Ellers så fyr DBO'en, så er problemmet løst :D

Bedre softwareudvikling og alt andet sagde ...

Normalt vil vi vel ønske at spille op imod prod/preprod schemaet, i sidste ende er det vel der vores kode ender :-)

Du har fuldstændig ret i at schemaændringer i forbindelse med opgradering til næste version er meget tænkeligt, men så har vi vel også det opgraderingsscript som skal køres mod prod-miljøet?

De gange jeg har slået hovedet på uannoncerede ændringer i schema, var DBA blot passet sit arbejde. Det var projektlederen fra driftafd. som havde glemt at udviklingsafdelingen evt. kunne være interesseret i at høre om disse ændringer.