I love open source… but I still expect it to work. That expectation is misplaced since no one is officially supporting it – so I am thankful that I have enough skill to fix problems when I encounter them (even if it takes WAY too long).
I’ve been looking for a more formal way to document/store/re-use test cases and results for web app testing that I have to do for each web app I create. I never test my own work (a lesson learned while at IBM) except for simply functional testing. Also, my tester, Robin (my wife) who has become quite skilled at testing, lacks the formal discipline that a “career tester” has from corporate experience. So, I always sit down with her and create a very informal test plan. However, I desire to create a “world class” organization and that starts with good processes. So – I went searching for a testing framework… because tracking on Excel just won’t due.
Why won’t Excel do you ask? Simple… because I have dozens of test cases that need to be multiplied by 7 platforms (IE, Firefox, Chrome, Safari, iPhone, Android, Blackberry) and multiple screen resolutions, etc… and I’d like to be able to see where we’re at whenever I want without interrupting Robin to ask. Some quick research led me to TestLink. It looks simple but clunky, but hey, its open source (free), so I downloaded it, installed and started reading the docs.
The docs are horrible, clearly written by an ESL developer. So I started just using it. I’m kinda getting the feel for it, but an important feature was integration with defect tracking (Trac) that I use. They have a config for it, but it wasn’t working no matter how I tried to configure it. After a LOT of research, I found this bug report: http://mantis.testlink.org/view.php?id=5219#bugnotes (I had to create an account to even see the bug details). Anyway – someone had the exact same problem I was having.
Seems the good folks at TestLink wanted me to create an anonymous user and grant XMLRPC access to that account…. ya right! So this defect was trying to allow XMLRPC authentication using the correct method, but the code just wasn’t working, and the “solution” that they came up with in the defect didn’t work either. The problem is, the first connection to Trac needs to authenticate using the /login URI path, however the code is not doing that – its just using the basepath. So, to make a long story shorter, I created a new variable with the login path and substituted that for the first connection. For anyone with similar problems, here’ s the exact solution I am successfully using now:
Edit the file /lib/issuetrackerintegration/tracxmlrpcInterface.class.php and insert the following at line 75 (inside the completeCfg() function:
if( !property_exists($this->cfg,’urilogin’) )
$this->cfg->urilogin = $base . ‘login/xmlrpc’;
That sets up the login URI. Then, you want to use it later in the file on line 278:
$this->APIClient = new xmlrpc_client($this->cfg->urilogin);
I also had to change the trac config (in the TestLink webapp under Issue Tracker Management -> Trac -> change the template to use <user> instead of <username>. After that, I could successfully add a Trac ticket to a failed testcase and navigate to it from TestLink. Sweet.
Now I can happily finish my evaluation of TestLink to see if the rest of it will actually suit my needs.