Tuesday, December 01, 2009

Testopia 2.3 Released!!!

Well, it sure took long enough... But good things come to those who wait. :-)

http://www.mozilla.org/projects/testopia/

As mentioned earlier, this moves a lot of files. Please be sure to answer NO when asked during checksetup if you need to merge any of your own changes into the new locations.

As always, enjoy!

Monday, November 09, 2009

2.3 Beta

We have a beta folks!
Grab it from ftp://ftp.mozilla.org/pub/mozilla.org/webtools/testopia/testopia-2.3-BETA-BUGZILLA-3.4.tar.gz

Usual steps apply. Reverse old patch, untar, apply new patch, checksetup. The only thing to note is the new patch is in extensions/testopia now.

As always, this is a beta which means I would not yet recommend it for production installations. But you can try it out on a test install to see how it will work with your data.

As usual, log bugs that you find at http://bugzilla.mozilla.org

For those that don't want to mess with installing it, you can test it out at http://landfill.mozilla.org/testopia

Silly Bugs

So I was really hoping to have a release done by now. Over the weekend I found a major issue with the database upgrade script which took a few hours of tracking down (calls to bz_alter_column on columns that have REFERENCES need to have the REFERENCES hash included). I think I have finally squashed it, but I ran out of time to test it last week. With luck, I will be done testing in the next couple of days.

For those upgrading from a previous version, you will need to pay attention to the new file structure. Especially if you have made any modifications to the code. If so, you will want to merge your changes into the files in the new location in the extensions directory. All files will have moved there except the cgi scripts.

I wanted to have a script that will clean up the old file structure. Depending on how ambitious I feel this week, I may still try to get to it.

UPDATE:

The following files will be moved into the extensions directory:

testopia (dir) -> extensions/testopia/
Bugzilla/Testopia/ (dir) -> extensions/testopia/lib
Bugzilla/WebService/Testopia/ (dir) -> extensions/testopia/lig/WebService
Bugzilla/Config/Testopia.pm -> extensions/testopia/lib/Testopia/Config.pm
skins/standard/testopia.css -> extensions/testopia/css/testopia.css
template/en/default/testopia/ (dir) -> extensions/testopia/template/en/default

The following templates and template hooks have been moved to the
extensions/testopia/template directory:

template/en/default/admin/params/testopia.html.tmpl
template/en/default/hook/admin/products/confirm-delete.html.tmpl
template/en/default/hook/admin/products/confirm-delete.html.tmpl/confirmation/testopia.html.tmpl
template/en/default/hook/bug/create/created.html.tmpl/message/tr.html.tmpl
template/en/default/hook/bug/create/create.html.tmpl/end/tr.html.tmpl
template/en/default/hook/bug/create/create.html.tmpl/form/tr.html.tmpl
template/en/default/hook/bug/edit.html.tmpl/after_custom_fields/tr.html.tmpl
template/en/default/hook/bug/process/results.html.tmpl/links/tr.html.tmpl
template/en/default/hook/global/banner.html.tmpl/version/testopia.html.tmpl
template/en/default/hook/global/code-error.html.tmpl/errors/testopia_errors.html.tmpl
template/en/default/hook/global/common-links.html.tmpl/link-row/testopia.html.tmpl
template/en/default/hook/global/header.html.tmpl/additional_header/testopia_styles.html.tmpl
template/en/default/hook/global/useful-links.html.tmpl/end/tr.html.tmpl
template/en/default/hook/global/user-error.html.tmpl/errors/tr-user-error.html.tmpl
template/en/default/hook/index.html.tmpl/links/tr.html.tmpl
template/en/default/hook/list/list.html.tmpl/links/tr.html.tmpl

Also, because of the more complete reliance on hooks, Testopia 2.3 will not be compatible with Bugzilla 3.2. In other words, we are back to only supporting a single version of Bugzilla at a time. If you want to upgrade Testopia, you will first need to upgrade Bugzilla to 3.4.3.

Wednesday, October 28, 2009

The Grand Testopia User Survey

As I have mentioned once or twice on this blog, I have been steadily working towards finishing a masters degree in Information Technology. Well, the sweat and tears have paid off. Not only has it already improved Testopia immensely (the user documentation was one class project for example) but it has helped me become a better person.

I am finally entering my final course, and of course (pun intended), I need to put together a final capstone project or thesis. I am working on a lengthy white paper about Testopia and how it can be used to improve software both in open source and commercial applications.

To aid me in my research, I have put together a short survey (10 questions since that is the limit for the free surveys an survey monkey), and would like to invite one and all to make their voices heard. The main topic deals with how Testopia is being used around the world and how it can be improved.

Link: http://www.surveymonkey.com/s.aspx?sm=dUVeV_2fiXbuOap9S4_2fYfbRg_3d_3d

