Posts Tagged ‘ Rational

bug or feature?

It seems to be a common joke among people in the software field whether when something odd happens in a program, is it a bug or a feature? I was working with Rational Functional Tester last week, which is a product based on the Eclipse framework, and came across a situation where I was asking myself that same question. This particular incident involved working with the application using the Java Development Tools (JDT), so its quite possible that this problem infests itself in the common IDE versions of Eclipse.

Long story short, Java projects in Eclipse have a source location and a binary location. The binary location is where source files are compiled to so that they can be executed. One of the common actions in Eclipse is to “clean” a project, which erases all of the compiled files and recompiles everything from scratch. This is particularly useful to improve the performance of binaries due to penalties incurred by incremental compilation. The problem I ran into was that my destination folder for compilation was the same as my source folder, which seems innocent enough to me. Why not store compiled files alongside their source counterparts? But when I went to clean the project, Eclipse decided to erase everything in the binary folders, including all of my source files. It would seem to me that the proper behavior would be to only delete files deemed to be generated by the build engine. Luckily, I had most of my work backed up in source control and on network shares, so not much was lost, but it was still very irritating.

RFT is based on Eclipse 3.3 or 3.4, I don’t remember which, but not a recent version, so I’m not sure if this is present in the current release (Helios). But I plan to investigate later when I have some time to burn…

Rational Rational Rational

So this summer I’ve been working with (and will continue to work with) an entire suite of IBM Rational tools, so I thought I would write down a few first impressions of this, seemingly, popular software. Ill start with just one today, and hopefully add more reviews as the summer progresses.

My one overwhelming gripe about all the Rational software is that it is all based on Eclipse. Yes I know, IBM originally wrote Eclipse and donated it as open source, but Eclipse is a resource hog that tends to quickly run out of control. Rational Functional Tester, Rational Performance Tester, Rational Team Concert Client, Rational Software Modeler, and more are all Eclipsed based. Oh, and as if that wasn’t enough, so is the installer for each of them (add that to the Eclipsed-based Lotus Symphony that IBM has us use for office documents and Eclipse-based Lotus Notes for email and collaboration, and my laptop is out of memory before I can even start coding). Whats worse in my opinion, is that as you incrementally install each Rational Tool, they build on each other into some mega Eclipse monstrosity rather than stay separate as their own installs. This beast then takes forever to load, oh yeah, and a lot more memory to run.

Rational Functional Tester: All I can say is, it does the job, but makes it painful. Ever since I started writing software, user interfaces were always the most challenging aspects to test. Simulating clicking on something, checking the appearance of a window, etc is no small task, which is why I have seen several project groups that I have mentored at school resort to manual testing for this kind of thing. RFT allows a developer to write functional “test scripts” in Java or which guide RFT to interact with another application. One great aspect of RFT is that, well only on Windows, it has a recorder feature which allows the developer to interact with the software and have RFT record what was done. The developer can also insert checkpoints into the recording where he can instruct RFT to compare various attributes of objects in the application to baseline readings to judge if a test passed or not. Another handy feature I wish I had back when I was working on AS400s is the ability to test command line applications and terminal applications both on System Z mainframes and IBM i 5250 green screens. But enough of the good stuff, heres what I’m not so fond of…..First off, let me say that I use RFT purely for testing web applications, so this experience is only based on RFT’s ability to work with the webapps that I am trying to test. So, my biggest gripe with RFT is a lack of consistency. Often times when I’m writing up a test script, I have code that I am positive will work, but it just plain wont. So ill restart the browser under test, sometimes that will fix it, or Ill restart RFT, sometimes that works, but most often I end up rebooting my entire machine to fix some stupid error. Oh yeah, Im working on windows testing using IE6, so that may have a lot to do with it, but RFT should be better. Second problem, RFT doesnt support many browsers. Hence why we are using IE6 at work (because the webapp under test doesnt behave well with firefox, sigh). Next, although the recorder is great for simple tests, it just isnt powerful enough to do many of the tests that we want to do, so we code every test script by hand, which leads me to my final gripe….Horrible API. I won’t even sugarcoat it, its not fun at all to deal with. In my opinion, it is far to generalized and leave the burden on the developer to do most of the work. There is even an internal IBM project which has developed a layer that sits on top of the RFT API and exposes a simpler API for webapp testers, but this layer doesnt cover everything. It can take 30-40 lines of code just to find a hyperlink on a webpage and click on it. Not cool. So overall, RFT is alright, it does the job, but can be a pain to work with. Ill try to update here more over the next few weeks with my impressions of the other Rational tools I’m using.