Agil Utveckling Flashcards

1
Q

Vad är agil utveckling?

A

Agil utveckling är en metodik för att hantera och planera utveckling av projekt, främst inom mjukvaruutveckling. Målet är att leverera fungerande mjukvara så snabbt som möjligt.

Den bygger på en iterativ och inkrementell tillvägagångssätt

Agil utveckling fokuserar på samarbete mellan utvecklare, kunden och andra intressenter, flexibilitet och ändringshantering. Vanliga ramverk för agil utveckling inkluderar Scrum och Kanban.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Mashlows behovstrappa.

A

Man kan använda sig av marshlows trappa för att göra produkten så användarvänlig som möjligt.

Självförverkligande - Blir allt du kan vara
Självkänsla - Makt, uppskattning
Gemenskap - Kärlek, vänskap
Trygghet - Säkerhet, stabilitet
Fysiologi - Mat, vatten, luft,sex

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Förklara the lean startup

A

Build - Bygg en mvp som innehåller dem mest grundläggande funtionerna. Den ska vara enkel och lätt att testa.

Measure - Testa produkten på kunder och samla in feedback.

Learn - Använd feedbacken från kunderna för att justera och förbättre produkten.

The Lean Startup är en metodik för att skapa och utveckla företag eller produkter. Den bygger på principen om att snabbt skapa och leverera minimalt fungerande produkter (MVP) för att få feedback från kunderna och därefter iterativt förbättra produkten baserat på denna feedback.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

CONTINUOUS INTEGRATION - CI ?

A

CI är att integrera och testa kodändringar i en gemensam kodbas så fort som möjligt efter att det har gjorts ändringar. “fail early” är bra så man ser vilka problem som man måste åtgärda så tidigt som möjligt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

CONTINUOUS DELIVERY - CD

A

Handlar om att effektivisera och säkerställa en snabb och smidig leverans av mjukvara genom automatiserade processer för testning och deployment.

Genom att använda CD får utvecklare snabb feedback på kodändringar, vilket minskar risken för fel och resulterar i en högre kvalitet på den färdiga programvaran som levereras till kunderna.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Vad är flow?

A

I en agil process strävar man efter att minimera avbrotten i arbetet och säkerställa en jämn ström av arbete, från idé till leverans.

  • Teamet ska ha hög produktivitet och vara effektiva.
  • Lättare att hålla reda på vart man är i processen.
  • Anväder sig ofta av visualiseringsvertygen kanban/scrum
  • Detta använder man för att undvika utbrändhet och överbelastning.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

vad är DevOps?

A

DevOps fokuserar på att automatisera och integrera processerna mellan utvecklare och driftspersonal för att snabba upp leveranserna och förbättra kvaliteten.

DevOps handlar till stor dela att riva muren mellan dem olika teamen.

DevOps använder ofta automatiseringstekniker som Continuous Integration (CI) och Continuous Deployment (CD) för att effektivisera processerna

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Vad är TDD?

A

Tanken bakom TDD är att utvecklare ska först tänka igenom vad som behöver implementeras och sedan skriva tester som bekräftar att det fungerar som det ska.
Red-Green-Refactor

Fördelar med TDD:

Bättre kodkvalitet: Genom att tänka igenom vad som behöver testas innan koden skrivs, säkerställer utvecklare att koden är mer robust och mindre sårbar för buggar.

Enklare underhåll: Genom att ha en omfattande testsuite, är det enklare för utvecklare att ändra eller förändra koden utan oro för att bryta befintlig funktionalitet.

Snabbare leveranser: Genom att använda TDD, är det lättare för utvecklare att identifiera buggar tidigt i processen, vilket innebär att de kan fixas snabbare och utan att drabba produktionsmiljön.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Impediments

A

Inom agil utveckling syftar begreppet “impediments” till hinder eller problem som förhindrar eller begränsar teamets förmåga att utveckla och leverera en produkt eller en tjänst på ett effektivt och kvalitativt sätt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

User stories?

A

är en metod som används för att beskriva krav och önskemål från användare eller kunder på ett enkelt och lättförståeligt sätt.

User stories är viktiga inom agil utveckling eftersom de ger en enkel och lättförståelig översikt över vad som behöver göras och varför.

Exempel: “Som en kund vill jag kunna söka efter produkter på webbplatsen för att snabbt hitta det jag letar efter.”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Definition of done

A

är att säkerställa att en produkt eller en funktion är klar för leverans och att den uppfyller de krav och kvalitetsstandarder som är nödvändiga för att den ska kunna användas eller tas i drift.

