Abstract-Software konfigurerbarhet har många fördelar, men det gör också program mycket svårare att testa, som i värsta fall programmet måste testas under alla möjliga konfigurationer. En möjlig lösning på detta problem är kombinatoriska interaktionstest (CIT), där vanligtvis utvecklaren väljer en styrka t och sedan beräknar en täckande uppsättning som innehåller alla T-vägs konfigurationsalternativ kombinationer. I en tidigare studie visade vi dock att flera program har viktiga höghållfasta interaktioner (kombinationer av en delmängd av konfigurationsalternativ) som CIT är högst osannolikt att generera i praktiken. I detta dokument föreslår vi en ny algoritm som kallas interaktion träd upptäckt (iTree) som syftar till att identifiera uppsättningar av konfigurationer för att testa som är mindre än de som genereras av CIT, samtidigt som även viktiga höghållfasta interaktioner missas av praktiska tillämpningar av CIT. På varje iteration av iTree använder vi först låghållfast CIT för att testa programmet under en uppsättning konfigurationer, och sedan tillämpa maskininlärning tekniker för att upptäcka nya interaktioner som är potentiellt ansvariga för någon ny täckning sett. Genom att upprepa denna process bygger iTree upp en uppsättning konfigurationer som sannolikt innehåller viktiga höghållfasta interaktioner. Vi utvärderade iTree genom att jämföra täckningen det uppnår jämfört med täckning arrayer och slumpmässigt genererade konfigurationsuppsättningar. Våra resultat tyder starkt på att iTree kan identifiera hög täckning uppsättningar av konfigurationer mer effektivt än traditionell CIT eller slumpmässig provtagning.
Som också diskuterats tidigare, för att ta itu med vissa begränsningar av Otter vi utvecklat iTree REF, som använder dynamisk analys och maskininlärning tekniker för att generera en uppsättning konfigurationer som uppnår hög täckning.
iTree: efficiently discovering high-coverage configurations using interaction trees
{'venue': "ICSE '12", 'journal': None, 'mag_field_of_study': ['Computer Science']}