Framework for calculation and presentation of likelihoods

My first addition to EzUnit is the implementation of a likelihood framework. Needed things are a view that displays the likelihood for a failure of a method, an extension point where different likelihood calculation methods can be added and some methods for calculating a likelihhod.

Likelihood calculation

I implemented four likelihood calculation methods. The first computes the quotient from the count of failures and the count of all calls of a method. The second calculates the test coverage of a method as the quotient from the count of all calls and the sum of all method calls. Then it calculates the failure likelihood and the passed likelihood as quotient from failures/passes and the count of all calls of a method. These three values are now taken to calculate the end likelihood in the following way. A difference is build from the failure and passed likelihood and this value is multiplied with the test coverage. This method should rate methods higher that are more tested. The third and the fourth are of the same type. They calculate a complexity of a method by there length in characters. In the one hand it is calculated the quotient from the length of method and the sum of the length of all methods and on the other hand it is calculated the quotient from a methods length and the length of the biggest method.

Displaying the result

The result is displayed as a tree. First comes the methods that have possible failures and under this methods there come the test name from where they called. Here it is defferenciated between failed and passed tests. Then it is displayed a overall likelihood and under this overall likelihood come all single likelihoods. The overall likelihood is calculated as the sum from all likelihoods. All single likelihoods go in this sum with the same weight.

Rate likelihood methods

To adjust the result you can vote or disable a likelihood method. A method should be voted if it helps to find the failure. The user has to decide when this is the case.

Using Arch Revision Control with Sourceforge.NET

Using Arch Revision Control with Sourceforge.NET

by Martin Schaaf

1. Introduction

At home I use Arch since a long time and want to use it also for my project hosted on sourceforge.net. So that I don’t need to switch between Arch and CVS any longer. My goal was to setup a mirror of my local repository. That gives me the possiblity to develop locally and commit my changes to the mirror in bigger time intervalls. I write it down here because I think this can be interessting to other people too and hope this will encourage other people to use arch with sf.net.

Other documents that refer to similar topics can be found on gna.org and wiki.gnuarch.org.

2. Result

As a result we will get a mirror of our archive on the sf.net project web space. Where the project members can commit and others have readonly access. The project member accesses the archive per sftp with the following path

sftp://<username>@<projectname>.sourceforge.net/home/<first_projectname_letter>/<first_two_projectname_letters>/<projectname>/htdocs/archives

The elements between the “<” and “>” brackets depends on the user it accesses the project archive and the name of the project. To anonymous access the project archive per http the following path can be used

http://<projectname>.sourceforge.net/archives

3. Procedure

Locally there is a signed archive called “a@b.c–sf-project” and we want a mirror for a sf.net project called “projectname”. It is created with

tla make-archive --signed a@b.c--sf-project /home/a/archives/sf-project

and should be mirrored on sf.net. First we create the mirror with the command

tla make-archive --listing --mirror --signed a@b.c--sf-project sftp://a@projectname.sourceforge.net/home/p/pr/projectname/htdocs/archives

Now we have the mirror on sf.net. The next step is to register it locally under a different archive name. We use for this step the command

tla register-archive -d a@b.c--sf-project-MIRROR

The next and last step is to commit our local archive to the remote sf.net archive. We use the following command

tla archive-mirror a@b.c--sf-project a@b.c--sf-project-MIRROR

This have to be done everytime you want to update the mirror or can be automatized to be done after every local commit. The Arch documentation shows how to achive this.

4. Thanks

I will thank Tom Lord for developing this very nice and easy useable revision control called Arch and Sourceforge.NET for providing free project hosting.

Eclipse Test & Performance Tools Platform Project

I had to try this Eclipse project out. On trying it I got every time the error that the profiler agent cannot be accessed, becaused it isn’t started. But I need this project running and had to find the problem. I use Eclipse 3.3 on Ubuntu Linux 7.04. First I find the scripts on starting the agent server in /eclipse/plugins/org.eclipse.tptp.platform.ac.linux_ia32_4.4.0.v200706020100/agent_controller/bin and found out that they are missing the execute rights. Then I started the script by hand ./ACStart.sh and get the following error [: 46: ==: unexpected operator. The solution is to set in the first line the interpreter to bash instead of sh, because Ubuntu uses a small replacment for the bash called dash. Again. Now I get a new error that’s saying libtptpUtils.so.4 needs /usr/lib/libstdc++-libc6.2-2.so.3. Where to get this library? After some web searching I found out that I had to install the following package libstdc++2.10-glibc2.2. Now the agent starts. Let’s start profiling.

How to change the default UserAgent value in Konqueror

I want to change the UserAgent string in Konqueror fore every site visit and not only for a special site. But the interface has not such functionality. It is possible to set it directly in the following file ~/.kde/share/config/kio_httprc by adding the following string on the first line in this file UserAgent=<newAgentName>. NewAgentName has to be replaced by the wished name.