definierar vanligtvis ett antal kriterier som måste uppfyllas för att en uppgift eller en user story ska anses vara klar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Impact maps

A

why? who? how? What?
Impact mapping är ett sätt att gemensamt arbeta fram vilka mål vi vill uppfylla och hur vägen från målet till resultatet ser ut och vad som är viktigt.

Mål: Det övergripande målet för produkten eller projektet.

Stakeholders: Personer eller grupper som kommer att påverkas av målet.

Premisser: förutsättningar som ligger till grund för målet.

Möjliga inverkan: Hur målet kommer att påverka stakeholdrarna och verksamheten som helhet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

tvärfunktionellt

A

Inom agil utveckling så betyder “tvärfunktionellt” att en arbetsgrupp eller ett team är sammansatt av personer med olika kompetenser och färdigheter så att man kan komplettera varandra.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Självorganisering

A

handlar om att ge teamet större befogenheter och autonomi för att fatta beslut och planera sitt eget arbete. Genom självorganisering uppmuntras teammedlemmarna att ta mer ansvar för sitt arbete och att arbeta tillsammans för att uppnå gemensamma mål.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Inkrementell utveckling

A

innebär att man utvecklar produkten stegvis genom att lägga till nya funktioner och förbättringar efterhand. Detta görs genom att man delar upp utvecklingsprocessen i mindre delar, så kallade iterationer eller sprintar,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Disruptiv utveckling

A

Istället för att lägga till nya funktioner gradvis, syftar en disruptiv utveckling på att skapa en helt ny produkt eller tjänst som ersätter den befintliga.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Manifest för agil utveckling?

A

-Individer och interaktioner > framför processer och verktyg

-Fungerande programvara > framför omfattande dokumentation

-Kundsamarbete framför > kontraktsförhandling

-Anpassning till förändring > framför att följa en plan

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Nämn några skillnader mellan agil/vattenfall?

A

Planering: Vattenfallsmodellen följer en linjär planeringsprocess, där varje steg i utvecklingscykeln planeras och genomförs i en specifik ordning, och det är sällan möjligt att återvända till en tidigare fas. Man har även mycket mer tydliga roller/hiearki.

Agile däremot använder iterativ planering och kan snabbt anpassas och justeras baserat på feedback och förändrade krav

I allmänhet kan man säga att vattenfallsmodellen är mer lämplig för projekt med klara och statiska krav, medan agila metoder är bättre lämpade för projekt med komplexa och föränderliga krav eller hög osäkerhet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Walking skeleton?

A

Används för att beskriva en grundläggande version av en produkt eller system som kan demonstrera dess grundläggande funktionalitet.

En Walking Skeleton kan beskrivas som ett MVP (Minimum Viable Product) eller en prototyp av en produkt.

Här kan man tidigt se vilka problem som finns och vad som behöver byggas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Ge mig en vanlig estimeringsteknik

A

Planning poker - en teknik där teamet samlas för att uppskatta tid eller resurser genom att använda kort med olika nummer på dem.

Varje medlem i teamet väljer ett kort som motsvarar sin uppskattning, och sedan diskuterar teamet resultaten tills de når en överenskommelse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

vad är skillnaden på kanban och scrum ?

A

Tidsbegränsing. Inom scrum så använder man sig av sprintar(två veckor) för att slutföra en uppgift. Kanban har ingen tidsbegränsing för att slutföra en uppgift eller process.

Arbetsuppgifter: Kanban hanterar en ständig ström av uppgifter och prioriterar kontinuerligt arbetsuppgifterna baserat på deras värde. Scrum hanterar en fast uppsättning av uppgifter som ska slutföras under en sprint

Roller: Kanban har inga specifika roller eller ansvarsområden utan fokuserar på att fördela arbetsuppgifterna utifrån den enskilda personens expertis och kapacitet. Scrum har specifika roller som scrum master, product owner och utvecklingsteam som har definierade ansvarsområden och uppgifter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

vad är kanban?

A

Kanban är baserat på principen att arbetsuppgifterna visas i en visuell tavla där de flyter från “att göra” till “pågående” och till slut “klar”. Tavlan är oftast uppdelad i kolumner som representerar olika stadier i arbetsflödet.

Kanban ger också möjlighet till att begränsa antalet arbetsuppgifter som är i arbete samtidigt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

vad är scrum?

A

Scrum är en ramverk för agil utveckling som används för att hantera och utveckla produkter och projekt

Scrum består av tre huvudkomponenter.

