Re: [xwiki-devs] [VOTE] Add new check to measure quality of tests

2018-03-28 Thread Vincent Massol
If you’re curious I’ve also added some more information at 
https://github.com/STAMP-project/pitest-descartes/issues/54

ATM, and even with a time of “only” 10mn to run pitest/descartes on 
xwiki-commons, it’s still too much IMO so I’ll work on turning it off by 
default but having a job to run it on the CI.  

Let me know if you have remarks.

Thanks
-Vincent

> On 27 Mar 2018, at 20:09, Vincent Massol  wrote:
> 
> 
> 
>> On 27 Mar 2018, at 19:32, Vincent Massol  wrote:
>> 
>> FYI I’ve implemented it locally for all modules of xwiki-commons and did 
>> some build time measurements:
>> 
>> * With pitest/descartes: 37:16 minutes
>> * Without pitest/descartes 5:10 minutes
> 
> Actually I was able to reduce the time to 15:12 minutes with configuring 
> pitest with 4 threads.
> 
> Thanks
> -Vincent
> 
>> 
>> So that’s a pretty important hit….
>> 
>> So I think one strategy could be to not run pitest/descartes by default in 
>> the quality profile (i.e. have it off by default with 
>> true) and run it on the CI, from time 
>> to time, like once per day for example, or once per week.
>> 
>> Small issue: I need to find/test a way to run a crontab type of job in a 
>> Jenkins pipeline script. I know how to do in theory but I need to test it 
>> and verify it works. I still have some doubts ATM...
>> 
>> WDYT?
>> 
>> Thanks
>> -Vincent
>> 
>>> On 15 Mar 2018, at 09:30, Vincent Massol  wrote:
>>> 
>>> Hi devs,
>>> 
>>> As part of the STAMP research project, we’ve developed a new tool 
>>> (Descartes, based on Pitest) to measure the quality of tests. It generates 
>>> a mutation score for your tests, defining how good the tests are. Technical 
>>> Descartes performs some extreme mutations on the code under test (e.g. 
>>> remove content of void methods, return true for methods returning a 
>>> boolean, etc - See https://github.com/STAMP-project/pitest-descartes). If 
>>> the test continues to pass then it means it’s not killing the mutant and 
>>> thus its mutation score decreases.
>>> 
>>> So in short:
>>> * Jacoco/Clover: measure how much of the code is tested
>>> * Pitest/Descartes: measure how good the tests are
>>> 
>>> Both provide a percentage value.
>>> 
>>> I’m proposing to compute the current mutation scores for xwiki-commons and 
>>> xwiki-rendering and fail the build when new code is added that reduce the 
>>> mutation score threshold (exactly the same as our jacoco threshold and 
>>> strategy).
>>> 
>>> I consider this is an experiment to push the limit of software engineering 
>>> a bit further. I don’t know how well it’ll work or not. I propose to do the 
>>> work and test this for over 2-3 months and see how well it works or not. At 
>>> that time we can then decide whether it works or not (i.e whether the gains 
>>> it brings are more important than the problems it causes).
>>> 
>>> Here’s my +1 to try this out.
>>> 
>>> Some links:
>>> * pitest: http://pitest.org/
>>> * descartes: https://github.com/STAMP-project/pitest-descartes
>>> * http://massol.myxwiki.org/xwiki/bin/view/Blog/ControllingTestQuality
>>> * http://massol.myxwiki.org/xwiki/bin/view/Blog/MutationTestingDescartes
>>> 
>>> If you’re curious, you can see a screenshot of a mutation score report at 
>>> http://massol.myxwiki.org/xwiki/bin/download/Blog/MutationTestingDescartes/report.png
>>> 
>>> Please cast your votes.
>>> 
>>> Thanks
>>> -Vincent
>> 
> 



Re: [xwiki-devs] [VOTE] Add new check to measure quality of tests

2018-03-28 Thread Thomas Mortagne
On Wed, Mar 28, 2018 at 1:25 PM, Vincent Massol  wrote:
> If you’re curious I’ve also added some more information at 
> https://github.com/STAMP-project/pitest-descartes/issues/54
>
> ATM, and even with a time of “only” 10mn to run pitest/descartes on 
> xwiki-commons, it’s still too much IMO so I’ll work on turning it off by 
> default but having a job to run it on the CI.

Sounds good. I agree that we can't enable it all the time given the time lost.

>
> Let me know if you have remarks.
>
> Thanks
> -Vincent
>
>> On 27 Mar 2018, at 20:09, Vincent Massol  wrote:
>>
>>
>>
>>> On 27 Mar 2018, at 19:32, Vincent Massol  wrote:
>>>
>>> FYI I’ve implemented it locally for all modules of xwiki-commons and did 
>>> some build time measurements:
>>>
>>> * With pitest/descartes: 37:16 minutes
>>> * Without pitest/descartes 5:10 minutes
>>
>> Actually I was able to reduce the time to 15:12 minutes with configuring 
>> pitest with 4 threads.
>>
>> Thanks
>> -Vincent
>>
>>>
>>> So that’s a pretty important hit….
>>>
>>> So I think one strategy could be to not run pitest/descartes by default in 
>>> the quality profile (i.e. have it off by default with 
>>> true) and run it on the CI, from 
>>> time to time, like once per day for example, or once per week.
>>>
>>> Small issue: I need to find/test a way to run a crontab type of job in a 
>>> Jenkins pipeline script. I know how to do in theory but I need to test it 
>>> and verify it works. I still have some doubts ATM...
>>>
>>> WDYT?
>>>
>>> Thanks
>>> -Vincent
>>>
 On 15 Mar 2018, at 09:30, Vincent Massol  wrote:

 Hi devs,

 As part of the STAMP research project, we’ve developed a new tool 
 (Descartes, based on Pitest) to measure the quality of tests. It generates 
 a mutation score for your tests, defining how good the tests are. 
 Technical Descartes performs some extreme mutations on the code under test 
 (e.g. remove content of void methods, return true for methods returning a 
 boolean, etc - See https://github.com/STAMP-project/pitest-descartes). If 
 the test continues to pass then it means it’s not killing the mutant and 
 thus its mutation score decreases.

 So in short:
 * Jacoco/Clover: measure how much of the code is tested
 * Pitest/Descartes: measure how good the tests are

 Both provide a percentage value.

 I’m proposing to compute the current mutation scores for xwiki-commons and 
 xwiki-rendering and fail the build when new code is added that reduce the 
 mutation score threshold (exactly the same as our jacoco threshold and 
 strategy).

 I consider this is an experiment to push the limit of software engineering 
 a bit further. I don’t know how well it’ll work or not. I propose to do 
 the work and test this for over 2-3 months and see how well it works or 
 not. At that time we can then decide whether it works or not (i.e whether 
 the gains it brings are more important than the problems it causes).

 Here’s my +1 to try this out.

 Some links:
 * pitest: http://pitest.org/
 * descartes: https://github.com/STAMP-project/pitest-descartes
 * http://massol.myxwiki.org/xwiki/bin/view/Blog/ControllingTestQuality
 * http://massol.myxwiki.org/xwiki/bin/view/Blog/MutationTestingDescartes

 If you’re curious, you can see a screenshot of a mutation score report at 
 http://massol.myxwiki.org/xwiki/bin/download/Blog/MutationTestingDescartes/report.png

 Please cast your votes.

 Thanks
 -Vincent
>>>
>>
>



-- 
Thomas Mortagne


Re: [xwiki-devs] Add a REST API to XWiki Notifications

2018-03-28 Thread nikos delis
> For now, we are only using a pull model for notifications in the wiki.
> Implementing a push model on top of that would be indeed a cool idea and
> cover more use cases, but I'm having doubts about the scope of this and
> the REST API project ; WDYT ?


First of all sorry for the late,in the last project i worked on we made a
Rest API ,we had  a push notification  model and something like pull
notification model because we created it with firebase notifications and i
think that is not the most completed way.
I think that push model it must be from WebSocket that is more complexity
but is the most completed way.I dont know how much computing resource
"eats" Websocket because i think that must be connected with the app the
whole time.

Something else that i want to ask i have do an acc to try Xwiki platform
and to see how it works the existing one notification system but  in my
bell i dont have notifications option i see instruction to select from my
profile but same...
The notification system that exist is on stable mode?

Nick


[xwiki-devs] [XWiki Day] BFD#171

2018-03-28 Thread Alex Cotiugă
Hello devs,

This Thursday is BFD#171:
http://dev.xwiki.org/xwiki/bin/view/Community/XWikiDays#HBugfixingdays

Our current status is:
* -47 bugs over 120 days (4 months), i.e. we need to close 47 bugs to have
created bugs # = closed bugs #
* -96 bugs over 365 days (1 year)
* -111 bugs over 500 days (between 1 and 2 years)
* -313 bugs over 1600 days (4.3 years)
* -720 bugs since the beginning of XWiki

See https://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=10352


Here's the BFD#171 dashboard to follow the progress during the day:
https://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=14093

Happy Bug Fixing Day,
Alex