Changes between Version 5 and Version 6 of path:pathBrowser


Ignore:
Timestamp:
12/17/2013 02:47:59 PM (10 years ago)
Author:
michael.perscheid
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • path:pathBrowser

    v5 v6  
    33= !PathBrowser =
    44
     5!PathBrowser extends Squeak’s standard source code browser with additional user interface elements that provide access to Path's analyzed test information.
     6So, developers can further improve their program comprehension with revealed coverage data, type information, and derived assertions about the system under observation.
     7
    58== Description ==
     9
     10
     11Figure 6.5 shows our two extensions. First, we offer test cases as entry points into behavioral examples of specific methods. We reuse the already collected test coverage data from PathMap and present it in the new pane on the right side. With a click on a corresponding test case, developers can start a symbolic debugger or our PathFinder. Both tools stop their execution at the first call of the selected method and provide insights into its concrete run-time behavior. Thus, developers learn how a method works and so comprehend source code abstractions by debugging into examples. Second, we integrate the hidden test knowledge into source code by presenting invariants and dynamic contracts of our state navigation. If a specific program entity possesses generalized object properties, then a label automatically shows its exploited run-time information while editing source code. For example, we harvested the ByteString class as type for the argument aValue. This information allows developers to understand source code better, especially in dynamically typed languages such as Smalltalk where type information is rather implicit. Furthermore, we extend the browser with our dynamic contracts. There are buttons for displaying the source code of invariants (inv), pre- and post-conditions (pre/post). The Smalltalk code at the bottom shows all the generated assertions from our collected invariants. Developers can also add manual assertions to this source code. In the example of Figure 6.5, we present the pre-condition contract for the method WAResponse»headerAt:put:. The assertion DCContract expectCorrectSpellingOf: aString (line 9) throws a violation in our Seaside typing error and reveals the crucial state anomaly.
     12
     13
    614
    715== Screenshot ==
     
    1119== How to Use ==
    1220
     21
    1322* open menu
    1423* note: new default browser
    1524* all Path tools open a PathBrowser
    1625* extensions only available if browsing classes of current project (ref PathProject)
     26
     27
     28
    1729
    1830