Product backlog - En lista med krav och funktioner

Sprint backlog - Vilka uppgifter som ska genomföras under en sprint.

Scrum möten - korta och regelbundna möten för planering.

Scrum bygger på tre grundläggande roller.

-Produktägaren : ansvarar för att definiera och prioritera produktkraven,

-Scrum Master : ansvarar för att se till att teamet följer Scrum-processen.

-Utvecklingsteamet: ansvarar för att genomföra arbetet och leverera fungerande produktinkrement.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Förklara skillnaden mellan outcome och output

A

Output handlar om vad som faktiskt har skapats eller levererats.

Outcome är mer vad som har uppnåtts genom att använda output.

Detta skapar verklig nytta och löser riktiga problem för användarna.

25
Q

Vad är design thinking ? EDIPT

A

Design thinking är en problemlösningsmetod som används för att skapa lösningar genom att fokusera på användarens behov och önskemål.

Består av 5 steg.

  • Empati: Förstå användarnas problem.
  • Definition: Definera problemet
  • Idegenering - Generera kreativa lösningar.
  • Prototyping - Skapa prototyper av de bästa lösningarna
  • Testning - Testa prototyperna.
26
Q

Nämn två tekninker för att skapa user stories.

A
27
Q

Förklara SCRUMS värderingar MÖREF

A

SCRUMs värderingar:

Mod - att våga ta risker och testa nya idéer.

Fokus - att hålla fokus på de uppsatta målen och att undvika distraktioner.

Öppenhet - att vara ärlig och öppen med varandra om vad som fungerar och vad som inte fungerar.

Respekt - att visa respekt för varandra och för varandras arbete.

Engagemang - att vara engagerad och dedikerad till projektets framgång.

28
Q

Vad har Scrum för roller?

A

Product Owner - ansvarar för att ha en vision för produkten, prioriterar vilka funktioner som ska utvecklas och är ansvarig för att ha en backlog av user stories.

Scrum Master - ansvarar för att coacha teamet i att följa SCRUMs process, att ta bort hinder och att säkerställa att alla är synkroniserade.

Utvecklingsteam - ansvarar för att utveckla, testa och leverera funktionalitet som svarar mot produktägarens behov.

29
Q

vad har scrum för artefakter?

A

Product Backlog - en lista med alla funktioner som behöver utvecklas för produkten.

Sprint Backlog - en lista med funktioner som ska utvecklas under en sprint.

Increment - summan av alla Product Backlog mål som man har uppnått under sprinten

30
Q

Vad har scrum för event?

A

Sprint - en kort tidsperiod på 1-4 veckor där teamet fokuserar på att leverera ett inkrement av produktens funktionalitet.

Sprint planning - en planeringsmöte i början av varje sprint där teamet bestämmer vad som ska göras och hur det ska göras.

Daily Scrum - ett kort möte varje dag för att synkronisera arbetet och identifiera hinder som behöver åtgärdas.

Sprint review - en demonstration av det inkrement som har levererats under sprinten och en möjlighet för teamet att få feedback från intressenter.

Sprint retrospective - ett möte i slutet av varje sprint där teamet reflekterar över vad som gick bra och vad som kan förbättras i processen.

31
Q

Vad är mocking inom tester?

A

Används för att simulera beteendet hos en verklig komponent eller en beroende komponent.

Du skapar falska objekt eller funktioner som du testar koden med på ett isolerat sätt.

Säg att du har en databas eller en api. Här kan du skapa falsk data som testar detta utan att anropa eller manipulera de riktiga resurserna.

32
Q

Assertions?

A

Assertioner är påståenden som du gör i dina tester, och de är avgörande för att avgöra om en test är lyckad eller misslyckad

33
Q

Nämn två assertions

A

Assert.Are.Equal, Assert.IsTrue

34
Q

Code coverage?

A

Code coverage är ett mått på hur mycket av din kodbas som täcks av dina enhetstester. Det är viktigt att ha en hög code coverage för att säkerställa att din kod fungerar som den ska och för att undvika buggar.

35
Q

Blackbox?

A

man testar mjukvaran utan att ha tillgång till dess interna struktur och implementation.

Det betyder att testaren endast tittar på mjukvarans beteende och funktioner och testar hur mjukvaran reagerar på olika input och utfall.

36
Q

Whitebox?

A

White-box testing, å andra sidan, är en testmetod där testaren har full insyn i mjukvarans interna struktur och implementation. Testaren kan granska källkoden och kan därefter se att koden gör som den ska efter att man testat den.

