Academic Journal
Grammar-based test suite construction using coverage-directed algorithms over LR-graphs
| Τίτλος: | Grammar-based test suite construction using coverage-directed algorithms over LR-graphs |
|---|---|
| Συγγραφείς: | Rossouw, Christoff, Fischer, Bernd |
| Στοιχεία εκδότη: | Elsevier |
| Έτος έκδοσης: | 2024 |
| Συλλογή: | Stellenbosch University: SUNScholar Research Repository |
| Θεματικοί όροι: | Computer software -- Testing, Debugging in computer science, Algorithms, Parsing (Computer grammar) |
| Περιγραφή: | The original publication is available at: https://www.sciencedirect.com/ ; In grammar-based testing, the test suites that drive the system under test are typically constructed from a given context-free grammar through a set of derivations that jointly satisfy some coverage criterion. In this paper, we describe and evaluate a new algorithm that instead constructs test suites from a set of valid paths that cover all edges in a labeled directed graph corresponding to an LR-automaton that accepts the language of the grammar. Vertices in this graph correspond to states in the LR-automaton; two vertices are connected by an edge iff the top of the LR-automaton’s stack can change from one state to the other, either by shifting a terminal or non-terminal symbol (push edges), or by reducing with a grammar rule (pop edges). The algorithm constructs a unique reduction path for each pop edge in the graph. These reduction paths are recursively embedded into each other, and any unresolved non-terminal push edges are substituted by shortest derivations for the non-terminal symbol. The algorithm can work with different types of LR-automata, including LR(0)- and LR(1)-automata, and can successfully generate a test suite from an LR-graph even if the underlying LR-automaton construction leads to shift/reduce or reduce/reduce conflicts. The algorithm only constructs valid paths over the LR-graphs that correspond to sentences in the language and thus generates only positive tests. We therefore also describe mutations to the positive paths that are guaranteed to generate negative tests without needing any further verification by an oracle. Our algorithm is substantially more efficient than an earlier algorithm that explores LR-graphs with two consecutive breadth-first graph traversals and our experimental evaluation shows that it scales to large production-quality grammars. It is robust against random choices made to resolve ambiguity in the construction of the tests, while the code coverage of the different test suite variants is ... |
| Τύπος εγγράφου: | article in journal/newspaper |
| Περιγραφή αρχείου: | 20 Pages; application/pdf |
| Γλώσσα: | English |
| Relation: | https://scholar.sun.ac.za/handle/10019.1/133297 |
| DOI: | 10.1016/j.jss.2024.112068 |
| Διαθεσιμότητα: | https://doi.org/10.1016/j.jss.2024.112068 https://scholar.sun.ac.za/handle/10019.1/133297 |
| Rights: | Authors retain copyright |
| Αριθμός Καταχώρησης: | edsbas.326F17C7 |
| Βάση Δεδομένων: | BASE |
| FullText | Text: Availability: 0 CustomLinks: – Url: https://doi.org/10.1016/j.jss.2024.112068# Name: EDS - BASE (ns324271) Category: fullText Text: View record from BASE |
|---|---|
| Header | DbId: edsbas DbLabel: BASE An: edsbas.326F17C7 RelevancyScore: 880 AccessLevel: 3 PubType: Academic Journal PubTypeId: academicJournal PreciseRelevancyScore: 879.707946777344 |
| IllustrationInfo | |
| Items | – Name: Title Label: Title Group: Ti Data: Grammar-based test suite construction using coverage-directed algorithms over LR-graphs – Name: Author Label: Authors Group: Au Data: <searchLink fieldCode="AR" term="%22Rossouw%2C+Christoff%22">Rossouw, Christoff</searchLink><br /><searchLink fieldCode="AR" term="%22Fischer%2C+Bernd%22">Fischer, Bernd</searchLink> – Name: Publisher Label: Publisher Information Group: PubInfo Data: Elsevier – Name: DatePubCY Label: Publication Year Group: Date Data: 2024 – Name: Subset Label: Collection Group: HoldingsInfo Data: Stellenbosch University: SUNScholar Research Repository – Name: Subject Label: Subject Terms Group: Su Data: <searchLink fieldCode="DE" term="%22Computer+software+--+Testing%22">Computer software -- Testing</searchLink><br /><searchLink fieldCode="DE" term="%22Debugging+in+computer+science%22">Debugging in computer science</searchLink><br /><searchLink fieldCode="DE" term="%22Algorithms%22">Algorithms</searchLink><br /><searchLink fieldCode="DE" term="%22Parsing+%28Computer+grammar%29%22">Parsing (Computer grammar)</searchLink> – Name: Abstract Label: Description Group: Ab Data: The original publication is available at: https://www.sciencedirect.com/ ; In grammar-based testing, the test suites that drive the system under test are typically constructed from a given context-free grammar through a set of derivations that jointly satisfy some coverage criterion. In this paper, we describe and evaluate a new algorithm that instead constructs test suites from a set of valid paths that cover all edges in a labeled directed graph corresponding to an LR-automaton that accepts the language of the grammar. Vertices in this graph correspond to states in the LR-automaton; two vertices are connected by an edge iff the top of the LR-automaton’s stack can change from one state to the other, either by shifting a terminal or non-terminal symbol (push edges), or by reducing with a grammar rule (pop edges). The algorithm constructs a unique reduction path for each pop edge in the graph. These reduction paths are recursively embedded into each other, and any unresolved non-terminal push edges are substituted by shortest derivations for the non-terminal symbol. The algorithm can work with different types of LR-automata, including LR(0)- and LR(1)-automata, and can successfully generate a test suite from an LR-graph even if the underlying LR-automaton construction leads to shift/reduce or reduce/reduce conflicts. The algorithm only constructs valid paths over the LR-graphs that correspond to sentences in the language and thus generates only positive tests. We therefore also describe mutations to the positive paths that are guaranteed to generate negative tests without needing any further verification by an oracle. Our algorithm is substantially more efficient than an earlier algorithm that explores LR-graphs with two consecutive breadth-first graph traversals and our experimental evaluation shows that it scales to large production-quality grammars. It is robust against random choices made to resolve ambiguity in the construction of the tests, while the code coverage of the different test suite variants is ... – Name: TypeDocument Label: Document Type Group: TypDoc Data: article in journal/newspaper – Name: Format Label: File Description Group: SrcInfo Data: 20 Pages; application/pdf – Name: Language Label: Language Group: Lang Data: English – Name: NoteTitleSource Label: Relation Group: SrcInfo Data: https://scholar.sun.ac.za/handle/10019.1/133297 – Name: DOI Label: DOI Group: ID Data: 10.1016/j.jss.2024.112068 – Name: URL Label: Availability Group: URL Data: https://doi.org/10.1016/j.jss.2024.112068<br />https://scholar.sun.ac.za/handle/10019.1/133297 – Name: Copyright Label: Rights Group: Cpyrght Data: Authors retain copyright – Name: AN Label: Accession Number Group: ID Data: edsbas.326F17C7 |
| PLink | https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.326F17C7 |
| RecordInfo | BibRecord: BibEntity: Identifiers: – Type: doi Value: 10.1016/j.jss.2024.112068 Languages: – Text: English Subjects: – SubjectFull: Computer software -- Testing Type: general – SubjectFull: Debugging in computer science Type: general – SubjectFull: Algorithms Type: general – SubjectFull: Parsing (Computer grammar) Type: general Titles: – TitleFull: Grammar-based test suite construction using coverage-directed algorithms over LR-graphs Type: main BibRelationships: HasContributorRelationships: – PersonEntity: Name: NameFull: Rossouw, Christoff – PersonEntity: Name: NameFull: Fischer, Bernd IsPartOfRelationships: – BibEntity: Dates: – D: 01 M: 01 Type: published Y: 2024 Identifiers: – Type: issn-locals Value: edsbas |
| ResultId | 1 |