wiki:path:pathFinder

Version 10 (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

To localize failure causes in behavior, developers start exploration either directly at a failing test case or out of covered suspicious methods as provided by PathMap. Subsequently, PathFinder opens at the chosen method as shown in Figure 6.4 and allows for following the infection chain back to the failure cause.

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.