[squeak-dev] [ANN] PathMap (was Re: [ANN] The Path Tools Framework)

Michael Perscheid michaelperscheid at googlemail.com
Mon Mar 3 09:30:03 UTC 2014


Hi all,

as promised, I’d like to further present parts of our Path tools framework. In this mail, I introduce the "PathMap test runner". 

Test cases possess a valuable source of information as they implicitly define expected and unexpected behavior all over the system. During the execution of their exemplary assertions, they do not merely cover directly-tested methods but rather large call sequences with corresponding states through internal parts of the system. Based on this idea, we can inductively derive from the specific run-time values of executed test cases more generalized and helpful program properties. By making this hidden test knowledge available, developers have additional information for debugging, testing, and understanding their programs.

PathMap is our extended test runner that reveals the hidden knowledge of test cases and presents it to developers. It provides a low overhead analysis framework that computes coverage data, likely invariants, and static metrics and displays the results in form of a scalable tree map visualization representing the system under observation.



To start a specific analysis of your system under test, select your tests, choose a flap from the right side (large icons, description see below), and press the button “run selected”.

PathMap Analyses Modes (Flaps from top to bottom):

	* The test quality flap analyzes the (method) coverage of test cases (effectivity) and relates it to different static metrics. This allows developers to answer questions such as which methods require more tests and which author is responsible for missing tests.

	* The profiling flap measures the run-time characteristics of test cases (efficiency) and their relation to the methods of the system under observations. Performance bottlenecks, memory leaks, and massively called methods can be revealed with this analysis.

	* The fault localization flap reveals spectrum-based anomalies (methods) that have a high probability to include failure causes. By comparing the coverage of all failed and passed test cases, we offer several starting points for debugging failing test cases and creating initial failure cause hypotheses.

	* The induction flap derives likely invariants from passing test cases. We expect that every state (parameter, receiver, return value) of a passing test is also a valid data point. Based on this assumption, we generalize concrete run-time values all over the system into assertions. Such likely invariants can help in program comprehension as well as debugging if they are compared to failing test cases. (Analysis can take some time)

	* The traceability flap connects arbitrary concerns and software artifacts with test cases in order to analyze their relationship with the code base. For example, requirements can be related to their acceptance tests and we compute methods that overlap or are completely specific to requirements.

More documentation can be found here: 
http://www.hpi.uni-potsdam.de/hirschfeld/trac/SqueakCommunityProjects/wiki/path%3ApathMap
http://www.michaelperscheid.de/projects/index.html

Best regards,
Michael

On 22.02.2014, at 18:19, Michael Perscheid <michaelperscheid at googlemail.com> wrote:

> Hi all,
> 
> I’m pleased to announce the release of our Path Tools Framework that has been developed 
> during the last five years as part of my dissertation. 
> 
> https://www.hpi.uni-potsdam.de/hirschfeld/trac/SqueakCommunityProjects/wiki/pathToolsFramework
> 
> 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 (a systematic debugging approach that leads developers 
> from the observable failure back to root causes), test quality feedback (improve software quality 
> by analyzing test cases), and model-based source code editing (single source development 
> method that joins model-driven development and standard source code editing).
> 
> As there are several tools and use cases, we will provide more detailed information in following 
> announcements. Nevertheless, all tools are already available and can be tested. Furthermore, 
> there is also a bunch of documentation, screencasts, and published papers.
> 
> http://www.michaelperscheid.de/projects/index.html
> 
> Have fun :-)
> 
> Best regards,
> Michael
> 
> ---
> Dr.-Ing. Michael Perscheid
> michaelperscheid at googlemail.com
> 
> http://www.michaelperscheid.de/
> 

---
Dr.-Ing. Michael Perscheid
michaelperscheid at googlemail.com

http://www.michaelperscheid.de/

-------------- next part --------------
Skipped content of type multipart/related


More information about the Squeak-dev mailing list