Sammanfattning-Detta dokument presenterar resultaten av en n empirisk studie av programvara e r r o r detektion med hjälp av självkontroller och N-version röstning. Totalt 24 forskarstuderande i datavetenskap vid University of Virginia och University of California i Irvine anställdes som programmerare. Genom att arbeta självständigt förberedde var och en av dem en uppsättning självkontroller med hjälp av endast kravspecifikationerna för en tillämpning inom flyg- och rymdsektorn, och därefter kompletterade varje självkontroller med en n befintlig tillämpning av denna specifikation. De ändrade programmen utfördes för att mäta fel-detektion prestanda av kontrollerna och för att jämföra detta med fel o r detektion med enkel röstning bland flera versioner. Målet med denna studie är att lära sig mer om effektiviteten av sådana kontroller. Analysen av kontrollerna visade att det finns stora skillnader i enskilda programmerares förmåga att utforma effektiva kontroller. Vi fann att vissa kontroller som kunde ha varit effektiva misslyckades med att upptäcka en n e r r o r eftersom de var dåligt placerade, en n d det fanns många fall av kontroller som signalerade obefintliga fel. I allmänhet var specificeringsbaserade kontroller i sig inte effektiva när de kombinerades med kodbaserade kontroller. Med hjälp av självkontroller identifierades fel som inte hade upptäckts tidigare genom att rösta 28 versioner av programmet över en miljon slumpmässigt genererade ingångar. Detta föreföll vara ett resultat av det faktum att självkontrollerna kunde undersöka det verkställande programmets interna tillstånd, medan röstningen endast undersökte de slutliga resultaten av beräkningarna. Om interna stater måste vara identiska i N-version röstningssystem, då skulle det inte finnas någon anledning att skriva flera versioner. Programmen genomfördes på 100 000 nya slumpmässigt genererade inmatningsfall för att jämföra e r r o r detektion genom självkontroller och genom 2-versions- och 3-versionsröstning. Både självkontroller och röstningsmetoder ledde till att samma antal fel för denna insats identifierades, även om de identifierade felen inte var desamma. Även om självkontrollerna alltid var effektiva för att upptäcka en n e r r o r orsakad av ett visst fel (om de någonsin gjorde det), så tredubblade N-versionsröstningen ett n d par endast delvis effektivt för att upptäcka de fel som orsakades av vissa fel. Slutligen ledde kontrollen av den interna staten med självkontroller också till att man hittade fel som inte orsakade fel i de enskilda indatafall som utfördes. Detta har viktiga konsekvenser för användningen av back-to-back-tester. Index Terms-Acceptance tester, påståenden, e r r o r detektion, N-version programmering, programvara feltolerans, programvara tillförlitlighet.
I Ref drar man i en studie om användningen av självkontroller och röstning för upptäckt av programvarufel bland annat slutsatsen att placeringen av självkontroller verkade orsaka problem, dvs. självkontroller som kunde ha misslyckats effektivt på grund av att de var dåligt placerade.
The Use of Self Checks and Voting in Software Error Detection: An Empirical Study
{'venue': 'IEEE Trans. Software Eng.', 'journal': 'IEEE Trans. Software Eng.', 'mag_field_of_study': ['Computer Science']}