37
Q

vad är en stub ? Ge exempel

A

Stubs används ofta för att simulera enkla eller förutsägbara svar från en beroende komponent, så att testaren kan isolera den kod som testas och verifiera dess funktionalitet.

Vi vill testa att funktionen fungerar korrekt utan att faktiskt behöva anropa API:et. För detta använder vi en stubb för att simulera API-anropet och ge oss falsk data att testa med:

38
Q

vad är en test double?

A

Beskriver olika typer av falska objekt eller implementationer som används i testning. Test doubles inkluderar olika typer av objekt, såsom stubbar, mockar, fakers, spies

39
Q

Förklara triple A

A

Arrange - I arrangestegen förbereder du testmiljön genom att instansiera objekt, konfigurera inställningar och ställa in testdata. Detta steg handlar om att skapa den nödvändiga miljön för att köra testet.

Act - I aktionssteget utför du själva åtgärden som du vill testa. Detta kan vara att anropa en metod eller en funktion, eller utföra någon annan typ av åtgärd som du vill testa.

Assert - I assertsteget verifierar du resultatet av åtgärden som du utfört i steg två. Detta innebär att du kontrollerar att resultatet är korrekt enligt dina förväntningar. Om resultatet inte stämmer överens med dina förväntningar, så har testet misslyckats och det finns ett problem som behöver åtgärdas.

40
Q

Nämn dom tre typerna av testning.

A

Detta är en typ av testning som fokuserar på att testa hela systemet som en enhet. Systemtestning utförs vanligtvis efter integrationstestning och syftar till att säkerställa att systemet som helhet fungerar korrekt enligt sin specifikation och uppfyller användarens krav och förväntningar

41
Q

Vad är ett end-to-end test?

A

End-to-end testning, å andra sidan, är en typ av testning som fokuserar på att testa hela användarflödet genom systemet från start till slut. Detta innebär att man simulerar användarinteraktioner och testar hur olika delar av systemet samverkar för att uppnå ett visst mål

Playwright är ett verktyg för detta.

42
Q

Vad är ett integrationstest?

A

Denna typ av testning fokuserar på att testa hur de olika enheterna av systemet fungerar tillsammans

43
Q

Vad är ett enhetstest?

A

Enhetstestning (unit testing): Detta är en typ av testning som fokuserar på att testa enskilda enheter av koden, vanligtvis individuella funktioner eller metoder, i isolering från andra delar av systemet. Syftet med enhetstestning är att säkerställa att varje enhet fungerar korrekt, enligt sin specifikation.

44
Q

Vad är LSTDD?

A

Testerna skriver man först för att sedan skriva koden.

så fokuserar man på att skriva tester som är mer integrerade med resten av systemet. På så sätt testas inte bara den enskilda enheten, utan även dess samspel med andra enheter och externa system.

45
Q

Vad är C-TDD?

A

Här skriver man testerna efter att

Den klassiska skolan är mer fokuserad på att testa enheter som isolerade enheter, och att minimera beroendet mellan enheterna. På så sätt kan man lättare upptäcka fel och åtgärda dem på en säker plats.

46
Q

Vad är TDD-Metoden Red-Green-Refactor?

A

Red: Utvecklaren skriver ett testfall som beskriver en önskad funktion för koden och som just nu inte passerar för att koden finns inte än.

Green: Utvecklaren skriver koden för att uppfylla testfallet och säkerställa att koden fungerar som förväntat.

Refactor: Utvecklaren rensar upp koden genom att förbättra dess struktur och organisering för att göra koden mer lättförståelig och underhållbar.

Detta bidrar till att koden är mer korrekt från början och att kvalitet blir högre. Man kan även upptäcka fel i ett tigdigt skede.

47
Q

Vad är “FIRST” inom Unit Testning?

A

Fast (Fast): Enhetstester bör vara snabba att köra, eftersom de kommer att köras ofta under utvecklingsprocessen. Ju snabbare testerna körs, desto snabbare kan utvecklare upptäcka och åtgärda problem.

Isolerad (Isolated): Enhetstester bör isoleras från andra enheter av koden och från externa beroenden, så att de testar endast en enhet av koden och inget annat. Detta ger mer tillförlitliga resultat och gör det lättare att hitta problem.

Repeterbar (Repeatable): Enhetstester bör vara repeterbara, vilket innebär att de ger samma resultat varje gång de körs. Detta är viktigt för att upptäcka problem och säkerställa att koden fungerar som det ska.

