Överensstämmelsetestning (Conformance Testing) i mjukvarutestning

⚡ Smart sammanfattning

Överensstämmelsetestning intygar att ett programvarusystem uppfyller de standarder och föreskrifter som fastställts av organ som IEEE, W3C eller ETSI, vilka omfattar prestanda, funktioner, robusthet, interoperabilitet och övergripande systembeteende.

  • 🔘 Även kallad: Överensstämmelsetestning eller typtestning, en formell verifiering mot en publicerad standard.
  • 📚 Rapportering: Inkluderar efterlevnads-, belastnings-, stress- och volymtestning inom ett och samma efterlevnadsprogram.
  • 🧭 Delmängder: Specifikationerna grupperas i Profiler, Nivåer och Moduler innan testdesignen påbörjas.
  • 🔄 Process: Analysera standarder, välj verktyg, utforma procedurer, validera och anta sedan certifieringspolicyer.
  • 📱 Mobil: GSM- och CDMA-enheter lägger till protokoll-, SIM-, RF-, ljud- och absorptionstester.
  • ⚖️ Åtskillnad: Efterlevnad är formellt och innebär fullt stöd; efterlevnad är informellt och innebär delvis stöd.

Överensstämmelsetestning och efterlevnadstestprocess inom programvarutestning

Överensstämmelsetestning

Överensstämmelsetestning är en mjukvarutestningsteknik som används för att certifiera att ett mjukvarusystem uppfyller de standarder och föreskrifter som definierats av organ som IEEE, W3C eller ETSI. Den avgör hur väl ett system som testas uppfyller de individuella kraven i en viss standard. Överensstämmelsetestning kallas även för compliancetestning.

Den kan behandla tekniska aspekter, men omfattar även utformningen:

  • Prestanda
  • Funktioner
  • Robusthet
  • Interoperabilitet
  • Systemets beteende

Typer av överensstämmelsetestning

Överensstämmelsetestning kan vara logisk eller fysisk, och den omfattar följande typer av testning:

Diagrammet nedan visar hur dessa testtyper samverkar i ett enda överensstämmelseprogram.

Typer av överensstämmelsetestning grupperade som överensstämmelse-, belastnings-, spännings- och volymtestning

Varför behöver vi överensstämmelsetestning?

  • För att kontrollera att systemkraven är uppfyllda
  • För att kontrollera om systemdokumentationen är komplett
  • För att kontrollera utveckling, design och utvärdering mot specifikationerna

Vad behöver vi testa?

  • De standarder genom vilka implementeringen sker
  • Uppmaningen av det system som ska utvecklas
  • Specifikationernas omfattning
  • Specifikationsmål

Överensstämmelsetestning initieras av ledningen, med försäkran om att teamet förstår tillämpliga standarder, specifikationer och procedurer.

Standarder och specifikationer bör anges tydligt för att undvika tvetydighet. Om de inte är det är överensstämmelsetestning i sig användbar för att identifiera de steg som behövs för att göra dem relevanta och tillförlitliga.

När och hur ska man utföra överensstämmelsetestning?

Överensstämmelsetestning utförs när systemets övergripande konsistens, fullständighet och korrekthet måste kontrolleras mot kravspecifikationerna. De metoder som används skiljer sig inte särskilt mycket från vanliga utvecklingslivscykelstadier:

  • Analysera kravspecifikationer
  • Förberedelse av testplanen
  • Förbereda testfall och ange deras syfte
  • Skapa dokumentation för de förberedda testdesignerna

Några ytterligare aspekter av specifikationerna behöver uppmärksammas, särskilt delmängder, som generellt sett är av tre typer – Profil, Nivå och Moduler:

  • Profil är en delmängd av specifikationerna som inkluderar den systemfunktionalitet som krävs för att tillfredsställa en viss grupp användare
  • Nivåer är kapslade delmängder av specifikationerna, där Nivå1 anger de grundläggande specifikationerna och Nivå2 anger Nivå1 plus ytterligare eller ny funktionalitet
  • Moduler är samlingar av signifikant korrelerade standarder och specifikationer

