IN3240 - Kapittel 2 Testing Throughout the Software Life Cycle

0.0(0)
Studied by 0 people
call kaiCall Kai
Locked
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/53

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 3:19 PM on 8/12/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

54 Terms

1
New cards

Hva er Software Development Life Cycle?

Software Development Life Cycle (SDLC) beskriver hvordan et program utvikles fra start til slutt.

Lengere svar:

Når et program skal lages, følger utviklingen en plan eller modell.

Denne modellen beskriver hvilke aktiviteter som skjer, for eksempel:

  • planlegging

  • krav

  • design

  • programmering

  • testing

  • vedlikehold

Testing er en viktig del av hele denne prosessen, ikke bare noe som skjer til slutt.

2
New cards

Hvorfor er testing en del av hele livssyklusen?

Fordi feil kan oppstå i alle faser av utviklingen. Ved å teste underveis kan vi oppdage feil tidligere og redusere kostnader.

3
New cards

Sequential Model

Sequential betyr at utviklingen skjer trinn for trinn i en fast rekkefølge.

lengere svar:

I en sekvensiell modell må én fase være ferdig før neste fase starter.

Typisk rekkefølge:

  • Need, wish, policy, law (behov, ønsker, regler eller lover)

  • User requirements (brukerkrav)

  • System requirements (systemkrav)

  • Global design (overordnet design)

  • Detailed design (detaljert design)

  • Implementation (implementasjon/programmering)

  • Testing

Enkelt forklart

Programmet blir utviklet steg for steg:

  • Først finner man ut hva brukeren trenger.

  • Deretter skriver man kravene.

  • Så lager man design.

  • Etter det programmerer man.

  • Til slutt tester man.

Dette er grunnen til at modellen kalles en Sequential Model – man går sekvensielt, altså ett steg om gangen.

<p>Sequential betyr at utviklingen skjer <strong>trinn for trinn i en fast rekkefølge</strong>.</p><p></p><p>lengere svar:</p><p>I en sekvensiell modell må én fase være ferdig før neste fase starter.</p><p>Typisk rekkefølge:</p><ul><li><p><strong>Need, wish, policy, law</strong> (behov, ønsker, regler eller lover)</p></li><li><p><strong>User requirements</strong> (brukerkrav)</p></li><li><p><strong>System requirements</strong> (systemkrav)</p></li><li><p><strong>Global design</strong> (overordnet design)</p></li><li><p><strong>Detailed design</strong> (detaljert design)</p></li><li><p><strong>Implementation</strong> (implementasjon/programmering)</p></li><li><p><strong>Testing</strong></p></li></ul><p></p><p>Enkelt forklart </p><p>Programmet blir utviklet steg for steg:</p><p> </p><ul><li><p>Først finner man ut <strong>hva brukeren trenger</strong>.</p></li><li><p>Deretter skriver man <strong>kravene</strong>.</p></li><li><p>Så lager man <strong>design</strong>.</p></li><li><p>Etter det <strong>programmerer</strong> man.</p></li><li><p>Til slutt <strong>tester</strong> man.</p></li></ul><p> </p><p>Dette er grunnen til at modellen kalles en <strong>Sequential Model</strong> – man går <strong>sekvensielt</strong>, altså ett steg om gangen.</p>
4
New cards

Sequential Model (fordeler og ulemper)

Fordeler

  • Enkel å planlegge.

  • God dokumentasjon.

  • Passer når kravene er stabile.

Ulemper

  • Feil kan oppdages sent.

  • Endringer er vanskelige og kostbare.

5
New cards

Når passer en sekvensiell modell best?

Når kravene er godt kjent og ikke forventes å endre seg.

6
New cards

Iterative-Incremental Model

En Iterative-Incremental Model betyr at programvaren ikke lages på én gang, men litt om gangen i flere korte utviklingssykluser.

Figuren viser

I stedet for å gjøre hele systemet ferdig én gang, deles utviklingen opp i flere faser (Phase 1, Phase 2, Phase 3).

I hver fase gjør man:

  1. Define

  2. Develop

  3. Build

  4. Test

  5. Implement

Etter hver fase leveres en ny versjon av systemet (Live Implementation).

I en Sequential Model lager man hele systemet først, og tester det til slutt.

I en Iterative-Incremental Model lager man litt av systemet om gangen.

Hver gang gjør man:

  • definere

  • utvikle

  • bygge

  • teste

  • implementere

Deretter starter man en ny runde med mer funksjonalitet.

