Detecting Isolation Bugs via Transaction Oracle Construction
Read the paper · doi:10.1109/icse48619.2023.00101
What this paper does with SQLancer
How it was classified
uses infrastructure — yes (generator)
M4 states Troc's database and SQL statement generation is mainly based on SQLancer, and M5 that the supported schema features are SQLancer's. The transaction oracle on top is Troc's own.
Troc’s database and SQL statement generation mainly bases on SQLancer [49].
, primary keys, indexes, various data types, and conditions that are supported by SQLancer [49].
extends technique — no
Troc constructs an oracle for transaction schedules, which M3 and M7 present as covering what the single-query oracles cannot address rather than generalising one of them.
compares with — yes
M6 names SQLancer among the tools in the overall bug detection comparison, and M7 reports the outcome: it cannot generate transaction test cases and has no oracle for them, so it finds none of these bugs.
, SQLsmith [24], SQLancer [26]–[28], Elle [23] and Cobra [22].
, SQLsmith [24] and SQLancer [26]–[28], cannot generate transaction test cases, and do not have a test oracle for transaction test cases.
describes as state of the art — no
Automatic testing approaches are called effective at detecting bugs in DBMSs, which is not a claim that SQLancer is the state of the art.
Its artifact
criszy/Troc carries renamed sqlancer package, sqlancer source content match.
Artifact for "Detecting Isolation Bugs via Transaction Oracle Construction" # Troc This is the artifact for the paper "Detecting Isolation Bugs via Transaction Oracle Construction". See [paper](http://www.tcse.cn/~cuiziyu20/papers/2023-icse-troc.pdf) to learn more details.
source
private static StringGenerationStrategy stringGenerationStrategy = StringGenerationStrategy.SOPHISTICATED;
source
SQLancer publications it cites (6)
Bibliography entries that resolved to a SQLancer publication, or to a paper by one of the project's authors. A sentence citing one of these numbers is a reference to SQLancer even when it never writes the name.
| # | Entry | Matched as |
|---|---|---|
| 26 | M. Rigger and Z. Su, “Testing database engines via pivoted query synthesis,” in Proceedings of USENIX Symposium on Operating Systems Design and Implementation (OSDI), 2020, pp. 667–682. | sqlancer publication · PQS |
| 27 | ——, “Finding bugs in database systems via query partitioning,” Proceedings of the ACM on Programming Languages, vol. 4, no. OOPSLA, pp. 211:1–211:30, 2020. | sqlancer publication · TLP |
| 28 | ——, “Detecting optimization bugs in database engines via nonoptimizing reference engine construction,” in Proceedings of ACM Joint European Software Engineering Conference and Symposium on theF oundations of Software ... | sqlancer publication · NOREC |
| 49 | (2022) SQLancer. [Online]. Available: https://www.manuelrigger.at/ dbms-bugs/ | sqlancer publication |
| 69 | J. Ba and M. Rigger, “Testing database engines via query plan guidance,”inProceedings of IEEE/ACM International Conference on Software Engineering (ICSE), 2023. | sqlancer publication · QPG |
| 70 | M. Kamm, M. Rigger, C. Zhang, and Z. Su, “Testing graph database engines via query partitioning,” in Proceedings of ACMSIGSOFT International Symposium on Software Testing and Analysis (ISSTA), 2023. | project authored |
Every place it refers to SQLancer (12)
12 sentences, each stored verbatim from the extracted text with where it was found and how. “Citation marker” means the sentence names no tool at all and was reached through a reference number that resolved to a SQLancer publication.
| Id | Sentence | Found by | Where |
|---|---|---|---|
| M1 | Automatic database testing approaches [24]–[28] can support these complex features in modern DBMSs, and have beenproved as an effective technique to detect bugs in DBMSs. |
citation marker |
I INTRODUCTION page 1 |
| M2 | For example, SQLancer constructs the query partitioning oracle[27] and the containment oracle [26] for a single query. |
name |
I INTRODUCTION page 1 |
| M3 | Automatic database testing approaches like SQLancer [26]–[28] detect logic bugs for single queries (i. |
name |
I INTRODUCTION page 2 |
| M4 | Troc’s database and SQL statement generation mainly bases on SQLancer [49]. |
name |
C Database and SQL Statement Generation page 5 |
| M5 | , primary keys, indexes, various data types, and conditions that are supported by SQLancer [49]. |
name |
C Database and SQL Statement Generation page 5 |
| M6 | , SQLsmith [24], SQLancer [26]–[28], Elle [23] and Cobra [22]. |
name |
B Overall Bug Detection Results page 9 |
| M7 | , SQLsmith [24] and SQLancer [26]–[28], cannot generate transaction test cases, and do not have a test oracle for transaction test cases. |
name |
B Overall Bug Detection Results page 9 |
| M8 | , logic bugs [25]–[28]. |
citation marker |
V DISCUSSION page 10 |
| M9 | , SQLancer [49]. |
name |
V DISCUSSION page 11 |
| M10 | Many approaches have been proposed for DBMS testing and graph database system testing [24]– [28], [48], [61]–[74]. |
citation marker |
VI RELA TED WORK page 11 |
| M11 | , PQS [26], TLP [27] and NoREC [28]. |
technique |
VI RELA TED WORK page 11 |
| M12 | QPG [69] utilizes query plans to guide database state mutation for detecting bugs. |
technique |
VI RELA TED WORK page 11 |