[
https://issues.apache.org/jira/browse/CASSANDRA-10266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14743806#comment-14743806
]
Blake Eggleston commented on CASSANDRA-10266:
---------------------------------------------
I think adding random testing is a great idea. In fact, I wrote a randomized
failure simulator test for epaxos
([here|https://github.com/bdeggleston/cassandra/blob/CASSANDRA-6246-trunk/test/long/org/apache/cassandra/service/epaxos/EpaxosFuzzer.java#L48-48])
that was very useful.
That said, I'm not sure that randomized testing of lower level classes like
Rows is the best way to go. First, checking the result of random inputs is
basically going to require rewriting each of the methods in the test class to
verify their output. Second, although these methods are used all over the
place, they're pretty narrow in scope, and not too difficult to exhaustively
unit test.
I think randomized testing would be most valuable when testing how multiple
classes work together, ideally simulating the interaction between multiple
nodes. Randomized integration tests basically. For instance, testing
DataResolver with random (and repeatable) sequences of node query combinations,
messaging failures, memtable flushes, and compactions would have revealed the
bug found here, and it probably would have exposed bugs that existed in other
classes as well. The code used to verify the results would be simpler as well.
> Introduce direct unit test coverage for Rows
> --------------------------------------------
>
> Key: CASSANDRA-10266
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10266
> Project: Cassandra
> Issue Type: Improvement
> Components: Core
> Reporter: Benedict
> Assignee: Blake Eggleston
> Fix For: 3.0.0 rc1
>
>
> As with much of the codebase, we have no direct unit test coverage for
> {{Rows}}, and we should remedy this given how central it is to behaviour.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)