wiki:path:pathFinder

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

--

PathFinder

PathFinder is a lightweight back-in-time debugger for navigating through specific test case behavior and state. It assists developers in localizing root causes by accessing entire execution histories, highlighting infection chains, and answering questions about object states.

Description

A test case executes one specific path through the system which can be recorded with all its behavior and state to understand the complete execution history. However, traditional approaches for analyzing a program’s run-time are time-consuming and expensive. They capture comprehensive information about the entire execution up-front, which is in large parts not required at all. We solve this problem with the reproducible and deterministic properties of test cases. We assume that a test case always takes the same path through the system so that each execution comprises the same behavior and state information. With this insight, we are able to split the expensive analysis of a program’s run-time over multiple test runs. Based on developers’ decisions, we divide the analysis into multiple steps: A high-level analysis followed by on-demand refinements. Thus, we incrementally collect only the data developers are interested in and so reduce the analysis overhead to a minimum while preserving instantaneous access to detailed execution histories.

Based on this analysis technique, PathFinder implements a lightweight back-in-time debugger for introspecting specific test case executions that supports the characteristics of immediacy. Moreover, this tool reuses PathMap's anomalies in order to classify traces with suspicious behavior and state. So, developers can follow infection chains back to their root causes without much effort.

See also the following tutorials: Test-driven Fault Navigation and Back-in-time Debugging.

Screenshot

How to Use

  • First, you need a proper Path project that is selected as current. For more information see PathProject.
  • To start PathFinder choose the tool either in the world docking bar at the top (Apps -> PathFinder) or in the world menu (open... -> PathFinder).
  • After that, you will see a tool as in the screenshot above with a large white space in the middle.
  • In order to get the execution history of a specific test case, please click on the rectangle in the upper left corner and choose the corresponding test case from the list.
  • Afterwards, the executed call tree is presented in the former white area below and developers can start exploring its execution history.

Note: Developers can start exploration either directly at a test case or out of covered methods as provided by PathMap. Subsequently, PathFinder opens at the chosen method instead of the test case's beginning.

User Interface

Its main components are a control panel on the top and the test case call tree representing its execution history.

Control Panel

Call tree

Attachments (5)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.