3 ms·
I wonder how this kind of project can be tested in order to ensure the correctness of the use cases and error cases. does anyone know a resource to learn more
by nudpiedo 9y ago
I wonder how this kind of project can be tested in order to ensure the correctness of the use cases and error cases.
does anyone know a resource to learn more about testing in this kind of situation? I hope there is an alternative to just try all cases in different real hardware setups (which is the mantra at my company)
- lifty 9y agoOne very good resource are the writings of Aphyr where he tests various distributed databases: https://aphyr.com/tags/jepsen https://aphyr.com/tags/jepsen . Jepsen is the framework he wrote to test them. Next would be formal verification but you get very far by understanding the distributed db semantics and applying practical tests.
- free-ekanayaka 9y agoUnit and fuzzy-based test coverage that includes all possible edge cases is being put in place. I'd like to write a Jepsen test suite too. Hardware does not matter that much, since SQLite is pretty hardened for handling any possible hardware failure (out of memory, out of disk space, memory/disk corruption) and propagate that to client code (including dqlite). Regarding network failures (hardware-related or not), raft guards you against them, and it's formally proved.