<p>En <strong>Iterative-Incremental Model</strong> betyr at programvaren <strong>ikke lages på én gang</strong>, men <strong>litt om gangen</strong> i flere korte utviklingssykluser.</p><p></p><p>Figuren viser </p><p>I stedet for å gjøre hele systemet ferdig én gang, deles utviklingen opp i <strong>flere faser (Phase 1, Phase 2, Phase 3).</strong></p><p> </p><p>I <strong>hver fase</strong> gjør man:</p><p> </p><ol><li><p>Define</p></li><li><p>Develop</p></li><li><p>Build</p></li><li><p>Test</p></li><li><p>Implement</p></li></ol><p> </p><p>Etter hver fase leveres en ny versjon av systemet (<strong>Live Implementation</strong>).</p><p></p><p>I en <strong>Sequential Model</strong> lager man hele systemet først, og tester det til slutt.</p><p>I en <strong>Iterative-Incremental Model</strong> lager man litt av systemet om gangen.</p><p>Hver gang gjør man:</p><ul><li><p>definere</p></li><li><p>utvikle</p></li><li><p>bygge</p></li><li><p>teste</p></li><li><p>implementere</p></li></ul><p>Deretter starter man en ny runde med mer funksjonalitet.</p>
7
New cards

Hva er forskjellen mellom Sequential Model og Iterative-Incremental Model?

  • Sequential Model: Hele systemet utvikles steg for steg, og testing skjer mot slutten.

  • Iterative-Incremental Model: Systemet utvikles i flere korte sykluser. Hver syklus inneholder definering, utvikling, bygging, testing og implementering.

8
New cards

Hva betyr iterative?

Vi gjør den samme prosessen flere ganger.

Altså:

Definere → Utvikle → Bygge → Teste → Implementere

Så gjør vi den samme prosessen igjen.

Og igjen.

9
New cards

Hva betyr incremental?

Vi legger til litt mer funksjonalitet hver gang.

Altså:

Versjon 1

👉 Kan bare logge inn.

Versjon 2

👉 Kan logge inn + sende penger.

Versjon 3

👉 Kan logge inn + sende penger + betale regninger.

Systemet vokser litt etter litt.

10
New cards

Hva er en Iterative-Incremental Model?

En Iterative-Incremental Model er en utviklingsmodell der programvaren utvikles i flere korte utviklingssykluser. I hver syklus definerer, utvikler, bygger, tester og implementerer man en del av systemet. Hver nye versjon legger til mer funksjonalitet, slik at systemet blir større og bedre over tid.

11
New cards

Hva er V- model?

V-Model viser at hver fase i utviklingen har en test som hører til.

Det betyr at når vi lager systemet, planlegger vi også hvordan det skal testes.

<p></p><p></p><p><strong>V-Model</strong> viser at <strong>hver fase i utviklingen har en test som hører til.</strong></p><p>Det betyr at når vi lager systemet, planlegger vi også hvordan det skal testes.</p>
12
New cards
<p>hvorfor heter den V - model?</p>

hvorfor heter den V - model?

Den ser ut som en V.

Venstre side = utvikling

Bunnen = implementasjon (koding)

Høyre side = testing

13
New cards

Hvordan fungerer den?

Venstre side (utvikling)

Her lager vi systemet.

  • User requirements

  • System requirements

  • Global design

  • Detailed design

  • Implementation

Når programmeringen er ferdig...

Høyre side (testing)

Nå testes det som ble laget på venstre side.

14
New cards

Hvilken test hører til hvilken fase?

Utviklingsfase

Testfase

User requirements

Acceptance testing

System requirements

System testing

Global design

Integration testing

Detailed design

Component testing

15
New cards

Hva er hovedideen bak V-Model?

V-Model viser at hver utviklingsfase har en tilhørende testfase. Testingen planlegges tidlig og knyttes til krav og design.

16
New cards

Hva betyr "Preparation"?

På figuren står det:

  • Preparation Acceptance test

  • Preparation System test

  • Preparation Integration test

Det betyr at testene planlegges mens utviklingen pågår, ikke etter at systemet er ferdig.

For eksempel:

  • Når vi skriver User requirements, begynner vi samtidig å planlegge Acceptance test.

  • Når vi lager System requirements, planlegger vi System test.

17
New cards

Hvorfor er V-Model bra?

  • Testing blir planlagt tidlig.

  • Det blir lettere å kontrollere at alle krav blir testet.

  • Feil kan oppdages tidligere.

