Symbolic execution of NoSQL applications using versioned schemas

Hendrik Winkelmann, Herbert Kuchen · 2021

NoSQL databases can contain complex and heterogeneous data entries in a non-normalized fashion. Contrary to relational databases, often an explicit schema is optional and differently structured entities can be expected in the same data collection. If an explicit schema is absent, the consuming applications are forced to extract and make sense of the implicit schema without the support of the database itself. Automatic tools for systematic test case-generation currently do not support validating this error-prone procedure. To address this issue, we propose an approach applicable to NoSQL databases. We furthermore present a prototypical glass-box test generation tool, JaSoN, an extension of Symbolic Pathfinder for Java. JaSoN generates test cases for applications using MongoDB and accounts for different schema versions for entities of the same type. For this, the real MongoDB instance is replaced with a symbolic data store by mocking relevant MongoDB interfaces and combining this mock with custom Java bytecode.

Read the paper · More papers on PaperTik