Funksjonell testing
Funksjonell testing er en kvalitetssikrings-prosess og en type svartbokstesting som baserer testtilfellene på kravspesifikasjonene til programvaren som er under testing.[1] Funksjoner testes ved å mate dem med innputt og vurdere utputtet, og innvendig programstrukturer blir sjelden vurdert (i motsetning til hvitebokstesting).[2] Funksjonelle tester utføres for å vurdere hvorvidt et system eller en komponent er i samsvar med spesifikke funksjonelle krav.[3] Funksjonell testing beskriver vanligvis hva et system gjør.
Siden funksjonell testing er en type svartbokstesting kan programvarens funksjonalitet testes uten behov for kjennskap til den interne virkemåten til programvaren. Dette betyr at testerne ikke trenger å kunne programmeringsspråk eller vite hvordan programvaren har blitt implementert. Dette kan igjen føre til redusert utviklerbias (eller bekreftelsesbias) i testing siden testerne ikke har vært involvert i programvareutviklingen.[4]
Funksjonell testing innebærer ikke at man tester funksjoner (metoder) i en modul eller klasse. Funksjonell testing tester en del av funksjonaliteten til hele systemet.
Funksjonell testing er forskjellig fra systemtesting ved at funksjonell testing verifiserer et program ved å sjekke det mot designdokumenter eller spesifikasjoner, mens systemtesting validerer et program ved å kontrollere det mot publiserte bruker- eller systemkrav.[5] Konseptet med å inkludere testing tidligere i leveransesykelen er ikke begrenset til funksjonelle tester.[6]
Typer
Det finnes mange typer funksjonelle tester:[2]
- Brukbarhetstesting
- Regresjonstesting
- Rimelighetstesting
Seks steg
Funksjonell testing innebærer vanligvis seks steg.
- Identifisering av funksjonene som programvaren forventes å utføre
- Utforming av inngangsdata basert på funksjonsspesifikasjonene
- Bestemmelse av utgangsdata basert på funksjons spesifikasjoner
- Kjøring av testtilfellet
- Sammenligning av faktiske og forventede utfall
- Sjekk om applikasjonen fungerer etter kundens behov
Se også
- Akseptansetest (programvare), test for å avgjøre om kravene i en spesifikasjon eller kontrakt er oppfylt
- Databasetesting, uilke former for testing av databaser
- Enhetstesting, type programvaretesting hvor individuelle deler testes for å se om de er egnet for bruk (validering)
- Ikke-funksjonell testing, testing av programvare opererer i stedet for spesifikke oppførsler eller funksjoner
- Integrasjonstesting, fase i programvaretesting der individuelle programvaremoduler kombineres og testes som en gruppe; gjøres etter enhetstesting og før systemtesting
- Lasttesting (programvare), belastning av et system samt måling av respons og kvalitet på tjenester
- Programvaretesting, undersøkelser for å gi informasjon om kvaliteten på en programvare
- Regresjonstesting, sjekk for å se om endringer i programvare har ødelagt funksjonalitet som pleide å fungere
- Sikringstesting, tester for å detektere svakheter i sikringsmekanismer som skal beskytte data og opprettholde funksjonalitet til et informasjonssystem
- Systemtesting, testing av et komplett integrert system for å evaluere systemets samsvar med spesifiserte krav
- Testautomasjon, bruk av separat programvare for å styre testgjennomføring og analysere resultater
Referanser
- ^ Prasad, Dr. K.V.K.K. (2008) ISTQB Certification Study Guide, Wiley, ISBN 978-81-7722-711-6, p. vi
- ^ a b Kaner, Falk, Nguyen. Testing Computer Software. Wiley Computer Publishing, 1999, p. 42. ISBN 0-471-35846-0.
- ^ ISO/IEC/IEEE International Standard - Systems and software engineering. ISO/IEC/IEEE 24765:2010(E).
- ^ Calikli, Gul. «Confirmation Bias in Software Development and Testing: An Analysis of the Effects of Company Size, Experience and Reasoning Skills» – via ResearchGate.
- ^ Kaner, Falk, Nguyen 1999, p. 52
- ^ «Full Stack Testing». Besøkt 8. september 2022.