18
New cards

Hva er V-Model?

V model er en utvinklingsmodell der hver utviklingsfase har en tilhørende testfase. Testene planlegges under utviklingen og utføres etter implementasjonen.

19
New cards

Hva viser venstre side av V-modellen?

Venstre side viser utviklingsfasene

20
New cards

Hva viser høyre side?

Høyre side viser testfasene

21
New cards

Hvorfor planlegges testene tidlig?

for å sikre at alle krav blir testet og for å oppdage feil tidligere.

22
New cards
<p>Hva er Test Levels?</p>

Hva er Test Levels?

Test Levels beskriver på hvilket nivå programvaren testes.

Hvert testnivå har sitt eget mål og tester forskjellige deler av systemet.

23
New cards

1. Every development activity has a corresponding testing activity.

Enkel forklaring:

Hver utviklingsaktivitet har en testaktivitet som hører til.

Eksempel:

  • Skriver krav → planlegger Acceptance Test.

  • Lager design → planlegger Integration Test.

24
New cards

2. Each test level has test objectives specific to that level.

Enkel forklaring:

Hvert testnivå har sitt eget mål.

For eksempel:

  • Unit Testing → teste én komponent.

  • System Testing → teste hele systemet.

25
New cards

3. The analysis & design of tests for a given test level should begin during the corresponding development activity.

Enkel forklaring:

Testene skal planlegges under utviklingen, ikke etterpå.

26
New cards

4. Testers should be involved in reviewing documents as soon as drafts are available.

Enkel forklaring:

Testere bør være med tidlig og lese gjennom krav og dokumenter før systemet er ferdig.

27
New cards

1. Unit Testing (test levels)

Hva testes?

Én liten del av programmet.

Eksempel:

  • én klasse

  • én metode

  • én funksjon

Fra lysbildet:

any module, program, object seperstely testable.

28
New cards

2. Integration Testing (test levels)

Hva testes?

Hvordan flere komponenter fungerer sammen.

Fra lysbildet:

interface between components: interaction with other systems (OS, Hw, …)

Enkelt sagt:

Vi tester at delene kommuniserer riktig med hverandre.

29
New cards

3. System Testing (test levels)

Hva testes?

Hele systemet.

Fra lysbildet:

the behavior of the whole product (system) as defines by the scope of the project.

enkelt sagt:

vi tester hele programmet slik brukeren skal bruke det

30
New cards

4. Acceptance Testing (test levels)

Hva testes?

Om kunden godkjenner systemet.

Fra lysbildet:

is the responsibility of the customer.

Målet er:

Å få tillit til at systemet fungerer slik kunden forventer.

31
New cards

Hva er forskjellen mellom Unit Testing og Integration Testing?

  • Unit Testing tester én komponent alene.

  • Integration Testing tester hvordan flere komponenter fungerer sammen.

32
New cards

Hvem har ansvar for Acceptance Testing?

Kunden (customer) har vanligvis ansvaret for Acceptance Testing.

33
New cards

Hva testes i System Testing?

Hele systemet testes for å kontrollere at det fungerer som forventet.

34
New cards

Hva er Test Types?

Enkel forklaring

Test Types beskriver hva vi tester i systemet.

Mens Test Levels handler om hvor vi tester (unit, integration, system, acceptance), handler Test Types om hvilke egenskaper vi tester.

35
New cards

1. Functional Testing

Hva testes?

Om systemet gjør det det skal gjøre.

Man tester funksjonene i systemet.

Eksempel

En nettbank skal:

  • logge inn

  • overføre penger

  • vise saldo

Hvis dette fungerer, består funksjonell testing.

36
New cards

2. Non-functional Testing

Hva testes?

Hvordan systemet fungerer.

Man tester ikke funksjonene, men kvaliteten.

Eksempler:

  • Ytelse (Performance)

  • Sikkerhet (Security)

  • Brukervennlighet (Usability)

  • Pålitelighet (Reliability)

Eksempel

En nettside skal laste på under 2 sekunder.

Det er ikke-funksjonell testing.

37
New cards

3. Confirmation Testing (Re-testing)

Hva testes?

En feil er rettet.

Man tester den samme feilen på nytt for å kontrollere at den faktisk er fikset.

Eksempel

En knapp krasjet programmet.

Utvikleren retter feilen.

Testeren prøver den samme knappen igjen.

38
New cards

4. Regression Testing

Hva testes?

Man sjekker at nye endringer ikke har ødelagt noe som fungerte før.

