[ANN] Test Coverage with Hapao

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

[ANN] Test Coverage with Hapao

abergel
Dear all,

We are happy to release Hapao2 for Pharo. Ricard Jacas and Alejandro Infante put quite some work on Spy2 (an über cool profiling framework for Pharo) and Hapao2.
Hapao2 is about assessing the test coverage of your code and is a major revamp of Hapao1, which was presented a couple of years ago by Vanessa.
Hapao2 does not only list covered and uncovered methods, as most test coverage tool on Earth will do. Hapao gives a great visualization to easily navigate in your code, assess its complexity, and give you a great visual output telling its coverage.

You need Roassal in your image:

Gofer new smalltalkhubUser: 'ObjectProfile'
    project: 'Roassal2';
    package: 'ConfigurationOfRoassal2';
    load.
(Smalltalk at: #ConfigurationOfRoassal2) load


and you need S2py:
MCHttpRepository
location: 'http://smalltalkhub.com/mc/ObjectProfile/S2py/main'
user: ''
password: ''


New entries will appear in the world menu:


You can run the test coverage on :
 - the class classes you have modified,
 - on a particular
 - on a particular class category
 - on the last class categories you have modified
 - on the last packages you have modified

Here is a portion of a large coverage:


A technical description of Hapao may be found on http://bergel.eu/download/papers/Berg12c-HapaoSCP.pdf

We are daily using Hapao to help us understand our tests. 

Cheers,
Ricardo, Alejandro & Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



Reply | Threaded
Open this post in threaded view
|

Re: [Moose-dev] [ANN] Test Coverage with Hapao

Tudor Girba-2
Great!

I will go over it more thoroughly in the following weeks and get back to you with feedback.

Cheers,
Doru



On Tue, Sep 16, 2014 at 6:03 PM, Alexandre Bergel <[hidden email]> wrote:
Dear all,

We are happy to release Hapao2 for Pharo. Ricard Jacas and Alejandro Infante put quite some work on Spy2 (an über cool profiling framework for Pharo) and Hapao2.
Hapao2 is about assessing the test coverage of your code and is a major revamp of Hapao1, which was presented a couple of years ago by Vanessa.
Hapao2 does not only list covered and uncovered methods, as most test coverage tool on Earth will do. Hapao gives a great visualization to easily navigate in your code, assess its complexity, and give you a great visual output telling its coverage.

You need Roassal in your image:

Gofer new smalltalkhubUser: 'ObjectProfile'
    project: 'Roassal2';
    package: 'ConfigurationOfRoassal2';
    load.
(Smalltalk at: #ConfigurationOfRoassal2) load


and you need S2py:
MCHttpRepository
location: 'http://smalltalkhub.com/mc/ObjectProfile/S2py/main'
user: ''
password: ''


New entries will appear in the world menu:


You can run the test coverage on :
 - the class classes you have modified,
 - on a particular
 - on a particular class category
 - on the last class categories you have modified
 - on the last packages you have modified

Here is a portion of a large coverage:


A technical description of Hapao may be found on http://bergel.eu/download/papers/Berg12c-HapaoSCP.pdf

We are daily using Hapao to help us understand our tests. 

Cheers,
Ricardo, Alejandro & Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev




--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: [Moose-dev] [ANN] Test Coverage with Hapao

abergel
Excellent!

Alexandre

Le 16-09-2014 à 16:15, Tudor Girba <[hidden email]> a écrit :

Great!

I will go over it more thoroughly in the following weeks and get back to you with feedback.

Cheers,
Doru



On Tue, Sep 16, 2014 at 6:03 PM, Alexandre Bergel <[hidden email]> wrote:
Dear all,

We are happy to release Hapao2 for Pharo. Ricard Jacas and Alejandro Infante put quite some work on Spy2 (an über cool profiling framework for Pharo) and Hapao2.
Hapao2 is about assessing the test coverage of your code and is a major revamp of Hapao1, which was presented a couple of years ago by Vanessa.
Hapao2 does not only list covered and uncovered methods, as most test coverage tool on Earth will do. Hapao gives a great visualization to easily navigate in your code, assess its complexity, and give you a great visual output telling its coverage.

You need Roassal in your image:

Gofer new smalltalkhubUser: 'ObjectProfile'
    project: 'Roassal2';
    package: 'ConfigurationOfRoassal2';
    load.
(Smalltalk at: #ConfigurationOfRoassal2) load


and you need S2py:
MCHttpRepository
location: 'http://smalltalkhub.com/mc/ObjectProfile/S2py/main'
user: ''
password: ''


New entries will appear in the world menu:
<Screen Shot 2014-09-16 at 11.49.06 AM.png>

You can run the test coverage on :
 - the class classes you have modified,
 - on a particular
 - on a particular class category
 - on the last class categories you have modified
 - on the last packages you have modified

Here is a portion of a large coverage:

<Screen Shot 2014-09-16 at 12.00.11 PM.png>

A technical description of Hapao may be found on http://bergel.eu/download/papers/Berg12c-HapaoSCP.pdf

We are daily using Hapao to help us understand our tests. 

Cheers,
Ricardo, Alejandro & Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev




--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: [Moose-dev] [ANN] Test Coverage with Hapao

Maximiliano Taborda
Hi Alexandre,

I want to try Hapao2 to check the coverage level of Chalten, but it's not working (at least for me).
I load Roassal2 and S2py in a fresh 3.0 image like you say and the new entries appear in the world menu, but the only option that partially works is the one for a particular class (Hapao @ Class ...) and after run all the tests (I see the progress showing that) a MNU is raised in the method #addMethodEdges:scope:view: of Hapa2 class because RTEdgeBuilder is not loaded.

So, could you tell me what I missed please? I need to load another thing, which?, at least the package which defines RTEdgeBuilder.

Thanks for your help.

Regards.
Maxi

2014-09-16 20:10 GMT-03:00 Alexandre Bergel <[hidden email]>:
Excellent!

Alexandre

Le 16-09-2014 à 16:15, Tudor Girba <[hidden email]> a écrit :

Great!

I will go over it more thoroughly in the following weeks and get back to you with feedback.

Cheers,
Doru



On Tue, Sep 16, 2014 at 6:03 PM, Alexandre Bergel <[hidden email]> wrote:
Dear all,

We are happy to release Hapao2 for Pharo. Ricard Jacas and Alejandro Infante put quite some work on Spy2 (an über cool profiling framework for Pharo) and Hapao2.
Hapao2 is about assessing the test coverage of your code and is a major revamp of Hapao1, which was presented a couple of years ago by Vanessa.
Hapao2 does not only list covered and uncovered methods, as most test coverage tool on Earth will do. Hapao gives a great visualization to easily navigate in your code, assess its complexity, and give you a great visual output telling its coverage.

You need Roassal in your image:

Gofer new smalltalkhubUser: 'ObjectProfile'
    project: 'Roassal2';
    package: 'ConfigurationOfRoassal2';
    load.
(Smalltalk at: #ConfigurationOfRoassal2) load


and you need S2py:
MCHttpRepository
location: 'http://smalltalkhub.com/mc/ObjectProfile/S2py/main'
user: ''
password: ''


New entries will appear in the world menu:
<Screen Shot 2014-09-16 at 11.49.06 AM.png>

You can run the test coverage on :
 - the class classes you have modified,
 - on a particular
 - on a particular class category
 - on the last class categories you have modified
 - on the last packages you have modified

Here is a portion of a large coverage:

<Screen Shot 2014-09-16 at 12.00.11 PM.png>

A technical description of Hapao may be found on http://bergel.eu/download/papers/Berg12c-HapaoSCP.pdf

We are daily using Hapao to help us understand our tests. 

Cheers,
Ricardo, Alejandro & Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev




--

"Every thing has its own flow"

Reply | Threaded
Open this post in threaded view
|

Re: [Moose-dev] [ANN] Test Coverage with Hapao

Erwan Douaille


2014-09-25 1:24 GMT+02:00 Maximiliano Taborda <[hidden email]>:
Hi Alexandre,

I want to try Hapao2 to check the coverage level of Chalten, but it's not working (at least for me).
I load Roassal2 and S2py in a fresh 3.0 image like you say and the new entries appear in the world menu, but the only option that partially works is the one for a particular class (Hapao @ Class ...) and after run all the tests (I see the progress showing that) a MNU is raised in the method #addMethodEdges:scope:view: of Hapa2 class because RTEdgeBuilder is not loaded.

So, could you tell me what I missed please? I need to load another thing, which?, at least the package which defines RTEdgeBuilder.


Same here.
We load manually the Roassal packages and this error disapear. (ConfigurationOfRoassal2 load, is that correct ?)
There is also, S2pyDebugger missing dependencies.

After this problem we encounter a new error: Hapao2Method didlError, TestResult>> ifEmpty: DNU.

On latest Pharo 3.0 image.

Thanks for helping :)
 
Thanks for your help.

Regards.
Maxi

2014-09-16 20:10 GMT-03:00 Alexandre Bergel <[hidden email]>:
Excellent!

Alexandre

Le 16-09-2014 à 16:15, Tudor Girba <[hidden email]> a écrit :

Great!

I will go over it more thoroughly in the following weeks and get back to you with feedback.

Cheers,
Doru



On Tue, Sep 16, 2014 at 6:03 PM, Alexandre Bergel <[hidden email]> wrote:
Dear all,

We are happy to release Hapao2 for Pharo. Ricard Jacas and Alejandro Infante put quite some work on Spy2 (an über cool profiling framework for Pharo) and Hapao2.
Hapao2 is about assessing the test coverage of your code and is a major revamp of Hapao1, which was presented a couple of years ago by Vanessa.
Hapao2 does not only list covered and uncovered methods, as most test coverage tool on Earth will do. Hapao gives a great visualization to easily navigate in your code, assess its complexity, and give you a great visual output telling its coverage.

You need Roassal in your image:

Gofer new smalltalkhubUser: 'ObjectProfile'
    project: 'Roassal2';
    package: 'ConfigurationOfRoassal2';
    load.
(Smalltalk at: #ConfigurationOfRoassal2) load


and you need S2py:
MCHttpRepository
location: 'http://smalltalkhub.com/mc/ObjectProfile/S2py/main'
user: ''
password: ''


New entries will appear in the world menu:
<Screen Shot 2014-09-16 at 11.49.06 AM.png>

You can run the test coverage on :
 - the class classes you have modified,
 - on a particular
 - on a particular class category
 - on the last class categories you have modified
 - on the last packages you have modified

Here is a portion of a large coverage:

<Screen Shot 2014-09-16 at 12.00.11 PM.png>

A technical description of Hapao may be found on http://bergel.eu/download/papers/Berg12c-HapaoSCP.pdf

We are daily using Hapao to help us understand our tests. 

Cheers,
Ricardo, Alejandro & Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev




--

"Every thing has its own flow"




--
Best regards,

Douaille Erwan <[hidden email]>
Reply | Threaded
Open this post in threaded view
|

Re: [Moose-dev] [ANN] Test Coverage with Hapao

abergel
In reply to this post by Maximiliano Taborda
Hi!

Sorry, we somehow slightly messed up with the configurations.
I just took the last Pharo 4.0, and loaded Roassal2:

-=-=-=-=-=-=-=-=-=-=-=-=
Gofer new smalltalkhubUser: 'ObjectProfile'
    project: 'Roassal2';
    package: 'ConfigurationOfRoassal2';
    load.
(Smalltalk at: #ConfigurationOfRoassal2) loadDevelopment
-=-=-=-=-=-=-=-=-=-=-=-=

Then I loaded S2py:
-=-=-=-=-=-=-=-=-=-=-=-=
Gofer new smalltalkhubUser: 'ObjectProfile'
    project: 'S2py';
    package: 'S2py';
    load.
-=-=-=-=-=-=-=-=-=-=-=-=

It works here.
Can you confirm?

Sorry for having taken long to answer...

Cheers,
Alexandre

On Sep 24, 2014, at 8:24 PM, Maximiliano Taborda <[hidden email]> wrote:

> Hi Alexandre,
>
> I want to try Hapao2 to check the coverage level of Chalten, but it's not working (at least for me).
> I load Roassal2 and S2py in a fresh 3.0 image like you say and the new entries appear in the world menu, but the only option that partially works is the one for a particular class (Hapao @ Class ...) and after run all the tests (I see the progress showing that) a MNU is raised in the method #addMethodEdges:scope:view: of Hapa2 class because RTEdgeBuilder is not loaded.
>
> So, could you tell me what I missed please? I need to load another thing, which?, at least the package which defines RTEdgeBuilder.
>
> Thanks for your help.
>
> Regards.
> Maxi
>
> 2014-09-16 20:10 GMT-03:00 Alexandre Bergel <[hidden email]>:
> Excellent!
>
> Alexandre
>
> Le 16-09-2014 à 16:15, Tudor Girba <[hidden email]> a écrit :
>
>> Great!
>>
>> I will go over it more thoroughly in the following weeks and get back to you with feedback.
>>
>> Cheers,
>> Doru
>>
>>
>>
>> On Tue, Sep 16, 2014 at 6:03 PM, Alexandre Bergel <[hidden email]> wrote:
>> Dear all,
>>
>> We are happy to release Hapao2 for Pharo. Ricard Jacas and Alejandro Infante put quite some work on Spy2 (an über cool profiling framework for Pharo) and Hapao2.
>> Hapao2 is about assessing the test coverage of your code and is a major revamp of Hapao1, which was presented a couple of years ago by Vanessa.
>> Hapao2 does not only list covered and uncovered methods, as most test coverage tool on Earth will do. Hapao gives a great visualization to easily navigate in your code, assess its complexity, and give you a great visual output telling its coverage.
>>
>> You need Roassal in your image:
>>
>> Gofer new smalltalkhubUser: 'ObjectProfile'
>>     project: 'Roassal2';
>>     package: 'ConfigurationOfRoassal2';
>>     load.
>> (Smalltalk at: #ConfigurationOfRoassal2) load
>>
>>
>> and you need S2py:
>> MCHttpRepository
>> location: 'http://smalltalkhub.com/mc/ObjectProfile/S2py/main'
>> user: ''
>> password: ''
>>
>>
>> New entries will appear in the world menu:
>> <Screen Shot 2014-09-16 at 11.49.06 AM.png>
>>
>> You can run the test coverage on :
>>  - the class classes you have modified,
>>  - on a particular
>>  - on a particular class category
>>  - on the last class categories you have modified
>>  - on the last packages you have modified
>>
>> Here is a portion of a large coverage:
>>
>> <Screen Shot 2014-09-16 at 12.00.11 PM.png>
>>
>> A technical description of Hapao may be found on http://bergel.eu/download/papers/Berg12c-HapaoSCP.pdf
>>
>> We are daily using Hapao to help us understand our tests.
>>
>> Cheers,
>> Ricardo, Alejandro & Alexandre
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>>
>>
>>
>> --
>> www.tudorgirba.com
>>
>> "Every thing has its own flow"
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




Reply | Threaded
Open this post in threaded view
|

Re: [Moose-dev] [ANN] Test Coverage with Hapao

Maximiliano Taborda
Hi Alexandre.

Yes, now it works. Thank you. But, the box with the legends don't show very well. Like in the attached image:

Imágenes integradas 1

And, a question. Is there a way to exclude some methods from the analysis? I have some class methods, used for initialize some singletons for example, that I do not want to be considered for coverage.

Regards.
Maxi

2014-10-02 18:39 GMT-03:00 Alexandre Bergel <[hidden email]>:
Hi!

Sorry, we somehow slightly messed up with the configurations.
I just took the last Pharo 4.0, and loaded Roassal2:

-=-=-=-=-=-=-=-=-=-=-=-=
Gofer new smalltalkhubUser: 'ObjectProfile'
    project: 'Roassal2';
    package: 'ConfigurationOfRoassal2';
    load.
(Smalltalk at: #ConfigurationOfRoassal2) loadDevelopment
-=-=-=-=-=-=-=-=-=-=-=-=

Then I loaded S2py:
-=-=-=-=-=-=-=-=-=-=-=-=
Gofer new smalltalkhubUser: 'ObjectProfile'
    project: 'S2py';
    package: 'S2py';
    load.
-=-=-=-=-=-=-=-=-=-=-=-=

It works here.
Can you confirm?

Sorry for having taken long to answer...

Cheers,
Alexandre

On Sep 24, 2014, at 8:24 PM, Maximiliano Taborda <[hidden email]> wrote:

> Hi Alexandre,
>
> I want to try Hapao2 to check the coverage level of Chalten, but it's not working (at least for me).
> I load Roassal2 and S2py in a fresh 3.0 image like you say and the new entries appear in the world menu, but the only option that partially works is the one for a particular class (Hapao @ Class ...) and after run all the tests (I see the progress showing that) a MNU is raised in the method #addMethodEdges:scope:view: of Hapa2 class because RTEdgeBuilder is not loaded.
>
> So, could you tell me what I missed please? I need to load another thing, which?, at least the package which defines RTEdgeBuilder.
>
> Thanks for your help.
>
> Regards.
> Maxi
>
> 2014-09-16 20:10 GMT-03:00 Alexandre Bergel <[hidden email]>:
> Excellent!
>
> Alexandre
>
> Le 16-09-2014 à 16:15, Tudor Girba <[hidden email]> a écrit :
>
>> Great!
>>
>> I will go over it more thoroughly in the following weeks and get back to you with feedback.
>>
>> Cheers,
>> Doru
>>
>>
>>
>> On Tue, Sep 16, 2014 at 6:03 PM, Alexandre Bergel <[hidden email]> wrote:
>> Dear all,
>>
>> We are happy to release Hapao2 for Pharo. Ricard Jacas and Alejandro Infante put quite some work on Spy2 (an über cool profiling framework for Pharo) and Hapao2.
>> Hapao2 is about assessing the test coverage of your code and is a major revamp of Hapao1, which was presented a couple of years ago by Vanessa.
>> Hapao2 does not only list covered and uncovered methods, as most test coverage tool on Earth will do. Hapao gives a great visualization to easily navigate in your code, assess its complexity, and give you a great visual output telling its coverage.
>>
>> You need Roassal in your image:
>>
>> Gofer new smalltalkhubUser: 'ObjectProfile'
>>     project: 'Roassal2';
>>     package: 'ConfigurationOfRoassal2';
>>     load.
>> (Smalltalk at: #ConfigurationOfRoassal2) load
>>
>>
>> and you need S2py:
>> MCHttpRepository
>>      location: 'http://smalltalkhub.com/mc/ObjectProfile/S2py/main'
>>      user: ''
>>      password: ''
>>
>>
>> New entries will appear in the world menu:
>> <Screen Shot 2014-09-16 at 11.49.06 AM.png>
>>
>> You can run the test coverage on :
>>  - the class classes you have modified,
>>  - on a particular
>>  - on a particular class category
>>  - on the last class categories you have modified
>>  - on the last packages you have modified
>>
>> Here is a portion of a large coverage:
>>
>> <Screen Shot 2014-09-16 at 12.00.11 PM.png>
>>
>> A technical description of Hapao may be found on http://bergel.eu/download/papers/Berg12c-HapaoSCP.pdf
>>
>> We are daily using Hapao to help us understand our tests.
>>
>> Cheers,
>> Ricardo, Alejandro & Alexandre
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>>
>>
>>
>> --
>> www.tudorgirba.com
>>
>> "Every thing has its own flow"
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





Reply | Threaded
Open this post in threaded view
|

Re: [Moose-dev] [ANN] Test Coverage with Hapao

abergel
Hi Maximiliano!

The legend problem is now fixed. Can you double check please?

What would be the best way to exclude some methods? This question slightly rephrased: how do you run Hapao? Programmatically or using the World menu?

Cheers,
Alexandre


On Oct 2, 2014, at 11:34 PM, Maximiliano Taborda <[hidden email]> wrote:

> Hi Alexandre.
>
> Yes, now it works. Thank you. But, the box with the legends don't show very well. Like in the attached image:
>
> <RelativeDate.png>
>
> And, a question. Is there a way to exclude some methods from the analysis? I have some class methods, used for initialize some singletons for example, that I do not want to be considered for coverage.
>
> Regards.
> Maxi
>
> 2014-10-02 18:39 GMT-03:00 Alexandre Bergel <[hidden email]>:
> Hi!
>
> Sorry, we somehow slightly messed up with the configurations.
> I just took the last Pharo 4.0, and loaded Roassal2:
>
> -=-=-=-=-=-=-=-=-=-=-=-=
> Gofer new smalltalkhubUser: 'ObjectProfile'
>     project: 'Roassal2';
>     package: 'ConfigurationOfRoassal2';
>     load.
> (Smalltalk at: #ConfigurationOfRoassal2) loadDevelopment
> -=-=-=-=-=-=-=-=-=-=-=-=
>
> Then I loaded S2py:
> -=-=-=-=-=-=-=-=-=-=-=-=
> Gofer new smalltalkhubUser: 'ObjectProfile'
>     project: 'S2py';
>     package: 'S2py';
>     load.
> -=-=-=-=-=-=-=-=-=-=-=-=
>
> It works here.
> Can you confirm?
>
> Sorry for having taken long to answer...
>
> Cheers,
> Alexandre
>
> On Sep 24, 2014, at 8:24 PM, Maximiliano Taborda <[hidden email]> wrote:
>
> > Hi Alexandre,
> >
> > I want to try Hapao2 to check the coverage level of Chalten, but it's not working (at least for me).
> > I load Roassal2 and S2py in a fresh 3.0 image like you say and the new entries appear in the world menu, but the only option that partially works is the one for a particular class (Hapao @ Class ...) and after run all the tests (I see the progress showing that) a MNU is raised in the method #addMethodEdges:scope:view: of Hapa2 class because RTEdgeBuilder is not loaded.
> >
> > So, could you tell me what I missed please? I need to load another thing, which?, at least the package which defines RTEdgeBuilder.
> >
> > Thanks for your help.
> >
> > Regards.
> > Maxi
> >
> > 2014-09-16 20:10 GMT-03:00 Alexandre Bergel <[hidden email]>:
> > Excellent!
> >
> > Alexandre
> >
> > Le 16-09-2014 à 16:15, Tudor Girba <[hidden email]> a écrit :
> >
> >> Great!
> >>
> >> I will go over it more thoroughly in the following weeks and get back to you with feedback.
> >>
> >> Cheers,
> >> Doru
> >>
> >>
> >>
> >> On Tue, Sep 16, 2014 at 6:03 PM, Alexandre Bergel <[hidden email]> wrote:
> >> Dear all,
> >>
> >> We are happy to release Hapao2 for Pharo. Ricard Jacas and Alejandro Infante put quite some work on Spy2 (an über cool profiling framework for Pharo) and Hapao2.
> >> Hapao2 is about assessing the test coverage of your code and is a major revamp of Hapao1, which was presented a couple of years ago by Vanessa.
> >> Hapao2 does not only list covered and uncovered methods, as most test coverage tool on Earth will do. Hapao gives a great visualization to easily navigate in your code, assess its complexity, and give you a great visual output telling its coverage.
> >>
> >> You need Roassal in your image:
> >>
> >> Gofer new smalltalkhubUser: 'ObjectProfile'
> >>     project: 'Roassal2';
> >>     package: 'ConfigurationOfRoassal2';
> >>     load.
> >> (Smalltalk at: #ConfigurationOfRoassal2) load
> >>
> >>
> >> and you need S2py:
> >> MCHttpRepository
> >>      location: 'http://smalltalkhub.com/mc/ObjectProfile/S2py/main'
> >>      user: ''
> >>      password: ''
> >>
> >>
> >> New entries will appear in the world menu:
> >> <Screen Shot 2014-09-16 at 11.49.06 AM.png>
> >>
> >> You can run the test coverage on :
> >>  - the class classes you have modified,
> >>  - on a particular
> >>  - on a particular class category
> >>  - on the last class categories you have modified
> >>  - on the last packages you have modified
> >>
> >> Here is a portion of a large coverage:
> >>
> >> <Screen Shot 2014-09-16 at 12.00.11 PM.png>
> >>
> >> A technical description of Hapao may be found on http://bergel.eu/download/papers/Berg12c-HapaoSCP.pdf
> >>
> >> We are daily using Hapao to help us understand our tests.
> >>
> >> Cheers,
> >> Ricardo, Alejandro & Alexandre
> >> --
> >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> >> Alexandre Bergel  http://www.bergel.eu
> >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> Moose-dev mailing list
> >> [hidden email]
> >> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >>
> >>
> >>
> >>
> >> --
> >> www.tudorgirba.com
> >>
> >> "Every thing has its own flow"
> >
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




Reply | Threaded
Open this post in threaded view
|

Re: [Moose-dev] [ANN] Test Coverage with Hapao

Maximiliano Taborda
Hi Alexandre.

Perfect about the legends problem. Thanks.

And about the best way to exclude some methods, I don't know what it is. I use the world menu to run Hapao. In fact, I made a new entry in the world menu that fit with my needs, that is:
     - excludes all initialization methods, i.e. selectors named like #initialize*
     - excludes all the #new methods
     - excludes all methods that are defined in a protocol named as private, i.e. 'accessing - private'
This new entry checks the coverage over a class/es hierarchy and, also,
     - run only the tests related to this hierarchy
     - not take into account the abstract methods when computing the covered percentage; if I have an abstract method without a concrete one implemented in all the subclasses, I have a design error, so my real problem is the absence of the concrete method and not the absence of the test.

If you are interested I leave you attached to this email the code related to this entry. Maybe is not the best way to implement what I need, but is a quickly one.

Congratulations for this tool, is great to easily visualize what portion of my model are not covered by tests.

Regards.
Maximiliano



2014-10-05 22:27 GMT-03:00 Alexandre Bergel <[hidden email]>:
Hi Maximiliano!

The legend problem is now fixed. Can you double check please?

What would be the best way to exclude some methods? This question slightly rephrased: how do you run Hapao? Programmatically or using the World menu?

Cheers,
Alexandre


On Oct 2, 2014, at 11:34 PM, Maximiliano Taborda <[hidden email]> wrote:

> Hi Alexandre.
>
> Yes, now it works. Thank you. But, the box with the legends don't show very well. Like in the attached image:
>
> <RelativeDate.png>
>
> And, a question. Is there a way to exclude some methods from the analysis? I have some class methods, used for initialize some singletons for example, that I do not want to be considered for coverage.
>
> Regards.
> Maxi
>
> 2014-10-02 18:39 GMT-03:00 Alexandre Bergel <[hidden email]>:
> Hi!
>
> Sorry, we somehow slightly messed up with the configurations.
> I just took the last Pharo 4.0, and loaded Roassal2:
>
> -=-=-=-=-=-=-=-=-=-=-=-=
> Gofer new smalltalkhubUser: 'ObjectProfile'
>     project: 'Roassal2';
>     package: 'ConfigurationOfRoassal2';
>     load.
> (Smalltalk at: #ConfigurationOfRoassal2) loadDevelopment
> -=-=-=-=-=-=-=-=-=-=-=-=
>
> Then I loaded S2py:
> -=-=-=-=-=-=-=-=-=-=-=-=
> Gofer new smalltalkhubUser: 'ObjectProfile'
>     project: 'S2py';
>     package: 'S2py';
>     load.
> -=-=-=-=-=-=-=-=-=-=-=-=
>
> It works here.
> Can you confirm?
>
> Sorry for having taken long to answer...
>
> Cheers,
> Alexandre
>
> On Sep 24, 2014, at 8:24 PM, Maximiliano Taborda <[hidden email]> wrote:
>
> > Hi Alexandre,
> >
> > I want to try Hapao2 to check the coverage level of Chalten, but it's not working (at least for me).
> > I load Roassal2 and S2py in a fresh 3.0 image like you say and the new entries appear in the world menu, but the only option that partially works is the one for a particular class (Hapao @ Class ...) and after run all the tests (I see the progress showing that) a MNU is raised in the method #addMethodEdges:scope:view: of Hapa2 class because RTEdgeBuilder is not loaded.
> >
> > So, could you tell me what I missed please? I need to load another thing, which?, at least the package which defines RTEdgeBuilder.
> >
> > Thanks for your help.
> >
> > Regards.
> > Maxi
> >
> > 2014-09-16 20:10 GMT-03:00 Alexandre Bergel <[hidden email]>:
> > Excellent!
> >
> > Alexandre
> >
> > Le 16-09-2014 à 16:15, Tudor Girba <[hidden email]> a écrit :
> >
> >> Great!
> >>
> >> I will go over it more thoroughly in the following weeks and get back to you with feedback.
> >>
> >> Cheers,
> >> Doru
> >>
> >>
> >>
> >> On Tue, Sep 16, 2014 at 6:03 PM, Alexandre Bergel <[hidden email]> wrote:
> >> Dear all,
> >>
> >> We are happy to release Hapao2 for Pharo. Ricard Jacas and Alejandro Infante put quite some work on Spy2 (an über cool profiling framework for Pharo) and Hapao2.
> >> Hapao2 is about assessing the test coverage of your code and is a major revamp of Hapao1, which was presented a couple of years ago by Vanessa.
> >> Hapao2 does not only list covered and uncovered methods, as most test coverage tool on Earth will do. Hapao gives a great visualization to easily navigate in your code, assess its complexity, and give you a great visual output telling its coverage.
> >>
> >> You need Roassal in your image:
> >>
> >> Gofer new smalltalkhubUser: 'ObjectProfile'
> >>     project: 'Roassal2';
> >>     package: 'ConfigurationOfRoassal2';
> >>     load.
> >> (Smalltalk at: #ConfigurationOfRoassal2) load
> >>
> >>
> >> and you need S2py:
> >> MCHttpRepository
> >>      location: 'http://smalltalkhub.com/mc/ObjectProfile/S2py/main'
> >>      user: ''
> >>      password: ''
> >>
> >>
> >> New entries will appear in the world menu:
> >> <Screen Shot 2014-09-16 at 11.49.06 AM.png>
> >>
> >> You can run the test coverage on :
> >>  - the class classes you have modified,
> >>  - on a particular
> >>  - on a particular class category
> >>  - on the last class categories you have modified
> >>  - on the last packages you have modified
> >>
> >> Here is a portion of a large coverage:
> >>
> >> <Screen Shot 2014-09-16 at 12.00.11 PM.png>
> >>
> >> A technical description of Hapao may be found on http://bergel.eu/download/papers/Berg12c-HapaoSCP.pdf
> >>
> >> We are daily using Hapao to help us understand our tests.
> >>
> >> Cheers,
> >> Ricardo, Alejandro & Alexandre
> >> --
> >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> >> Alexandre Bergel  http://www.bergel.eu
> >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> Moose-dev mailing list
> >> [hidden email]
> >> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >>
> >>
> >>
> >>
> >> --
> >> www.tudorgirba.com
> >>
> >> "Every thing has its own flow"
> >
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






S2py-MaximilianoTaborda.73.mcz (98K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Moose-dev] [ANN] Test Coverage with Hapao

abergel
Thanks Maximiliano for your kind words.

Regarding your particular menu entry, I guess I understand well how you did it. No need to share it with me then. 

Let us know how to adapt Hapao. We will improve it. For example, the small window popup at the bottom of the window is not that useful. We will fix this...

Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



On Oct 6, 2014, at 12:49 PM, Maximiliano Taborda <[hidden email]> wrote:

Hi Alexandre.

Perfect about the legends problem. Thanks.

And about the best way to exclude some methods, I don't know what it is. I use the world menu to run Hapao. In fact, I made a new entry in the world menu that fit with my needs, that is:
     - excludes all initialization methods, i.e. selectors named like #initialize*
     - excludes all the #new methods
     - excludes all methods that are defined in a protocol named as private, i.e. 'accessing - private'
This new entry checks the coverage over a class/es hierarchy and, also,
     - run only the tests related to this hierarchy
     - not take into account the abstract methods when computing the covered percentage; if I have an abstract method without a concrete one implemented in all the subclasses, I have a design error, so my real problem is the absence of the concrete method and not the absence of the test.

If you are interested I leave you attached to this email the code related to this entry. Maybe is not the best way to implement what I need, but is a quickly one.

Congratulations for this tool, is great to easily visualize what portion of my model are not covered by tests.

Regards.
Maximiliano



2014-10-05 22:27 GMT-03:00 Alexandre Bergel <[hidden email]>:
Hi Maximiliano!

The legend problem is now fixed. Can you double check please?

What would be the best way to exclude some methods? This question slightly rephrased: how do you run Hapao? Programmatically or using the World menu?

Cheers,
Alexandre


On Oct 2, 2014, at 11:34 PM, Maximiliano Taborda <[hidden email]> wrote:

> Hi Alexandre.
>
> Yes, now it works. Thank you. But, the box with the legends don't show very well. Like in the attached image:
>
> <RelativeDate.png>
>
> And, a question. Is there a way to exclude some methods from the analysis? I have some class methods, used for initialize some singletons for example, that I do not want to be considered for coverage.
>
> Regards.
> Maxi
>
> 2014-10-02 18:39 GMT-03:00 Alexandre Bergel <[hidden email]>:
> Hi!
>
> Sorry, we somehow slightly messed up with the configurations.
> I just took the last Pharo 4.0, and loaded Roassal2:
>
> -=-=-=-=-=-=-=-=-=-=-=-=
> Gofer new smalltalkhubUser: 'ObjectProfile'
>     project: 'Roassal2';
>     package: 'ConfigurationOfRoassal2';
>     load.
> (Smalltalk at: #ConfigurationOfRoassal2) loadDevelopment
> -=-=-=-=-=-=-=-=-=-=-=-=
>
> Then I loaded S2py:
> -=-=-=-=-=-=-=-=-=-=-=-=
> Gofer new smalltalkhubUser: 'ObjectProfile'
>     project: 'S2py';
>     package: 'S2py';
>     load.
> -=-=-=-=-=-=-=-=-=-=-=-=
>
> It works here.
> Can you confirm?
>
> Sorry for having taken long to answer...
>
> Cheers,
> Alexandre
>
> On Sep 24, 2014, at 8:24 PM, Maximiliano Taborda <[hidden email]> wrote:
>
> > Hi Alexandre,
> >
> > I want to try Hapao2 to check the coverage level of Chalten, but it's not working (at least for me).
> > I load Roassal2 and S2py in a fresh 3.0 image like you say and the new entries appear in the world menu, but the only option that partially works is the one for a particular class (Hapao @ Class ...) and after run all the tests (I see the progress showing that) a MNU is raised in the method #addMethodEdges:scope:view: of Hapa2 class because RTEdgeBuilder is not loaded.
> >
> > So, could you tell me what I missed please? I need to load another thing, which?, at least the package which defines RTEdgeBuilder.
> >
> > Thanks for your help.
> >
> > Regards.
> > Maxi
> >
> > 2014-09-16 20:10 GMT-03:00 Alexandre Bergel <[hidden email]>:
> > Excellent!
> >
> > Alexandre
> >
> > Le 16-09-2014 à 16:15, Tudor Girba <[hidden email]> a écrit :
> >
> >> Great!
> >>
> >> I will go over it more thoroughly in the following weeks and get back to you with feedback.
> >>
> >> Cheers,
> >> Doru
> >>
> >>
> >>
> >> On Tue, Sep 16, 2014 at 6:03 PM, Alexandre Bergel <[hidden email]> wrote:
> >> Dear all,
> >>
> >> We are happy to release Hapao2 for Pharo. Ricard Jacas and Alejandro Infante put quite some work on Spy2 (an über cool profiling framework for Pharo) and Hapao2.
> >> Hapao2 is about assessing the test coverage of your code and is a major revamp of Hapao1, which was presented a couple of years ago by Vanessa.
> >> Hapao2 does not only list covered and uncovered methods, as most test coverage tool on Earth will do. Hapao gives a great visualization to easily navigate in your code, assess its complexity, and give you a great visual output telling its coverage.
> >>
> >> You need Roassal in your image:
> >>
> >> Gofer new smalltalkhubUser: 'ObjectProfile'
> >>     project: 'Roassal2';
> >>     package: 'ConfigurationOfRoassal2';
> >>     load.
> >> (Smalltalk at: #ConfigurationOfRoassal2) load
> >>
> >>
> >> and you need S2py:
> >> MCHttpRepository
> >>      location: 'http://smalltalkhub.com/mc/ObjectProfile/S2py/main'
> >>      user: ''
> >>      password: ''
> >>
> >>
> >> New entries will appear in the world menu:
> >> <Screen Shot 2014-09-16 at 11.49.06 AM.png>
> >>
> >> You can run the test coverage on :
> >>  - the class classes you have modified,
> >>  - on a particular
> >>  - on a particular class category
> >>  - on the last class categories you have modified
> >>  - on the last packages you have modified
> >>
> >> Here is a portion of a large coverage:
> >>
> >> <Screen Shot 2014-09-16 at 12.00.11 PM.png>
> >>
> >> A technical description of Hapao may be found on http://bergel.eu/download/papers/Berg12c-HapaoSCP.pdf
> >>
> >> We are daily using Hapao to help us understand our tests.
> >>
> >> Cheers,
> >> Ricardo, Alejandro & Alexandre
> >> --
> >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> >> Alexandre Bergel  http://www.bergel.eu
> >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> Moose-dev mailing list
> >> [hidden email]
> >> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >>
> >>
> >>
> >>
> >> --
> >> www.tudorgirba.com
> >>
> >> "Every thing has its own flow"
> >
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





<S2py-MaximilianoTaborda.73.mcz>

Reply | Threaded
Open this post in threaded view
|

Re: [Moose-dev] [ANN] Test Coverage with Hapao

Pavel Krivanek-3
Hi Alexandre,

I would like to see Hapao to be used for coverage testing of the Pharo
kernel classes. I checked that it is possible run it on Pharo-minimal:

wget http://files.pharo.org/image/40/latest-minimal.zip

unzip latest-minimal.zip

./pharo config http://smalltalkhub.com/mc/Pharo/SystemConfigurations/main
ConfigurationOfSUnit --group=Core,Tests  --install=bleedingEdge

./pharo Pharo-minimal hapao.st

where hapao.st loads S2py and Fuel, runs the analysis and exports
result to the a Fuel file:

Gofer new smalltalkhubUser: 'ObjectProfile'
    project: 'S2py';
    package: 'S2py';
    load.
Gofer new smalltalkhubUser: 'Pharo'
    project: 'Pharo40';
    package: 'Fuel';
    load.
!
FLSerializer serialize: (Hapao2 runTestsForClasses: {SUnitTest })
toFileNamed: 'hapao.fuel'.
Smalltalk exitSuccess.


The result can be loaded to the full image with Roassal:

(FLMaterializer materializeFromFileNamed: 'hapao.fuel' ) visualize.

It would be great if you will extract all visualisaton code and
MessageTally extensions from the S2py package.

What are the limitations of Hapao for testing of the core classes?

Cheers,
-- Pavel


2014-10-07 16:06 GMT+02:00 Alexandre Bergel <[hidden email]>:

> Thanks Maximiliano for your kind words.
>
> Regarding your particular menu entry, I guess I understand well how you did
> it. No need to share it with me then.
>
> Let us know how to adapt Hapao. We will improve it. For example, the small
> window popup at the bottom of the window is not that useful. We will fix
> this...
>
> Alexandre
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
> On Oct 6, 2014, at 12:49 PM, Maximiliano Taborda <[hidden email]> wrote:
>
> Hi Alexandre.
>
> Perfect about the legends problem. Thanks.
>
> And about the best way to exclude some methods, I don't know what it is. I
> use the world menu to run Hapao. In fact, I made a new entry in the world
> menu that fit with my needs, that is:
>      - excludes all initialization methods, i.e. selectors named like
> #initialize*
>      - excludes all the #new methods
>      - excludes all methods that are defined in a protocol named as private,
> i.e. 'accessing - private'
> This new entry checks the coverage over a class/es hierarchy and, also,
>      - run only the tests related to this hierarchy
>      - not take into account the abstract methods when computing the covered
> percentage; if I have an abstract method without a concrete one implemented
> in all the subclasses, I have a design error, so my real problem is the
> absence of the concrete method and not the absence of the test.
>
> If you are interested I leave you attached to this email the code related to
> this entry. Maybe is not the best way to implement what I need, but is a
> quickly one.
>
> Congratulations for this tool, is great to easily visualize what portion of
> my model are not covered by tests.
>
> Regards.
> Maximiliano
>
>
>
> 2014-10-05 22:27 GMT-03:00 Alexandre Bergel <[hidden email]>:
>>
>> Hi Maximiliano!
>>
>> The legend problem is now fixed. Can you double check please?
>>
>> What would be the best way to exclude some methods? This question slightly
>> rephrased: how do you run Hapao? Programmatically or using the World menu?
>>
>> Cheers,
>> Alexandre
>>
>>
>> On Oct 2, 2014, at 11:34 PM, Maximiliano Taborda <[hidden email]>
>> wrote:
>>
>> > Hi Alexandre.
>> >
>> > Yes, now it works. Thank you. But, the box with the legends don't show
>> > very well. Like in the attached image:
>> >
>> > <RelativeDate.png>
>> >
>> > And, a question. Is there a way to exclude some methods from the
>> > analysis? I have some class methods, used for initialize some singletons for
>> > example, that I do not want to be considered for coverage.
>> >
>> > Regards.
>> > Maxi
>> >
>> > 2014-10-02 18:39 GMT-03:00 Alexandre Bergel <[hidden email]>:
>> > Hi!
>> >
>> > Sorry, we somehow slightly messed up with the configurations.
>> > I just took the last Pharo 4.0, and loaded Roassal2:
>> >
>> > -=-=-=-=-=-=-=-=-=-=-=-=
>> > Gofer new smalltalkhubUser: 'ObjectProfile'
>> >     project: 'Roassal2';
>> >     package: 'ConfigurationOfRoassal2';
>> >     load.
>> > (Smalltalk at: #ConfigurationOfRoassal2) loadDevelopment
>> > -=-=-=-=-=-=-=-=-=-=-=-=
>> >
>> > Then I loaded S2py:
>> > -=-=-=-=-=-=-=-=-=-=-=-=
>> > Gofer new smalltalkhubUser: 'ObjectProfile'
>> >     project: 'S2py';
>> >     package: 'S2py';
>> >     load.
>> > -=-=-=-=-=-=-=-=-=-=-=-=
>> >
>> > It works here.
>> > Can you confirm?
>> >
>> > Sorry for having taken long to answer...
>> >
>> > Cheers,
>> > Alexandre
>> >
>> > On Sep 24, 2014, at 8:24 PM, Maximiliano Taborda <[hidden email]>
>> > wrote:
>> >
>> > > Hi Alexandre,
>> > >
>> > > I want to try Hapao2 to check the coverage level of Chalten, but it's
>> > > not working (at least for me).
>> > > I load Roassal2 and S2py in a fresh 3.0 image like you say and the new
>> > > entries appear in the world menu, but the only option that partially works
>> > > is the one for a particular class (Hapao @ Class ...) and after run all the
>> > > tests (I see the progress showing that) a MNU is raised in the method
>> > > #addMethodEdges:scope:view: of Hapa2 class because RTEdgeBuilder is not
>> > > loaded.
>> > >
>> > > So, could you tell me what I missed please? I need to load another
>> > > thing, which?, at least the package which defines RTEdgeBuilder.
>> > >
>> > > Thanks for your help.
>> > >
>> > > Regards.
>> > > Maxi
>> > >
>> > > 2014-09-16 20:10 GMT-03:00 Alexandre Bergel <[hidden email]>:
>> > > Excellent!
>> > >
>> > > Alexandre
>> > >
>> > > Le 16-09-2014 à 16:15, Tudor Girba <[hidden email]> a écrit :
>> > >
>> > >> Great!
>> > >>
>> > >> I will go over it more thoroughly in the following weeks and get back
>> > >> to you with feedback.
>> > >>
>> > >> Cheers,
>> > >> Doru
>> > >>
>> > >>
>> > >>
>> > >> On Tue, Sep 16, 2014 at 6:03 PM, Alexandre Bergel
>> > >> <[hidden email]> wrote:
>> > >> Dear all,
>> > >>
>> > >> We are happy to release Hapao2 for Pharo. Ricard Jacas and Alejandro
>> > >> Infante put quite some work on Spy2 (an über cool profiling framework for
>> > >> Pharo) and Hapao2.
>> > >> Hapao2 is about assessing the test coverage of your code and is a
>> > >> major revamp of Hapao1, which was presented a couple of years ago by
>> > >> Vanessa.
>> > >> Hapao2 does not only list covered and uncovered methods, as most test
>> > >> coverage tool on Earth will do. Hapao gives a great visualization to easily
>> > >> navigate in your code, assess its complexity, and give you a great visual
>> > >> output telling its coverage.
>> > >>
>> > >> You need Roassal in your image:
>> > >>
>> > >> Gofer new smalltalkhubUser: 'ObjectProfile'
>> > >>     project: 'Roassal2';
>> > >>     package: 'ConfigurationOfRoassal2';
>> > >>     load.
>> > >> (Smalltalk at: #ConfigurationOfRoassal2) load
>> > >>
>> > >>
>> > >> and you need S2py:
>> > >> MCHttpRepository
>> > >>      location: 'http://smalltalkhub.com/mc/ObjectProfile/S2py/main'
>> > >>      user: ''
>> > >>      password: ''
>> > >>
>> > >>
>> > >> New entries will appear in the world menu:
>> > >> <Screen Shot 2014-09-16 at 11.49.06 AM.png>
>> > >>
>> > >> You can run the test coverage on :
>> > >>  - the class classes you have modified,
>> > >>  - on a particular
>> > >>  - on a particular class category
>> > >>  - on the last class categories you have modified
>> > >>  - on the last packages you have modified
>> > >>
>> > >> Here is a portion of a large coverage:
>> > >>
>> > >> <Screen Shot 2014-09-16 at 12.00.11 PM.png>
>> > >>
>> > >> A technical description of Hapao may be found on
>> > >> http://bergel.eu/download/papers/Berg12c-HapaoSCP.pdf
>> > >>
>> > >> We are daily using Hapao to help us understand our tests.
>> > >>
>> > >> Cheers,
>> > >> Ricardo, Alejandro & Alexandre
>> > >> --
>> > >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> > >> Alexandre Bergel  http://www.bergel.eu
>> > >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>> > >>
>> > >>
>> > >>
>> > >>
>> > >> _______________________________________________
>> > >> Moose-dev mailing list
>> > >> [hidden email]
>> > >> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>> > >>
>> > >>
>> > >>
>> > >>
>> > >> --
>> > >> www.tudorgirba.com
>> > >>
>> > >> "Every thing has its own flow"
>> > >
>> >
>> > --
>> > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> > Alexandre Bergel  http://www.bergel.eu
>> > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>> >
>> >
>> >
>> >
>> >
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>
> <S2py-MaximilianoTaborda.73.mcz>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [Moose-dev] [ANN] Test Coverage with Hapao

abergel
Hi Pavel!

Glad to hear that Hapao works on Pharo-minimal.
You have raised good points. We will work on this

Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



On Oct 10, 2014, at 3:21 PM, Pavel Krivanek <[hidden email]> wrote:

Hi Alexandre,

I would like to see Hapao to be used for coverage testing of the Pharo
kernel classes. I checked that it is possible run it on Pharo-minimal:

wget http://files.pharo.org/image/40/latest-minimal.zip

unzip latest-minimal.zip

./pharo config http://smalltalkhub.com/mc/Pharo/SystemConfigurations/main
ConfigurationOfSUnit --group=Core,Tests  --install=bleedingEdge

./pharo Pharo-minimal hapao.st

where hapao.st loads S2py and Fuel, runs the analysis and exports
result to the a Fuel file:

Gofer new smalltalkhubUser: 'ObjectProfile'
   project: 'S2py';
   package: 'S2py';
   load.
Gofer new smalltalkhubUser: 'Pharo'
   project: 'Pharo40';
   package: 'Fuel';
   load.
!
FLSerializer serialize: (Hapao2 runTestsForClasses: {SUnitTest })
toFileNamed: 'hapao.fuel'.
Smalltalk exitSuccess.


The result can be loaded to the full image with Roassal:

(FLMaterializer materializeFromFileNamed: 'hapao.fuel' ) visualize.

It would be great if you will extract all visualisaton code and
MessageTally extensions from the S2py package.

What are the limitations of Hapao for testing of the core classes?

Cheers,
-- Pavel


2014-10-07 16:06 GMT+02:00 Alexandre Bergel <[hidden email]>:
Thanks Maximiliano for your kind words.

Regarding your particular menu entry, I guess I understand well how you did
it. No need to share it with me then.

Let us know how to adapt Hapao. We will improve it. For example, the small
window popup at the bottom of the window is not that useful. We will fix
this...

Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



On Oct 6, 2014, at 12:49 PM, Maximiliano Taborda <[hidden email]> wrote:

Hi Alexandre.

Perfect about the legends problem. Thanks.

And about the best way to exclude some methods, I don't know what it is. I
use the world menu to run Hapao. In fact, I made a new entry in the world
menu that fit with my needs, that is:
    - excludes all initialization methods, i.e. selectors named like
#initialize*
    - excludes all the #new methods
    - excludes all methods that are defined in a protocol named as private,
i.e. 'accessing - private'
This new entry checks the coverage over a class/es hierarchy and, also,
    - run only the tests related to this hierarchy
    - not take into account the abstract methods when computing the covered
percentage; if I have an abstract method without a concrete one implemented
in all the subclasses, I have a design error, so my real problem is the
absence of the concrete method and not the absence of the test.

If you are interested I leave you attached to this email the code related to
this entry. Maybe is not the best way to implement what I need, but is a
quickly one.

Congratulations for this tool, is great to easily visualize what portion of
my model are not covered by tests.

Regards.
Maximiliano



2014-10-05 22:27 GMT-03:00 Alexandre Bergel <[hidden email]>:

Hi Maximiliano!

The legend problem is now fixed. Can you double check please?

What would be the best way to exclude some methods? This question slightly
rephrased: how do you run Hapao? Programmatically or using the World menu?

Cheers,
Alexandre


On Oct 2, 2014, at 11:34 PM, Maximiliano Taborda <[hidden email]>
wrote:

Hi Alexandre.

Yes, now it works. Thank you. But, the box with the legends don't show
very well. Like in the attached image:

<RelativeDate.png>

And, a question. Is there a way to exclude some methods from the
analysis? I have some class methods, used for initialize some singletons for
example, that I do not want to be considered for coverage.

Regards.
Maxi

2014-10-02 18:39 GMT-03:00 Alexandre Bergel <[hidden email]>:
Hi!

Sorry, we somehow slightly messed up with the configurations.
I just took the last Pharo 4.0, and loaded Roassal2:

-=-=-=-=-=-=-=-=-=-=-=-=
Gofer new smalltalkhubUser: 'ObjectProfile'
   project: 'Roassal2';
   package: 'ConfigurationOfRoassal2';
   load.
(Smalltalk at: #ConfigurationOfRoassal2) loadDevelopment
-=-=-=-=-=-=-=-=-=-=-=-=

Then I loaded S2py:
-=-=-=-=-=-=-=-=-=-=-=-=
Gofer new smalltalkhubUser: 'ObjectProfile'
   project: 'S2py';
   package: 'S2py';
   load.
-=-=-=-=-=-=-=-=-=-=-=-=

It works here.
Can you confirm?

Sorry for having taken long to answer...

Cheers,
Alexandre

On Sep 24, 2014, at 8:24 PM, Maximiliano Taborda <[hidden email]>
wrote:

Hi Alexandre,

I want to try Hapao2 to check the coverage level of Chalten, but it's
not working (at least for me).
I load Roassal2 and S2py in a fresh 3.0 image like you say and the new
entries appear in the world menu, but the only option that partially works
is the one for a particular class (Hapao @ Class ...) and after run all the
tests (I see the progress showing that) a MNU is raised in the method
#addMethodEdges:scope:view: of Hapa2 class because RTEdgeBuilder is not
loaded.

So, could you tell me what I missed please? I need to load another
thing, which?, at least the package which defines RTEdgeBuilder.

Thanks for your help.

Regards.
Maxi

2014-09-16 20:10 GMT-03:00 Alexandre Bergel <[hidden email]>:
Excellent!

Alexandre

Le 16-09-2014 à 16:15, Tudor Girba <[hidden email]> a écrit :

Great!

I will go over it more thoroughly in the following weeks and get back
to you with feedback.

Cheers,
Doru



On Tue, Sep 16, 2014 at 6:03 PM, Alexandre Bergel
<[hidden email]> wrote:
Dear all,

We are happy to release Hapao2 for Pharo. Ricard Jacas and Alejandro
Infante put quite some work on Spy2 (an über cool profiling framework for
Pharo) and Hapao2.
Hapao2 is about assessing the test coverage of your code and is a
major revamp of Hapao1, which was presented a couple of years ago by
Vanessa.
Hapao2 does not only list covered and uncovered methods, as most test
coverage tool on Earth will do. Hapao gives a great visualization to easily
navigate in your code, assess its complexity, and give you a great visual
output telling its coverage.

You need Roassal in your image:

Gofer new smalltalkhubUser: 'ObjectProfile'
   project: 'Roassal2';
   package: 'ConfigurationOfRoassal2';
   load.
(Smalltalk at: #ConfigurationOfRoassal2) load


and you need S2py:
MCHttpRepository
    location: 'http://smalltalkhub.com/mc/ObjectProfile/S2py/main'
    user: ''
    password: ''


New entries will appear in the world menu:
<Screen Shot 2014-09-16 at 11.49.06 AM.png>

You can run the test coverage on :
- the class classes you have modified,
- on a particular
- on a particular class category
- on the last class categories you have modified
- on the last packages you have modified

Here is a portion of a large coverage:

<Screen Shot 2014-09-16 at 12.00.11 PM.png>

A technical description of Hapao may be found on
http://bergel.eu/download/papers/Berg12c-HapaoSCP.pdf

We are daily using Hapao to help us understand our tests.

Cheers,
Ricardo, Alejandro & Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev




--
www.tudorgirba.com

"Every thing has its own flow"


--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





<S2py-MaximilianoTaborda.73.mcz>