Last week I started working on a test case management tool for my current work.
I decided to build it as a plugin for Redmine, an open source project management application, which is based on Ruby on Rails. There seems to be quite a bit of interest in the community, and I hope I can leverage that to get help developing it — that’s the real point of open source anyway, isn’t it?
I’m moving slowly, working on it in my spare time. I’m deliberately keeping the feature set small in order to get something useful out there, get feedback, and let it evolve into the product that has the most use for the most people, with my own personal needs coming first, of course.
The first challenge is learning how to create a Redmine plugin, which I think I’m starting to turn the corner on. Next will be learning Rails well enough to take advantage of its features and have a code base that others can understand.
I think I’ve got a pretty good basic model of TestCases, TestSuites, TestRuns, TestResults, and TestReports.
- A Test Case has a title and a description, nothing else for now
- A Test Result has a status (pass/fail) and notes
- A Test Suite is a collection of Test Cases
- A Test Run is an execution of a collection of Test Cases
- A Test Report is the collected results of Test Cases in a Test Run
The basic workflow will be:
- Create Test Cases
- Add Test Cases to Test Runs
- Execute Test Run
- Click pass/fail on each test case, generating a test result
- Viewing the results for a Test Run
I have an idea for the UI as well, but could really use help on that.
Other things that might be included to expand the model in future versions
- A Test Environment can be associated with a Test Run
- A Test Plan describes a collection of tests and their execution
- Test conditions, steps, & data
- Agile / Scrum concepts
Additional features to be added in the future may include versioning of tests, integration with automation tools, consuming (and producing) JUnit Reports, continuous integration, requirements management, other bug tracking and test management tools (like TestLink, Testopia, Test Director)
Right now, I have a basic Redmine plugin that can do CRUD on a test case. You can see it at http://redmine-tcm.one-shore.com/test_cases
The next steps will be
- Associate test cases to a project.
- Create a test runs and add test cases
- Execute test cases in a test run and save the results
- View a report
I’ll work on getting a clean repository up (if there’s interest) on Github, Rubyforge, Sourceforge, or my own SVN repo. I hope to have a very basic version 1 within a month or so.
Hi, im interested in your Redmine Plugin Project.
I’m a software tester too, and got also some developing and linux experience. Tell me if i can help you with this project in any kind!
robert
Robert-
Thanks for the interest. I’d be glad to have your help. Tell me more about what features you’re interested in and how you’d like to contribute.
What features are required:
– define Testcases and Testplans which contain Testcases
– Testcases must be versioned. Also executed TC can only changed by creating a new version
– easy Testcase creation, that inludes adding Screenshots (see Screenshotpaste plugin in Redmine)
– Testcases consist of:
– Name, Description, maybe pre-, postcondition
– Dependencies (other Testcases) would be a good idea
– other custom fields will be great
– state (Draft,…)
– attachments (like Excel, Word documents …) and Images!
– Teststeps
– define the steps for running that TC
– consist of: Description, Precondition, Postcondition
– custom fields?
– Testplans refer to a list of Testcase versions
– Testplans can be executed by Testers in a Testrun
– Testruns consist of:
– System under Test (Maybe a configured list)
– Version (defined in Redmine)
– Build Number
– Environment/Test client with OS and Version
– a Testrun should also be assignable to a Tester by a Manager
– Grouping of Testcases in the Plan could be uses for assigning TestCaseGroups in a Testplan to multiple Testers
I could help in defining requirements ;), developing and testing the software. ;)
hope to hear from you.
robert
I like your idea. I have waited 1 year already to see some progress in this area for testers. I am pushing hard Redmine in our organization, and a test case management pugin would be the best thing. Please tell me also if I can help.
Thanks for the encouragement. I’m behind schedule but would like to get back to working on the Redmine test case management plugin this month.
Hi fijiaaron , i’m interested in your Redmine Plugin Project too.
I’m actually working in a personal plugin and have some problems with forms… ¿can you share yor code?
Thanks a million!
Bruney-
My code isn’t really worth sharing yet, can I beg another month or so. It’s not tied into Redmine yet and not very functional.
Robert-
Thanks alot. This fits very well with my idea. Let’s talk some more about how to tackle working together on this.
I’ve really been distracted with other work and hoped to have something basic working by now, but haven’t gotten to it.
Do you have any experience working on Rails or Redmine projects?
-Aaron
So, what’s the status on your project? It looks quite interesting.
Thanks.
It’s on the “I’m going to get back to it real soon now” track. Starting in September I’m going to have 5 hours/week dedicated to it. I hate to put another day up again and miss it, but look for a Halloween beta release.
Hi,
It`s a very good idea.
I have time to work on your project.
are you interested for my help?
I’m interested too. As a developer I may help…
Is this still a living project?
yes, but I haven’t had time to work on it in a while. It’s hibernating. :)
Hi,
It`s a very good idea.
I have time to work on your project.
are you interested for my help?
Hi, did you have the time to make any progress on this project?
Not yet.
I have currently done a 1st prototype where you can:
* Create testcases and link them to Issues (and on Projects)
* List testcases of current project (no grouping yet, treeview grouping planned)
* Run a linked testcase on an Issue (all in the Issue page where the issue is stil visible via Ajax)
* testcases consist currently only of
* description and title
* steps to do (text, no own entity)
* expected results (text)
* list of testruns on each issue
* versioned testcases! testcases are linked to an issue in a specific version
* list ran testcases of a project’s version in roadmap
* list testruns of a project’s version by testresult including a nice pie chart ;-)
Still feels like a prototype.. but its working :-)
I will ask my boss about opening an opensource project if some of you really want to contribute…
robig
Robig-
That sounds great — almost exactly what I wanted! Keep me posted if you open source it.
Hi Robig, we are looking for test management plug-in for Redmine. Were you able to opensource your prototype? Am not a Ruby developer, so looking for something that I can actually use!
I’ll be able to get back to work on this in January.
Thank you for the prompt response, eagerly waiting for your plug-in..
Also waiting .. how long will this take to ask you boss?
Please feel free to upstream on github