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/...
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@googlemail.com
Fantastic Michael, thanks you very much for sharing.
I casually found the page a few time ago, when asked about the page of PathView, because I know that in the Hasso Platner pages always can found interesting stuff :)
Regards. Germán.
2014-02-22 14:19 GMT-03:00 Michael Perscheid < michaelperscheid@googlemail.com>:
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/...
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@googlemail.com
On 22 February 2014 17:19, Michael Perscheid michaelperscheid@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/...
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 :-)
:) One of those tools is in the section "Type Harvesting". Watch the video: a custom test runner runs your unit tests, and collects type information. Another custom browser shows the collected type info as a tooltip/hover thing when you hover over a variable, instance variable, selector (showing the method's return type) and so on. Very nice!
frank
Best regards, Michael
Dr.-Ing. Michael Perscheid michaelperscheid@googlemail.com
This is mind-blowing! I must admit, I don't understand how it works, or even how to use it, but I've only so far had a chance to gloss over the paper and watch the video during lunch today. Some narration on the video would probably go a long way -- an explanation how to use to find that typo "Content-Lenght" and how I would use the tool to help me find it.
On a side note, I'm also extremely impressed by the "functional density" of that map UI, it's even more dense than Maui (which is designed to be)!
My first-impression is that this appears to be one of the coolest and most-original projects Squeak has seen in a long time. Kudos and congratulations!!
On Sat, Feb 22, 2014 at 11:19 AM, Michael Perscheid michaelperscheid@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/...
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@googlemail.com
2014-02-22 19:05 GMT-03:00 Chris Muller asqueaker@gmail.com:
This is mind-blowing! I must admit, I don't understand how it works, or even how to use it, but I've only so far had a chance to gloss over the paper and watch the video during lunch today. Some narration on the video would probably go a long way -- an explanation how to use to find that typo "Content-Lenght" and how I would use the tool to help me find it.
On a side note, I'm also extremely impressed by the "functional density" of that map UI, it's even more dense than Maui (which is designed to be)!
My first-impression is that this appears to be one of the coolest and most-original projects Squeak has seen in a long time. Kudos and congratulations!!
+1!
So I can ‘nur’ programs at last? Fabulous; I really could have done with that ability last week...
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim "Today's subliminal thought is:"
Congratulations, It looks like a major advancement to software development process!
How difficult would it be to convert to other dialects?
Tansel
On Mon, Feb 24, 2014 at 4:42 AM, tim Rowledge tim@rowledge.org wrote:
So I can 'nur' programs at last? Fabulous; I really could have done with that ability last week...
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim "Today's subliminal thought is:"
Hi Tansel,
it is hard to estimate the concrete effort for porting these tools to other Smalltalk dialects. The framework has several dependencies to other libraries, tools, and makes extensive use of meta-programming. I think as closer the dialect is to Squeak as easier it should be. Nevertheless, all concepts and ideas are independent of Squeak/Smalltalk and can also be adapted to other OOP languages. That means, there should be no showstopper that prevents Path tools to work in another environment. For example, a current master thesis of our group deals with porting these tools to Eclipse/Java on the basis of a common meta-model and it works very well.
Best regards, Michael
On 23.02.2014, at 23:56, Tansel Ersavas tansel@tansel.org wrote:
Congratulations, It looks like a major advancement to software development process!
How difficult would it be to convert to other dialects?
Tansel
On Mon, Feb 24, 2014 at 4:42 AM, tim Rowledge tim@rowledge.org wrote: So I can ‘nur’ programs at last? Fabulous; I really could have done with that ability last week...
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim "Today's subliminal thought is:"
--- Dr.-Ing. Michael Perscheid michaelperscheid@googlemail.com
Hello.
Back in time debugger really impressive
2014-02-22 21:19 GMT+04:00 Michael Perscheid < michaelperscheid@googlemail.com>:
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/...
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@googlemail.com
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/p... http://www.michaelperscheid.de/projects/index.html
Best regards, Michael
On 22.02.2014, at 18:19, Michael Perscheid michaelperscheid@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/...
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@googlemail.com
--- Dr.-Ing. Michael Perscheid michaelperscheid@googlemail.com
On 03-03-2014, at 1:30 AM, Michael Perscheid michaelperscheid@googlemail.com wrote:
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.
Exactly the point I was trying to make the other day about the Socket confusion I found. Examples and tests are important parts of documentation. They need to be carefully kept updated and properly described etc.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Useful Latin Phrases:- Ne auderis delere orbem rigidum meum! = Don't you dare erase my hard disk!
squeak-dev@lists.squeakfoundation.org