Föreläsning 3 - Verktyg, krav och testning Flashcards
Vad är syftet med versionshantering i mjukvaruutveckling?
Versionshantering låter utvecklare arbeta med olika versioner av systemet, ger möjlighet att återställa till tidigare versioner, och hjälper till att koordinera arbetet i team.
Vad innebär Continuous Integration?
CI innebär att kodändringar regelbundet integreras i ett gemensamt repositorium, där bygg och tester automatiskt körs för att upptäcka fel så tidigt som möjligt.
Vad är funktionen av byggscript i mjukvaruutveckling?
Byggscript automatiserar skapandet av ett exekverbart system från källkoden, vilket inkluderar kompilering, länkning, och paketering.
Vad är rollen för en byggserver?
En byggserver automatiserar bygg- och testprocesser, ofta som en del av CI, för att säkerställa att mjukvaran alltid är i ett byggbart och testbart tillstånd.
Vad fokuserar kravhanteringen på?
Kravhantering fokuserar på att definiera vad systemet ska göra och hur det ska bete sig, inklusive insamling och specificering av funktionella och icke-funktionella krav.
Vad används JUnit för i mjukvaruutveckling?
JUnit är ett ramverk för att skriva och köra automatiserade tester i Java, vilket stödjer testdriven utveckling (TDD).
Vad är principen bakom testdriven utveckling?
I TDD skrivs tester för ny funktionalitet innan själva koden skrivs. Koden skrivs sedan för att passera testerna, vilket garanterar att funktionaliteten uppfyller de definierade kraven.
Vad innebär konfigurationshantering?
Konfigurationshantering innebär att spåra och kontrollera ändringar i mjukvarans konfigurationer och beroenden, för att underlätta återställning och distribution.
Vilka är vanliga problem i systemgenerering?
Vanliga problem inkluderar att säkerställa att alla nödvändiga komponenter inkluderas, att rätt version av komponenter används, och att alla datafiler är tillgängliga.
Vad är Maven och dess roll i mjukvaruutveckling?
Maven är ett verktyg för projektledning och förståelse i Java-projekt, som automatiserar byggprocessen och hanterar projektets beroenden.
Vad innebär “Infrastruktur” i mjukvaruutveckling?
Infrastruktur refererar till den tekniska grund som stödjer utveckling, byggnation, testning och distribution av mjukvara. Det inkluderar servermaskiner, nätverk, lagring och plattformstjänster som databaser och webbservrar, samt molntjänster för skalbarhet och flexibilitet.
Vad är GIT och dess huvudfunktion? (Versionshantering)
GIT är ett distribuerat versionshanteringssystem som spårar ändringar i filer och koordinerar arbete mellan flera personer på ett projekt, optimerat för hastighet och effektivitet för både små och stora projekt. Det möjliggör offline arbete och ökad säkerhet genom att lagra hela versionshistoriken lokalt.
Vad är syftet med Branching och Merging?
Branching tillåter utvecklare att skapa parallella versioner (grenar) av kodbasen för att utveckla nya funktioner eller åtgärda buggar isolerat. Merging integrerar sedan dessa ändringar tillbaka till huvudgrenen, kombinerande bidragen från olika grenar.
Vad innebär Bygghantering?
Bygghantering automatiserar omvandlingen av källkod till ett exekverbart system, inklusive kompilering, länkning och paketering, för att spara tid och minimera fel. Verktyg som ANT och Maven används för att definiera och automatisera byggprocessen.
Vilka är huvudkomponenterna i Kravhantering?
Kravhantering innefattar insamling och specificering av både funktionella och icke-funktionella krav, med fokus på att definiera vad systemet ska göra och hur det ska bete sig. Det kräver tydlig kommunikation och dokumentation samt flexibilitet för att hantera förändringar.
Vad är Continuous Integration (CI)?
CI är en utvecklingspraxis där kodändringar regelbundet integreras i ett gemensamt repositorium och automatiskt testas. Detta syftar till att snabbt upptäcka och åtgärda fel, förbättra mjukvarukvaliteten och minska tiden för validering och release.
Vad är ett Repository?
Ett repository är en databas för att lagra, organisera och spåra versioner av ett projekt, inkluderande hela versionshistoriken, vilket möjliggör djupgående spårbarhet och återställningsförmåga.
Vad innebär Systemgenerering?
Systemgenerering är processen att bygga det kompletta systemet från källkod och resurser, vilket innefattar kompilering och paketering. Det testar kodens integritet och säkerställer att alla delar fungerar tillsammans som avsett.
Version Control:
Versionshanteringssystem (som GIT) är fundamentala för att hantera kodändringar och historik, möjliggöra parallellt arbete mellan utvecklare, och integrera ändringar på ett kontrollerat sätt.
Write & Run Tests:
Skrivning och körning av tester är avgörande för att säkerställa kvaliteten på mjukvaran. Automatiserade tester körs kontinuerligt för att snabbt identifiera och åtgärda buggar.
Script Builds:
Byggscript (som de definierade i ANT eller Maven) automatiserar processen att omvandla källkod till körbara program eller system. Dessa script säkerställer att byggprocessen är konsekvent och repeterbar.
Continuous Builds:
Kontinuerlig byggning innebär automatiskt att bygga och testa mjukvaran vid varje kodinlämning, vilket snabbt upptäcker problem och förbättrar produktkvaliteten.
Track Features & Issues:
Verktyg för ärendehantering och funktionspårning (som JIRA) används för att organisera, prioritera och spåra utvecklingen av funktioner samt hantering av buggar och problem.