Eksempel

Utvikleren retter innloggingen.

Etterpå tester man også:

  • betaling

  • handlekurv

  • profil

for å sikre at de fortsatt fungerer.

39
New cards

Forskjellen mellom Confirmation og Regression

Dette er et veldig vanlig eksamensspørsmål.

Confirmation Testing

👉 Tester den feilen som ble rettet.

Regression Testing

👉 Tester andre deler av systemet for å se at de fortsatt virker.

40
New cards

Hva er Functional Testing?

functional testing tester om systemet utfører funksjonene det skal

41
New cards

Hva er Non-functional Testing?

Non - functional testing tester kvalitetsegenskaper som ytelse, sikkerhet og brukervennlighet

42
New cards

Hva er forskjellen mellom Confirmation Testing og Regression Testing?

  • Confirmation Testing kontrollerer at en rettet feil faktisk er rettet.

  • Regression Testing kontrollerer at rettingen ikke har skapt nye feil i andre deler av systemet.

43
New cards

Hva er forskjellen mellom Functional og Non-functional Testing?

  • Functional Testing tester hva systemet gjør.

  • Non-functional Testing tester hvordan systemet fungerer, for eksempel ytelse og sikkerhet.

44
New cards

Testing Related to Change

Når et system blir endret, må vi teste på nytt.

Det finnes to viktige testtyper:

  1. Confirmation Testing

  2. Regression Testing

45
New cards

Hvorfor må vi teste etter en endring?

Tenk deg at en utvikler retter én feil.

Selv om den feilen er borte, kan endringen ha ødelagt noe annet.

Derfor tester vi alltid etter endringer.

46
New cards

Confirmation Testing

Hva er det?

Vi tester den feilen som ble rettet.

Eksempel

Feil:

  • Programmet krasjer når brukeren logger inn.

Utvikleren retter feilen.

Testeren prøver å logge inn igjen.

Hvis innlogging fungerer, er Confirmation Testing vellykket.

47
New cards

Regression Testing

Hva er det?

Vi tester andre deler av systemet etter en endring.

Hvorfor?

For å kontrollere at endringen ikke har laget nye feil.

Eksempel

Utvikleren retter innlogging.

Etterpå tester vi også:

  • betaling

  • handlekurv

  • profil

for å se at de fortsatt virker.

48
New cards

Hva er forskjellen mellom Confirmation Testing og Regression Testing?

Kort svar:

  • Confirmation Testing tester den rettede feilen.

  • Regression Testing tester andre deler av systemet for å sikre at de fortsatt fungerer.

49
New cards

Hva er Maintenance Testing?

Enkel forklaring

Maintenance Testing er testing som utføres etter at programmet er tatt i bruk.

Programvaren er altså allerede levert til brukerne, men den blir fortsatt endret og forbedret.

Maintenance Testing er testing som utføres etter at programvaren er levert. Den brukes når systemet endres, for eksempel ved feilrettinger, nye funksjoner eller tilpasninger.

50
New cards

Hvorfor gjør vi Maintenance Testing?

Et system blir ikke ferdig for alltid.

Etter at det er tatt i bruk kan man:

  • rette feil

  • legge til nye funksjoner

  • forbedre eksisterende funksjoner

  • tilpasse systemet til nye krav eller nytt utstyr

Hver gang systemet endres, må det testes igjen.

Eksempel

En bank har en mobilapp.

Etter ett år ønsker banken å legge til BankID med ansiktsgjenkjenning.

Utviklerne lager funksjonen.

Deretter må appen testes før den slippes til kundene.

Dette er Maintenance Testing.

51
New cards

Hva kan føre til Maintenance Testing?

Typiske årsaker er:

  • Feilretting (bug fixes)

  • Nye funksjoner

  • Endrede krav

  • Nye operativsystemer eller maskinvare

  • Endringer i lover eller regler

52
New cards

Hva tester vi?

Når systemet endres, utfører vi ofte:

  • Confirmation Testing

    • Sjekker at den rettede feilen faktisk er rettet.

  • Regression Testing

    • Sjekker at endringen ikke har ødelagt andre deler av systemet.

53
New cards

Når utføres Maintenance Testing?

Etter at programvaren er tatt i bruk og det blir gjort endringer.

54
New cards

Hvorfor er Maintenance Testing viktig?

Fordi endringer kan skape nye feil. Derfor må vi kontrollere at den nye funksjonaliteten virker, og at resten av systemet fortsatt fungerer.