On Jul 2, 2012, at 6:53 PM, Vincent Massol wrote: > Hi devs, > > I've finally spent the time to measure our TPC (Test Percentage Coverage) > using Clover. > > The reports are very interesting and show where we need to spend our efforts > in testing (be them automated or manual). > > Here are the raw top level results: > =========================== > > All results: http://maven.xwiki.org/site/clover/20120701/ > > * Only Commons (this means unit tests and integration tests in the commons > repository only): 62.4% > * Only Rendering: 75.5% > * Only Platform: 36.8% > * Commons+Rendering (ie Rendering tests exercise also Commons code): 72.1% > * Commons+Rendering+Platform: 47.4% > * Commons+Rendering+Platform+Enterprise:
The value is 63.1% > > So our code is roughly tested at X% (note that 100% TPC doesn't mean the code > is working, it means each line of code has been tested in some way but it > doesn't mean all combinations have been tested!). s/X/63.1%/ I also forgot to mention that several functional tests failed, almost in each functional test module⦠Thanks -Vincent > A good value is between 70-80%. > > We're actually better than I thought (I had 50% or lower in mind) :) However > there are huge disparity with code having 90+% and code having 0% coverage > (402 classes have 0% coverage!). > > Quick high level analysis: > ==================== > > * Commons is missing quite a lot of unit tests > * Wikimodel in Rendering is dragging the TPC down, I think we were above 80% > before we included WikiModel) > * Platform has a very low level of unit tests which means it's easy to break > stuff in platform and it's hard to verify that what we add in platform works > well in general (means going through longer stabilization phases than needed) > * Our functional tests are quite effective (even though they take a very very > long time to execute) since they make the TPC go from 47% to 63% for > Commons+Rendering+Platform. The bad TPC for Platform is probably improved by > the functional tests. > > Next steps > ========= > > * IMO all developers need to look in details at the results and familiarize > themselves with the Clover reports > * Each dev should look at stuff he has coded and ensure that they have a good > level of unit tests > * All new code should get at the very minimum between 70-80% unit test > coverage. For example the new diff module in commons only has only 43.4% > coverage which is far from enough > * Spend time to automate the generation of these reports. We need a dedicated > agent for this since it "contaminates" the local repository with clovered > jars. The overall generation time is around 4-5 hours. > * Dig more around the reports to identify functional areas of XWiki missing > automated tests. These areas must be covered by manual testing at each > release. > * Decide if we want a more rigorous strategy for new code, and how to get > alerts for modules missing coverage. > > WDYT? > > Let's share your analysis in this thread so that we can brainstorm about what > to do with these reports > > Thanks > -Vincent > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