Make your opinion count. Tell your friends. *Free warm fuzzies to the first 100 respondents! (Limited time only)

* Warm fuzzies are the good feeling variety and cannot be redeemed for cash or value in any state or country on planet earth. Void where prohibited. Expires 11/30/09 since I gotta turn in my paper by the end of class. Limit to the first 100 respondents because that is the limit for free surveys. Hey, I am cheap, what can I say.

Friday, October 23, 2009

Testopia 2.3 Wrapping Up

Finally, after much anticipation, stress, and pizza, work on Testopia 2.3 is about done. The biggest challenge that remains is to put together upgrade instructions and possibly a script. After some hemming and hawing, I finally decided to take the plunge and move Testopia into the Bugzilla extensions space, making it a bone fide... well, extension.

This means that if you upgrade to 2.3 from a previous version, and you have made modifications to the Testopia code, you will need to merge your changes into the new location within extensions. I promise the rewards will be well worth the work and wait though. For example, Testopia will now support full XML dumps and import of test plans with all their child data. Also, you can export run results in CSV format to import into your favorite spreadsheet application to build fancy reports.

You will also be able to make a true clone of a test plan now as well. In the past, cloning runs would not link to cloned test cases. Well, now you will be able to copy all your cases as well as your runs and have them magically linked to the copies.

Watch for the announcement in the coming days.

Wednesday, September 16, 2009

PDF Print FAIL!

I have been working on an oft requested feature, that of exporting a test plan to a printable format such as PDF. After nearly a week of headache, I give up. It seems that most of the sane sounding Perl PDF packages out there have all died long ago. PDF::FromHTML seemed really promising, but so far it doesn't seem to support modern versions of Adobe and what is worse, throws taint errors when used from the CGI. It also doesn't handle table tags AT ALL! I am not sure how layout is supposed to happen in that case since it also doesn't support CSS.

It appears there are a dozen other modules in the PDF:: space but short of spelling out each dot by hand, it seems that this is a futile effort. I am happy to take suggestions on other modules or packages. If anyone has had success with generating PDF from Perl, and preferably from an HTML template (or directly from Template Toolkit) I would love to hear about it.

In the mean time, I am making progress on rewriting XML export and import. I currently have exporting a plan with all cases and runs and importing a plan with all its cases working. Personally, I don't see a need to import runs and case-run data. But there have been several requests for this functionality. This will be a challenge though getting all the linkages right.

At this point, I am pushing for mid October to release.

Saturday, August 22, 2009

Some good news and some bad news...

So I am finally making real progress on the Bugzilla 3.4 support. At the current rate, I hope to have a final release in the next 4 weeks or so. 3.4 has done a bang up job on getting hooks in most of the places I need them (thanks Max) and now supports extensions in earnest. This adds some complications to the upgrade process. I am in the process of moving all the Testopia files into the extensions directory of Bugzilla. I am not sure there is a sane way to script the upgrade because of this, since anyone with customizations or modifications could potentially be broken. The best thing might be to write up detailed instructions on how to copy and move the files into the extensions area.

For those interested, it appears that the patch for 3.2 applies cleanly to 3.4 and Testopia 2.2 appears to function just fine in that environment. I have not done thorough testing on this so I don't recommend it for production, but if you are itching to use Bugzilla 3.4 with Testopia. Following the instructions for installing with 3.2 should work for the most part.

Now for the bad news.

At the end of May, Novell announced that they were outsourcing almost my entire department. As part of the outsourcing agreement, I was moved to the outsourcing company. I have spent the last couple of months getting acquainted with my new employer and learning what is in store. As part of the transition, many of my current responsibilities will be sent to the support department in India and I will be assigned other roles and projects. I see this as a great opportunity to expand my horizons. As a result of this however, I will not be able to continue making regular contributions to Testopia until, and unless, Novell specifically requests these services from me.

Suffice it to say, the future is hazy at this point. Though I thoroughly enjoy working on this project, I don't have the time or drive to continue doing so outside of my regular work hours except on a very limited basis. As it happens, I inherited this project from Ed after he got hired at a new location that limited his time to devote to the project. Interesting how the wheels of time turn isn't it?

What does this mean for Testopia? Well, I remain committed to getting the 3.4 release completed. I will continue to offer support in the mailing lists and in the chat room as I have time and will continue to work on bug fixes and review submissions. However, I don't see much time for new enhancements and major changes going forward unless this comes from the community. I would like to continue my role in the project until someone expresses interest in coming up to speed with the code and taking on the responsibility.

I sincerely hope that the project will continue to grow. I have faith that there will be enough community involvement to maintain it for the future. I will do what I can to ensure that it does. In the meantime, watch for the next release in the coming weeks.

