Bjørk Boye Busch Faget Test - Temaer for forløbet forår 2012 |
Få installeret og afprøvet det nødvendige software samt at få gennemgået den basis som resten af faget bygger på.
Det er normal praksis, at en meget stor del af test tager sit udgangspunkt i sprog og udviklingsmiljø softwaren udvikles i, således at testen kan integreres – hertil kræves at der skal installeres og afprøves software på den studerendes egen PC, herunder vil der være behov for at udarbejde nogle små programmer i C#, hvis den studerende ikke i forvejen har kendskab til sproget eller Visual Studio.
De fleste efterfølgende temaer bygger direkte på dette tema.
Som sådan vil en del af
dette tema være repetition og det vil være begrænset hvor
meget nyt den studerende behersker. De studerende forventes allerede at kende
til centrale begreber om test, herunder programmering af simple unit test. Der
vil derfor delvis være tale om en opsamling samt afdække de
studerendes praktisk færdigheder.
Målet er at den studerende føler den tidligere erhvervede viden
nærværende.
Herudover skal den studerende være i stand til at anvende det installerede software i forhold til at lave simple C# programmer, med henblik på senere at kunne teste disse.
De studerende forventes allerede
at kende til centrale begreber om test, herunder gennemførsel af simple
unit test og tilrettelægge og gennemføre mindre manuelle test.
De studerende forventes endvidere at have praktisk programmeringserfaring med
C# eller lignende objektorienteret sprog (fx java) og Visual Studio eller
tilsvarende udviklingsmiljø (fx eclipse eller netbeans).
De studerende bør selv være i stand til at tilegne sig viden om C# og brugen af Visual Studio til at lave mindre programmer ud fra tutorials på internettet samt de screencast (videoer) der stilles tilgængelig.
Den studerende bør også være i stand til at installere og afprøve SW. Internettet bugner af fora og artikler som kan hjælpe.
Det er væsentligt at den studerende forstår at dette tema hovedsageligt består af emner som til en vis grad bør være velkendte.
At få defineret rammerne for faget, herunder få skabt en fælles forståelse for centrale begreber samt behovet for at arbejde med test på en systematisk og praksis nærværende måde.
Som sådan vil en del af
dette tema være repetition og det vil være begrænset hvor
meget nyt den studerende behersker. De studerende forventes allerede at kende
til centrale begreber om test, herunder gennemførsel af simple unit test
og tilrettelægge og gennemføre mindre manuelle test. Der vil derfor
delvis være tale om en opsamling samt afdække de studerendes
praktisk færdigheder med at foretage test.
Målet er at den studerende føler den tidligere erhvervede viden
nærværende.
Herudover få indledende erfaringer med mindre testforløb og introducerende problematikker med test.
Den studerende skal kunne se nødvendigheden i at systematisere gennemførslen af test, samt kunne definere og anvende begreber som fejl, verifikation og validering.
At kvalificere den studerende til at arbejde med planlægningen af test ud fra en strategi.
Specielt til tema 11.
At få viden om strategier
og modeller for planlægning, udvikling og afvikling af test, herunder
også hvad der kan / bør / skal testes.
At få viden om væsentlige teststrategier og testmodeller, herunder
opdelingen af testen i faser og sammenhængen til elementer i
systemudviklingen.
At få viden om hvilke elementer og egenskaber der testes.
Den studerende skal have praktiske erfaringer med at arbejde i systemudviklingsprojekter, der anvender en given systemudviklingsmetode samt kende til elementer inden for UML samt begrebet systemegenskaber.
At kvalificere den studerende til at kunne udvælge emner for test som den del af kvalitetssikringen af et udviklingsprojekt, samt foretage valg af hvordan det valgte skal testes.
Det er i praksis ikke realistisk at teste alt 100%, hverken af tidsmæssige eller økonomiske årsager. Der er der derfor altid behov for at kunne vælge hvad der skal testes. Denne udvælgelse skulle gerne kunne foretages på et kvalificeret grundlag.
Emnet har specielt tæt sammenhæng med 5.5
At give den studerende
færdigheder i teknikker og værktøjer, der kan bruges til at
vælge kvalitativt i det der skal testes (Der er tale teknikker inden for
white-/glass-box, blackbox og greybox til udvælgelsen)
At give den studerede viden om betydningen af testbarhed i forhold til
muligheden for at vælge kvalificeret.
At give den studerende kompetence til at vælge om test af det udvalgte
kan gennemføres (det kan fx være fortolkende review af diagram
eller afprøvning af kode med testdata maskinelt eller manuelt).
At give den studerende færdigheder i at designe en test med relevant
dækningsgrad i forhold til de elementer der testes.
Den studerende skal have praktisk erfaring med software udviklingsprojekter
At kvalificere den studerende til at kunne udvælge testdata og dækningsgrad for de dele der er udvalgt til test.
Selv når man har udvalgt noget specifik programkode som man vi teste er det i praksis sjældent muligt at lave en test der dækker alle mulige input, idet kombinationer af input hurtig kan blive ekstreme. Det er derfor nødvendigt at begrænse data til et realistisk niveau på en måde der sikre optimal test ud fra denne begrænsning. Når programmer indeholder selektion og repetition vil det endog sjældent være muligt at sikre at alle kombinationer inden for disse bliver prøvet af, så her er der behov for også at kunne dels fastsætte en ønsket dækningsgrad og dels designe og sikre at testen levet op til at denne er nået.
Emnet har specielt tæt sammenhæng med 5.4, der er desuden en tæt sammenhæng til 5.8 hvor automatisering er placeret.
At have færdigheder
whitebox og blackbox teknikker til at udvælge testdata under hensyntagen
til den dækningsgrad der ønskes, alternativt kunne gøre
rede for hvad givne testdata betyder for dækningsgraden.
At give den studerende færdigheder i at designe en test med relevant
dækningsgrad i forhold til de input-data der testes med.
At kvalificere den studerende til at kunne gennemføre forskellige former for rent manuelle test, herunder sikre dokumentation af disse.
At give den studerende
færdigheder i forskellige former for review-teknikker til at sikre
kvaliteten i en udviklingsproces og dennes produkter (dokumenter, diagrammer
m.m.).
At give den studerende viden om forskellige måder man kan beskrive en
test struktureret på, så det er muligt at dels gennemføre
den og dels dokumentere den og rapportere om fejl.
At kvalificere den studerende til at kunne planlægge, gennemføre, samt følge op på test med brug af IT værktøjer til understøttelse af hele processen.
At give den studerende viden om
hvordan planlægning, afvikling og opfølgningen kan
understøttes af værktøjer, hvor der stadig er manuelle
processer i testen.
At give den studerende færdigheder i brug af et konkret
værktøj der understøtter ovenstående.
At give den studerende færdigheder i brug at automatisering til at
afdække den faktiske dækningsgrad under afviklingen af en test
(code coverage).
At kvalificere den studerendes til at bruge værktøjer til at automatisere test af programfunktionalitet.
At give den studerende viden om
værktøjer der kan anvendes til automatisere test af
programfunktionalitet fra test den enkelte komponent til det samlede system.
At give den studerende færdigheder i brug af konkrete
værktøjer til test af funktionalitet.
At kvalificere den studerende til at kunne foretage automatisering af test af ikke funktionelle systemegensskaber.
At den studerende får viden
om værktøjer der kan anvendes til at foretage test af et systems
ikke funktionelle egenskaber som fx performance og loadtest.
At den studerende får færdigheder i brug af et konkret
værktøj der kan foretage disse test.
At kvalificere den studerende til at kunne medvirke til kvalitetssikring af komplekse systemer hvor der ikke er så veldefinerede og med klare detaljerede kravs specifikationer.
At give den studerende viden om testformer som ”udforskende test” og ”bug hunting”, der kan anvendes som alternativer hvor der ikke er klare mål og krav til et system.
At kvalificere den studerende i at være ansvarlig for den interne kvalitetskontrol i et projekt og derfor kunne se test i forhold til den samlede organisation og et projekt.
Specielt til tema 3
At give den studerende viden om hvordan test kan organiseres i forhold dels til en samlet organisation og i forhold til et projekt samt i relation til en valgt systemudviklingsmetode.
At give den studerende praktiske færdigheder med planlæge og gennemføre test.
At den studerende får
færdigheder og erfaringer med et eller flere af emnerne inden for test.
At den studerende får mulighed for at inddrage sine egner erfaringer og
sætte disse i relation til teorierne og de værktøjer der har
været en del af de andre temaer.
Den studerende skal vælge
et eller flere de værktøjer der har været brugt og gå
i dybden med disse ved at bruge dem i praksis til test i forhold til fx test
på deres job.
Der kan også være mulighed for at den studerende kan vælge et
nyt værktøj, som er relevant eller bruges på deres job og
så bruger dette i forhold til et konkret testprojekt.
Den studerende skal selv formulere et kort projektoplæg, som skal
godkendes af underviseren.
Almindelig simpel Unit-test vil være utilstrækkelig som projektarbejde, men det vil være muligt også at kunne definere test-projekt, hvor der arbejdes i dybden med manuelle teknikker og værktøjer, idet der dog foretrækkes en eller form for automatisering bringes ind.
Tidligere samt materiale der selv findes i forbindelse med projekt.
Underviseren vil primært være vejleder i dette forløb, hvor den studerende selv skal stå for planlægningen gennemførslen af projektarbejdet, og underviseren kan ikke forventes at kunne yde konkret/teknisk bistand i forhold til værktøjer, der ikke har været brugt direkte i undervisningen under de tidligere temaer.
Den studerende har arbejdet med de tidligere temaer i tilstrækkelig omfang, herunder arbejdet med de opgaver/øvelser der har været stillet undervejs.