wiki:pathToolsFramework

The Path Tools Framework

The Path Tools Framework comprises several development tools for supporting typical software maintenance tasks such as debugging, testing, and program comprehension. It realizes among others our test-driven fault navigation, test quality feedback, and model-based source code editing approach.

Our implementation primarily consists of three tools that are built on top of a flexible dynamic analysis framework:

  • PathMap is an extended test runner that analysis test case behavior and provides feedback about the entire system under observation. For example, it visualizes suspicious system parts, identifies experienced developers, derives type information, automatically creates contracts from likely invariants, reveals missing test cases and performance bottlenecks, or traces requirements down to program entities.
  • PathFinder is a lightweight back-in-time debugger for navigating through specific test case behavior and state. It assists developers not only in understanding entire execution histories but also in localizing root causes by highlighting infection chains and answering questions about corrupted object state.
  • PathView is a single-source model-based editor that allows developers to apply a direct round-trip engineering approach-changes in source code are immediately reflected in our UML-like views and vice versa. We automatically create such models based on specific test case executions and harvested type information from the entire test base.

The Path analysis framework provides the basis for our tools. It is an extensible realization of our incremental dynamic analysis for Smalltalk’s SUnit framework. By leveraging unit tests as a basis for dynamic analysis, we can ensure reproducibility and a high degree of automation, scalability, and performance with our tools.

Keywords: Software Maintenance, Testing, Debugging, Program Comprehension, Anomalies, Back-in-time, Test-driven fault navigation, Test Quality Feedback, Path Tools Framework, PathMap, PathFinder, PathView

[24. February 2014] New one-click image with all installed Path tools available. Try it out!

[22. February 2014] Add more documentation for PathView and Model-based Source Code Editing

[10. January 2014] We publish the first version of our Path Tools framework (under the MIT license). Have fun!

How to Install

Environment
4.4
any
Sources
PathTools
Misc
PathTools@SqueakSource

Using Metacello, just run the following code in your workspace:

(Installer mc http: 'http://www.hpi.uni-potsdam.de/hirschfeld/squeaksource/')
   project: 'PathTools';
   install: 'ConfigurationOfPathTools'.
(Smalltalk at: #ConfigurationOfPathTools) load.

After installation, please check if all test are passing (category !Path-Tests, some tests can only be run alone in the standard test runner or use our PathMap with the path project instead)

Preinstalled Demonstrations

We offer two preinstalled, ready-to-go, all-in-one Squeak images (Version 4.4). Just download, extract, and execute it! These images work for all operating systems (Windows, Unix, Mac OS).

How to Use

In the following two sections, we introduce all features of our tools and present typical applications (including screencasts).

Tools

Applications

Acknowledgments

The Path Tools Framework has been developed by Michael Perscheid as part of his dissertation.

To date the following people also contributed to this project:

  • Franz Becker
  • Tim Felgentreff
  • Anton Gulenko
  • Markus Güntert
  • Michael Haupt
  • Robert Hirschfeld
  • Vasily Kirilichev
  • Stephanie Platz
  • Oliver Richter
  • Leonhard Schweizer
  • Eric Seckler
  • Benjamin Siegmund
  • Bastian Steinert
  • Marcel Taeumel
  • Philipp Tessenow
Last modified 3 years ago Last modified on 02/24/14 13:10:29

Attachments (11)

Download all attachments as: .zip