> On 14 May 2018, at 12:28, Marius Dumitru Florea 
> <[email protected]> wrote:
> 
> On Thu, May 10, 2018 at 10:03 PM, Vincent Massol <[email protected]> wrote:
> 
>> Hi devs,
>> 
>> Our current Test coverage strategy is to fail the build when new code
>> added results in a coverage lower than the threshold for the module, using
>> jacoco.
>> 
>> This has 2 limitations causing our global TPC to go down from time to time
>> (see https://markmail.org/message/hqumkdiz7jm76ya6 ).
>> 
>> Thus I’d like to propose the following addition to our strategy:
>> 
>> * We already have a jenkins pipeline to automatically compute the full TPC
>> using Clover. See http://dev.xwiki.org/xwiki/bin/view/Community/Testing#
>> HUsingClover2BJenkins
>> * Make it run more often (it’s currently executed once per month, see
>> http://ci.xwiki.org/view/Tools/job/Clover/). Takes about 5-6 hours to
>> execute. Thus we could run it once per week or even once per day during the
>> night.
>> * Add some groovy logic in the pipeline to perform an analysis after the
>> Clover report has been generated. Perform 2 checks by comparing the
>> previous report with the one that just executed:
>> 
> 
> 
>> ** Find new packages introduced that have a TPC < the average computed TPC
>> 
> 
> What is the average computed TPC currently?

It’s about 70%, see for example:
http://maven.xwiki.org/site/clover/20180511/clover-commons+rendering+platform-20180511-0147/dashboard.html

> 
> 
>> ** Find packages and/or files having a TPC lower than the previous TPC
>> ** Find removed packages that had a TPC higher than the average computed
>> TPC
>> 
> 
> I would add:
> 
> ** find the packages that have the TPC higher than what is declared in the
> pom (because we don't always update the TPC value declared in the pom when
> we refactor the code or when we add new tests)

Yes I agree. We should do that but not in the pipeline for the global coverage. 
We should have another pipeline for this and update the pom.xml files in it.

> 
>> * Save a report in the directory for the Clover report at
>> http://ci.xwiki.org/view/Tools/job/Clover/
>> * For all failures, send an email to [email protected] with details
>> and a link to the saved report
>> * Ideally, and if we can do it, call the github API to find the authors of
>> commits for those packages and add them in the report. Examples of APIs we
>> could use:
>> ** https://api.github.com/repos/xwiki/xwiki-platform/commits?
>> since=2018-05-07T00:00:00Z&until=2018-05-10T00:00:00Z (there’s a path
>> parameter that could be used to filter but I don’t think it’ll work
>> ** https://github.com/xwiki/xwiki-platform/compare/master@
>> %7B2018-05-07%7D...master@%7B2018-05-10%7D (the committers/authors need
>> to be extracted from the HTML which is a bit fragile)
>> * Add a step in the Release process to ensure that the global TPC has not
>> been lowered. This would be a way to ensure we pay attention to that and
>> fix it when we lower it. We would need to tune this to find something that
>> helps keep the TPC increasing while not putting too much pressure at the
>> same time on the release date. It doesn’t have to be in the release process
>> but we need some checkpoint to make sure we look at it and that all devs
>> fix the tests when they lower the global TPC, or at the very least that an
>> analysis is done in case where it’s hard to keep the TPC (for example,
>> removing existing code that had a lot of tests will lower the TPC ;)).
>> 
>> WDYT?
>> 
>> As a dev, would you be willing to pay attention to not lower the global
>> TPC and work to fix it when it happens?

@Marius: what about this question? Would you be ok with it? :)

Thanks
-Vincent

>> 
>> Thanks
>> -Vincent

Reply via email to