[[PageOutline(1-2)]] = !PathBrowser = !PathBrowser extends Squeak’s standard source code browser with additional user interface elements that provide access to Path's analyzed test information. So, developers can further improve their program comprehension with revealed coverage data, type information, and derived assertions about the system under observation. == Description == After analyzing the system with our [wiki:path:pathMap PathMap], we offer developers access to the derived information with our extended source code browser called !PathBrowser. We enhance the standard browser with mainly five new features: * '''Test coverage:''' We reuse the already collected [wiki:path:tutorial:tqf test coverage] data from [wiki:path:pathMap PathMap] and present it in a new pane. With a click on a corresponding test case, developers can start a symbolic debugger or our [wiki:path:pathFinder PathFinder]. Both tools stop their execution at the first call of the selected method and provide insights into its concrete run-time behavior. * '''Statement coverage refinement:''' Based on the already collected test coverage, developers can also refine coverage data at statements on demand. For that, we re-execute all covering tests, analyze the currently selected method, and present the executed statements by underlining the corresponding source code. * '''Type information:''' With the help of our [wiki:path:tutorial:typeHarvesting type harvesting] approach, we have already gathered type information for instance variables, arguments, and return values from test cases. To support program comprehension during implementation tasks, we present this data with overlays that appear when developers mark a related variable. * '''Contracts:''' We extend the browser with dynamic contracts from our [wiki:path:tutorial:tdfn test-driven fault navigation]. There are buttons for displaying the source code of invariants (inv), pre- and post-conditions (pre/post). Developers can also add manual assertions to this source code. * '''PathView:''' We offer a button to open a [wiki:path:tutorial:modelbasedEditor model-based source code view] directly from the selected class or method snippet. == Screenshot == [[Image(pathBrowser.png)]] == How to Use == * First, you need a proper Path project that is selected as current. For more information see [wiki:path:pathProject PathProject]. * To start !PathBrowser choose the tool either in the world docking bar at the top (Apps -> !PathBrowser) or in the world menu (open... -> !PathBrowser). * Since our new features require access to information from the current project, all functionality is only available if developers browse classes that are part of the project's selected categories and the required information has already been analyzed with our [wiki:path:pathMap PathMap]. If this is not the case, the related features are disabled. * Optionally, we also recommend to make !PathBrowser your new default browser. Start a standard browser, click on the blue button (top-right corner), select ''choose new default browser'', and select ''SBrowser''. == User Interface Extensions == new pane link to test cases --> click on test case -> new browser, debugger, or pathfinder inv/pre/post -- contracts & anzeige im browser fenster new buttons coverage (underlined statements), path views (ref) overlay for type information (ref to type harvesting)