Wednesday, July 22, 2009

Live from OSCON 09

Wow, so I say I am back and then don't post for over a month. I can't believe how the time flies.

So, I am at OSCON this week. You can follow my meanderings on twitter: http://twitter.com/ghendricks that is if you do that sort of thing. I didn't until this week really, but I am really starting to see what makes twitter so great.

Today we had a couple of great inspiring talks that, well... inspired me.
Michel Lopp's keynote for example talked about how every project is the result of decisions. Big decisions yes, made by other people, but moreso small day to day decisions made by the developer that ends up steering the course. It made me realize that Testopia is the way it is today largely because of stupid little decisions that had to be made, and had to be made immediately, without any real vetting or discussion. So the reason why the tags are the way they are for example, is just that. In retrospect, I see that some of those decisions were mistakes, but now are so entrenched that they are hard and painful to pull out. Others turned out to be great successes in my opinion.

Another talkby Ben Collins-Sussman and Fitz has helped me see that I really need to be less worried about making mistakes and more into learning from them.

So with that, where are we? Well, Bugzilla 3.4RC1 is out already. Testopia does not yet support 3.4 but I have begun work on the port. Extjs also released version 3.0 of their toolkit and I am resisting the urge to include it in Testopia. Need to focus on one area at a time I think.

Wednesday, May 20, 2009

I'm Baaaaack

OK, so for the benefit if the three of you Testopia users that are left, I thought I would let you know I am wrapping up the project at work that has eaten all my waking hours in the coming weeks, and the focus is going to shift back towards Bugzilla/Testopia for a while. That means I have a lot of catching up to do. Especially given the announcement of Bugzilla 3.4 RC 1 right around the corner.

Also, it seems that Ext 3.0 is out. Just in time to fix a new batch of browser bugs (I hope). It appears that this version is going to have a lot of spiffy new features. Of course, I am not sure how to reconcile the continuing license issuse. No word on whether the existing FLOSS exception will carry over.

I have a slew of new ideas on top of the existing enhancements already logged. There is going to be a lot of work in the coming weeks.

Oh, and for those that use MediaWiki, you might want to check this out.

Stay tuned...

Tuesday, April 14, 2009

Hiatus

I have recently been assigned to a new project at work. This has limited the amount of time I am able to spend on Testopia and Bugzilla work while on the job. As I am also working on a masters degree part time, this limits my involvement outside of work. I have been keeping up with help requests and the like but have to take a hiatus on new development and bug fixes (unless those bugs impact our own installation) for a while. I continue to keep tabs on the incoming bugs and hope to have time soon to prioritize them. I also don't want to get too far behind the Bugzilla 3.4 branch so as to have the next version of Testopia ready in time for that release. In the meantime, I do have time to do reviews on patches and I welcome any and all who wish to tackle outstanding bugs or enhancements.

So in case you were wondering... I'm not dead yet.
I think I'll go for a walk.

Monday, February 02, 2009

Testopia 2.2 is Here... Really... sort of...

Testopia 2.2 is out.

However, there still seem to be some lingering issues with upgrading from earlier versions. Specifically when it attempts to add foreign keys, you may get an error that looks something like this:

Adding foreign key: test_case_activity.case_id -> test_cases.case_id...
DBD::mysql::db do failed: Can't create table './bugs_bugzilla/#sql-965_5bde2.frm' (errno: 150)
[for Statement "ALTER TABLE test_case_activity ADD

CONSTRAINT fk_test_case_activity_case_id_test_cases_case_id FOREIGN KEY (case_id)
REFERENCES test_cases(case_id)
ON UPDATE CASCADE ON DELETE CASCADE"] at Bugzilla/DB.pm line 502

If you see this, it means (due to my earlier stupidity), that you will need to alter the columns referenced to remove the UNSIGNED attribute. This is most easily done using a nice GUI tool such as Mysql Query Browser where you can simply right click on a table, choose edit, and uncheck the box labeled UNSIGNED then click apply and then execute. However, you can also do it from the regular command line client with a command like:

ALTER TABLE `>table<`
MODIFY COLUMN `>column<` [INTEGER|SMALLINT|TINYINT] NOT NULL [AUTO_INCREMENT];

Care should be taken to ensure that the column in question really is an INTEGER type (it may be SMALLINT for example) and if it is already an auto_increment column, you will need to add AUTO_INCREMENT at the end. It is best to do a describe table on both tables before hand to ensure the column types and which are key fields. Oh, and you did back up your database first right?

You may have to repeat this process on a handful of columns. I am working on a script that will (hopefully) clean all these up, but in the mean time, this is how to work these out manually if you are so inclined.

This is on Mysql. I am not sure how do it in Postgres or if this is even an issue there.