I've done a few runs of our coverage reports this morning with different
configurations trying to analyze the effect spark-gremlin has on our test
coverage. Why spark-gremlin? Because it takes about 50% of our build time
right now and, as such, seemed like a good place to start thinking about
how to make improvements to test performance. I didn't not run "integration
tests" in any of my analysis, as I'm mostly interested in figuring out how
to make "unit tests" faster without losing basic coverage there.

Some things I noted:

+ spark-gremlin unit tests offer good coverage of spark-gremlin itself at
about 72% line coverage and 76% branch coverage
+ the tests on spark-gremlin only add about 3% more branch coverage and 2%
more line coverage to gremlin-core. I'm not sure what I expected to find,
but that seems pretty small to me.
+ Removing the groovy or java "process suite" makes almost no difference in
coverage - less than 1%
+ The longest run tests are the spark "io" tests,
SparkGraphComputerProcessTest and SparkGraphComputerGroovyProcessTest.

Marko, I think you would be best to speak to the implications of this
suggestion, but if we make these longer run tests in gremlin-spark into
integration tests we cut the speed of the build by roughly 40%. If we do
that we sacrifice the minimal coverage we get in gremlin-core and our
overall coverage of spark-gremlin drops by only 3% on lines of code and
about 7% on branch coverage, so there is not a lot of loss there.

If a change goes into gremlin-core, then it would be smart to run: "mvn
clean install && mvn verify -pl gremlin-spark
-DskipIntegrationTests=false". we would look to catch that in pull requests
during code review.

If we go with this approach, I could do some further analysis on
spark-gremlin and determine if some new tests could be added to gain back
the lost coverage via unit tests (that I presume will require mocking) so
that we can get those few percentage points back (and maybe more).

Anyway, I'll assume lazy consensus on this in 72 hours (Monday, October 31,
2016, 2:30pm) and move forward if there are no objections.

Reply via email to