Lecture overview -- Keyboard shortcut: 'u'  Previous page: Klassen som testenhed: Praktiske problemer -- Keyboard shortcut: 'p'  Next page: Test i forhold til kontraktideen (2) -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Page 31 : 46
Forelæsningsnoter i Objekt-orienteret Programmering
Test og Dokumentation
Test i forhold til kontraktideen (1)

Vi har tidligere i kurset studeret kontraktbegrebet, pre- og postbetingelser og klasseinvarianter. Vi indså at kontrakter er værdifulde under design til fastlæggelse af ansvar mellem klasser i et objekt-orienteret program. Vi konstaterede imidlertid også, at ideerne omkring kontrakter påvirker mange andre faser i programudviklingsprocessen. Her sætter vi fokus på værdien af (og naturligvis også begrænsningerne ved) kontrakter i en testaktivitet

Design kontrakter og assertions hjælper også i forbindelse med programtest

  • Positive bidrag under test:

    • Black box bidrag

    • Specifikationen, som programmet testes op imod

      • Specifikationen er en integreret del af programmet

    • Automatisk vurdering af hvorvidt en testudførelse giver et korrekt resultat

      • Observerbarhed

      • Postbetingelsen og klasseinvarianten fortæller, om resultatet af en procedure er korrekt

    • Afgrænsning af de input, der skal testes

      • Bidrag fra ansvarsfordelingen

      • Ingen gode grunde til at teste en procedure med input, som ikke opfylder prebetingelsen

    • Afgrænsning af de metoder, som interagerer med hinanden

      • Formindsker metode interaktionstests

      • Ingen gode grunde til at at afprøve sekvenser af beskeder, som involverer falske prebetingelser

Selv om ideen om kontrakter reducerer antallet af testtilfælde er der stadig store udfordringer i at vælge hensigtsmæssig test input til en black box test af et program med kontrakter