wiki:pathToolsFramework

Version 33 (modified by michael.perscheid, 10 years ago) ( diff )

--

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

[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 (tested for Windows, Linux, and Mac OS)
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)

Note: We have also prepared a tutorial in form of an interactive Squeak image. It explains our test-driven fault navigation and Path tools by debugging a difficult failure step by step. Download Path Tools for Squeak 4.4 (~90 MB), extract the file, and run the proper executable for your favorite OS (This image does not include PathView).

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
  • Vasily Kirilichev
  • Stephanie Platz
  • Oliver Richter
  • Leonhard Schweizer
  • Eric Seckler
  • Benjamin Siegmund
  • Bastian Steinert
  • Philipp Tessenow

Attachments (11)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.