Överensstämmelsetestningsprocess

Överensstämmelsetestprocessen, eller compliance testing process, är nödvändig för att säkerställa effektivitet och prestanda och för att undvika framtida risker för en programvaruapplikation. Ett effektivt överensstämmelsetest följer denna steg-för-steg-process:

  1. Analysera standarder och specifikationer
  2. Val av testverktyg och testsvit
  3. Utforma testprocedurer
  4. Kontrollera nödvändiga valideringar
  5. Anta relevanta testpolicyer och certifieringar

Den schematiska representationen av processen för överensstämmelse och efterlevnadstestning nedan gör sekvensen lättare att följa.

Femstegsprocess för överensstämmelsetestning från analys av standarder till certifiering

Uttryckt som ett användningsfall visar samma process vilken aktör som utför varje steg.

Användningsfallsdiagram för överensstämmelsetestprocessen med testare och certifieringsaktörer

Överensstämmelsetestning kontra efterlevnadstestning

Överensstämmelsetestning kallas ibland för efterlevnadstestning, men det finns några grundläggande fakta som skiljer de två åt. Tabellen nedan jämför dem.

Överensstämmelsetestning Överensstämmelsetestning
Ett formellt och precist sätt att testa mot standarder Ett informellt och mindre precist sätt att testa mot standarder
Certifiering om överensstämmelse gäller endast för ett operativsystem som har officiellt godkännande från certifieringsmyndigheten Ett operativsystem som tillhandahåller ett enda API av POSIX (Portable OperaSystemgränssnitt) sägs vara kompatibelt
Används för att testa ett system som ger fullt stöd för de givna standarderna Används för att testa ett system som endast stöder vissa av de givna standarderna

Fördelar med överensstämmelsetestning

  1. Säkerställer korrekt implementering av specifikationerna
  2. Säkerställer portabilitet och interoperabilitet
  3. Ger lämplig användning av standarder
  4. Gör det möjligt att säkerställa att gränssnitt och funktioner fungerar som förväntat
  5. Hjälper till att identifiera de områden som måste överensstämma och de som inte behöver det, såsom syntax och semantik

Nackdelar med överensstämmelsetestning

Liksom andra typer av testning medför överensstämmelsetestning uppgifter som är svåra att utföra och kan bli en utmaning. Några av dem listas nedan:

  1. Effektiv överensstämmelsetestning kräver att den systemklass som testas identifieras tillsammans med en lämplig metod.
  2. Kategorisering av specifikationer i profiler, nivåer och moduler
  3. Fördefiniera värden
  4. Utforma de tillägg, alternativ och metoder som behövs för att genomföra testprocessen framgångsrikt

Överensstämmelsetestning: Kritiska synpunkter

Överensstämmelsetestning har områden som behöver extra uppmärksamhet och kunskap för framgångsrik implementering:

  1. Testmetoder som är bäst lämpade
  2. Val av ett testverktyg som automatiserar testprocessen
  3. Tydlig förståelse för att överensstämmelsetestning endast visar avvikelser, aldrig överensstämmelsen i sig
  4. Utforma och implementera programmet för överensstämmelsetestning
  5. Definierar hur formellt det ska utföras
  6. Policyer och reglering

Överensstämmelsetestning för mobilt system

Precis som andra typer av mjukvarutestning kan överensstämmelsetestning även utföras för mobila system. När systemet är monterat kontrolleras det för användning innan driftsättning genom ett överensstämmelsetest.

Beroende på nätverkstyp, såsom GSM eller CDMA, utförs testerna för att uppnå överensstämmelse och interoperabilitet. Dessa tester kan innefatta:

Exempel Användningsfallsdiagram

Följande användningsfallsdiagram visar hur överensstämmelsetestning utförs för distribuerade mobila system.

