Hapaoheader

Test Blueprint

Test Blueprint Screenshot

Encapsulating boxes represents classes (C1, C2 and T). Inheritance is indicated with an edge between classes. Subclasses are below their superclass. C1 is the superclass of C2. The superclass of T is not part of the analysis. The green border class border indicates a unit test.

Inner boxes represent methods. C1 defines five methods, a, b, c, d and e. C2 defines one method, f. Each method is represented as a small box, visually defined with fives dimensions:

  • height is the cyclomatic complexity of the method. More the method may take different paths at execution time, higher the box will be (e.g. Method b).
  • width is the number of different methods that call the method when running the tests. A wide method (f) means the method has been executed many times by the tests. A thin method (a, b, c) means the method has been executed zero or a few amount of times.
  • gray intensity reflects the number of times the method has been executed. A dark method (d, f) has been executed many times. A light-toned method (c) has been executed a few times.
  • a red border color (light gray on a B&W printout) means the method has not been executed (a, b). Blue border indicates abstract methods. Green border indicates that the method is a test method, defined in a unit test.
  • the call-flow on self variable is indicated with edges. This happens if the body of a contains the expression self d, meaning that the message d is sent to self. The methods a calls d on self. The method b calls d and c on self. Note that we are focussing on the call-flow instead of the control-flow.

Contextual information:

Popup Waving the mouse above a method displays a contextual popup window and the class border color is turned red. This popup window gives the full name of the method (MOFormsBuilder>>boundsOf: in the figure in the left), the invoking methods and invoked methods.

The popup window focused on the method from which it has been produced.The method is located at the center of the popup window. Above are the methods that execute the method, below are the methods that are executed but it. Test methods are indicated with a green border.

The contextual popup window gives essential information about the context in which the method is used. For example, the method boundsOf: is invoked by three test methods and invoke many other non-complex methods (probably utility methods). The window is displayed after a short delay, to avoid image fickering when waving the mouse above many methods.

What's new

  • Pharocast on Hapao
    24 April 201112:22:34 am by admin
    "Vanessa and Alexandre show us Hapao, an innovative test coverage tool implemented in the Pharo Smalltalk programming language. You will see how they analyse the ProfStef interactive tutorial, increas...
  • Mondrian
    25 March 20119:52:01 pm by admin
    The code coverage of Mondrian has been significantly increased over the past two weeks. 78.84% of the methods are executed by the unit tests.
  • MetacelloBrowser
    19 January 201112:11:10 pm by admin
    MetacelloBrowser is a tool to manage configurations in Pharo. At the beginning, MetacelloBrowser did not have any tests. Thanks to Hapa'o, it has now a coverage of 75%. Code is available on www.squeak...