Has anybody worked on testing Cassandra DB which is a NOSQL distributed DB? What are the important things to be taken into account while doing this?
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
What you really need to interested in is testing each component in isolation.
Integration level and above becomes more challenging to test. If you are using automated tests then these cannot rely on putting data into a database and expected it to be there straight away. There is a replication time that you would need to wait which could significantly slow down the tests. While unlikely, there are reason that this could be in excess of 30 seconds or so if the connection between databases is broken so how.
An approach that I would go down would be to focus significantly on unit testing each of the components with the data layer mocked. This will allow you to ensure that the rest of the application is functioning correctly.
This leaves you to determine if the data access layer is functioning correctly. For this a once through the application driving it from the UI will help you determine if the application is writing and reading data from the NOSQL database. You may also want to write a small set of integration test to check this automatically for you.
Essentially the main problem you will encounter is the replication of data between database. You will also need to remember that there are scenarios where someone could delete a record on one node, and someone else could edit it on another node while the deletion event has not replicated. Does you application handle this?
So, what to take into account:
Maybe later I'll remember more stuff to check ...