Användningsfallsdiagram för överensstämmelsetestning av ett driftsatt mobilt system

Detta kan utföras för SIM-kortstestning i två steg. Det första steget är lösenordsvalidering, visas nedan.

Användningsfall för validering av SIM-kortslösenord med korrekta och felaktiga PIN-sökvägar

Det andra steget är ringer ett samtal, vilket har två resultat, samtalet lyckades och samtalet misslyckades.

Att skapa ett användningsfall för ett samtal som visar resultat av lyckade och misslyckade samtal

Protokolltestning följer samma mönster, som detta användningsfall visar.

Användningsfall för protokolltestning för ett mobilt system under överensstämmelsetest

Testfallsmallen nedan visar hur testfall skrivs för protokolltestning.

Test-ID Testscenario Teststeg Testdata Förväntat resultat Faktiskt resultat Status Anmärkningar
PT001 Protokollet har inget dödläge Börja med kommunikationsprocessen _ Bör etablera kommunikation framgångsrikt Kommunikation etablerad framgångsrikt Pass _
PT002 "Ping”-kommandot fungerar korrekt för timeout ange Ping kommando som 'Ping -w' i kommandotolken Ping 1000 Borde visa meddelandet "Transmit Framgångsrik." Meddelandet visar "Transmit Framgångsrik." Pass _
PT003 Räkna antalet 'eko'-förfrågningar ange Ping kommando som 'Ping -n' i kommandotolken Ping 4 Borde börja ping0.0.0.4 med 32 byte data och visa meddelandet "Transmit Framgångsrik." Startar ping0.0.0.4 med 32 byte data men visar meddelandet "Transmit Misslyckades." Underkänd Semantiskt eller funktionellt fel
PT004 Vilken stat som helst kan nås från vilken stat som helst Lämna ett tillstånd och återgå till föregående eller nästa _ Bör framgångsrikt ändra tillståndet Ändrar tillståndet framgångsrikt Pass _

Mallar som denna ger enhetlighet i testprocessen. Beroende på nätverkstyp kan hundratals testfall definieras och köras för att bekräfta att mobilsystemet fungerar enligt kravspecifikationen.

Vanliga frågor

IEEE, W3C, ETSI och 3GPP är de som nämns oftast, tillsammans med ISO. Var och en publicerar specifikationen och, i många fall, en officiell testsvit som ett laboratorium kör innan certifiering beviljas.

Modeller läser en lång specifikation och mappar varje klausul till ett kandidattestfall, vilket förkortar trachållbarhetsarbete. En kvalificerad granskare skriver fortfarande under, eftersom certifieringsbevis måste kunna försvaras av en revisor.

Ja, för den repetitiva harness-koden och påståenden kring en publicerad testsvit. Agentic-körare kan också köra sviten igen på varje build, även om godkännandekriterierna måste komma från standarden, inte assistenten.

En ackrediterad certifieringsmyndighet eller ett testlaboratorium som erkänns av standardiseringsorganet, inte av utvecklingsteamet. Självdeklarerade resultat beskrivs vanligtvis som en försäkran om överensstämmelse snarare än ett certifikat.

När standarden revideras eller implementeringen ändras på ett sätt som berör ett certifierat gränssnitt. Många certifikat har också en giltighetsperiod, varefter sviten körs på nytt.

Överensstämmelse bevisar att en implementering matchar specifikationen. Interoperabilitetstestning bevisar sedan att två oberoende byggda implementationer faktiskt fungerar tillsammans. Att godkänna den första garanterar inte den andra.

Övervägande svart låda. Testsviten använder det publicerade gränssnittet och jämför observerat beteende med standarden, utan att vara beroende av hur implementeringen byggdes internt.

A tracen matris som länkar varje klausul i standarden till ett testfall, de exekverade resultaten och en redogörelse för eventuell påstådd profil eller nivå. Revisorer läser det paketet snarare än koden.

Sammanfatta detta inlägg med: