Abstrakt. Perfekt testtäckning före utplacering är notoriskt svårt att uppnå för stora tillämpningar. Med tillräckligt många slutanvändare kommer många fler testfall att uppstå under en applikations lansering än under testning. Användning av körningsverifiering efter installation skulle göra det möjligt för utvecklare att upptäcka och rapportera om oväntade situationer. Tyvärr förhindrar den oöverkomliga prestandakostnaden för runtime monitors deras användning i utplacerad kod. I detta arbete studerar vi genomförbarheten av kollaborativ körtidsverifiering, en verifieringsmetod som fördelar bördan av körtidsverifiering på flera användare. Varje användare utför ett delvis instrumenterat program och lider därför endast en bråkdel av instrumentet overhead. Vi fokuserar på körningsverifiering med hjälp av spårmatcher. Tracematches är en specifikation formalism som gör det möjligt för användare att ange körtidsverifieringsegenskaper via reguljära uttryck med fria variabler över det dynamiska körspåret. Vi föreslår två tekniker för att ljudligt partitionera den instrumentering som krävs för spårmatcher: rumslig partitionering, där olika kopior av ett program övervakar olika programpunkter för överträdelser, och temporal partitionering, där övervakning är påslagen och avstängd över tid. Vi utvärderar den relativa effekten av partitionering på en användares körtid overhead genom att tillämpa varje partitionering teknik på en samling av riktmärken som annars skulle medföra betydande instrumentering overhead. Våra resultat visar att rumslig partitionering nästan helt eliminerar runtime overhead (för någon särskild referenskopia) på många av våra testfall, och att temporal partitionering skalor väl och ger runtime verifiering på en "pay as you go"-basis.
Ett annat tillvägagångssätt använder spårmatcher för körtidsverifiering REF.
Collaborative runtime verification with
{'venue': 'J. Log. Comput.', 'journal': 'J. Log. Comput.', 'mag_field_of_study': ['Computer Science']}