Självständig (Self-validating): Enhetstester bör självklart visa om de lyckats eller misslyckats. Testresultaten bör vara tydliga och lättförståeliga för utvecklare, så att de kan felsöka problem snabbt och effektivt.

48
Q

Nämn några stilar inom unit testning

A

Namngivning: Namnet på testet innehåller information på den specifika enheten som ska testas. ex “List_should_be_empty_after_removing”

AAA: Arrange - miljön för testet sätts upp. Act - själva testet utförs. Assert - verifierar så att resultatet är rätt.

Mocking och stubbing - Handlar om att isolera enheter i koden från varandra. Detta gör det möjligt att testa kod som är beroende av andra enheter utan att faktiskt behöva köra hela koden.

Datadriven - är en teknik inom enhetstestning där testfallen skapas baserat på olika kombinationer av testdata. Detta gör det möjligt att testa flera olika scenarier på samma gång och gör testprocessen mer effektiv.

49
Q

[Fact]

A

används för att markera en testmetod som en faktisk enhetstest.

50
Q

[Theories]

A

Används för att skapa ett datadriven test, där flera olika testfall kan köras med olika testdata.

51
Q

Fyra pelare inom unit testing?

A

Läsbarhet: Enhetstestet ska vara lätt att läsa och förstå. Detta underlättar felsökning och gör det lättare att förstå vad testet testar och vad som förväntas av koden.

Underhållbarhet: Enhetstestet ska vara lätt att underhålla. Detta innebär att testet ska vara enkelt att uppdatera när koden förändras, utan att det krävs för mycket ansträngning för att uppdatera testet.

Trovärdighet: Enhetstestet ska kunna identifiera fel och problem i koden på ett tillförlitligt sätt. Detta innebär att testet ska vara tillräckligt omfattande och täcka alla tänkbara scenarier.

Snabbt: Enhetstestet ska vara snabbt och effektivt. Detta innebär att testet inte bör ta för lång tid att köra, och att det bör kunna köras på en lämplig miljö som liknar produktionen.

52
Q

Vad är skillnaden mellan shared, private och volatile dependencies?

A

Shared dependencies är klasser eller metoder som används av flera andra klasser.

Private dependencies är klasser eller metoder som endast används av en annan klass.

Volatile dependencies är klasser eller metoder som ändras ofta

53
Q

vad är ett flytande påstående?

A

Flytande påståenden är ett sätt att skriva tester som är mer läsbara och lättare att underhålla.

54
Q

Testpyramiden?

A

är en modell för att fördela tester på olika nivåer, med enhetstester längst ner, integrationstester i mitten och end-to-end-tester högst upp.

55
Q

Vad är skillnaden mellan stubb och mock?

A

en stubb används för att ersätta en verklig funktion eller ett objekt med en enkel implementation,

en mock används för att simulera ett objekt eller en funktion och definiera dess beteende i testmiljön.

56
Q

Vad är skillnaden mellan ett assertion och en verifiering i enhetstester?

A

En assertion används för att kontrollera ett specifikt resultat, medan en verifiering används för att kontrollera ett antal förväntade resultat.

57
Q

Vad är ett testfall och hur skiljer det sig från ett testscenario?

A

Ett testfall är en specifik uppsättning input och förväntat resultat för att testa en viss kodruta.

Ett testscenario är en beskrivning av en uppsättning testfall

58
Q

vad är regression testning?

A

Regression Testing är en typ av testning som används för att säkerställa att nya ändringar i mjukvaran inte har påverkat befintlig funktionalitet.

59
Q

Beskriv processen med scrum

A

Produktägaren (Product Owner) skapar och underhåller en produktbacklog. Detta är en prioriterad lista över alla krav som behöver implementeras i produkten.

Utvecklingsteamet planerar arbetet för den kommande sprinten. De väljer de uppgifter från produktbackloggen som de kommer att arbeta på under sprinten.

Under sprinten arbetar utvecklingsteamet på de valda uppgifterna. De har en kort daglig stå-upp-möte för att diskutera framsteg och eventuella hinder.

Scrummästaren (Scrum Master) är ansvarig för att se till att processen fungerar smidigt och för att ta bort eventuella hinder som hindrar utvecklingsteamet från att arbeta effektivt.

Efter varje sprint har utvecklingsteamet en sprintdemo, där de visar upp sitt arbete för produktägaren och andra intressenter.

Utvecklingsteamet har också en sprintretrospektiv, där de utvärderar sprinten och diskuterar hur de kan förbättra sin process.

Produkten är redo för leverans efter flera iterationer av sprints och demos.