Version control

Version control tracks and coordinates revisions to a set of resources (typically program source files). Makes it easier for multiple authors to revise files and maintain document integrity. The Cytoscape project uses CVS (Concurrent Versions System - http://www.cvshome.org/). There are more advanced version control systems available these days, but CVS is free and sufficient for our needs.

Issue tracking

Issue tracking has the following advantages:

Cytoscape is using the open-source mantis bug-tracking system (http://mantisbt.sourceforge.net/). Our instance is: http://cbio.mskcc.org/cytoscape/bugs/main_page.php

Regression testing

Regression testing is the developer centric process of running an automated test suite to find if recent changes have broken the software. Cytoscape uses the freely available JUnit tool (http://www.junit.org). Unit tests should be written for each class. An example test would read in a file and check to see that values read from the file are properly stored in memory after the read operation.

It is recommended that developers write unit tests, that these tests be organized into suites, and that all tests be organized to run from the single ant 'test' target. This makes regression testing easier before release. Unit tests are currently organized so they can be run individually and locally if desired. Full details are available in the cytoscape.unitTests.AllTests class.

Cytoscape may also require a GUI testing suite, like Abbot (http://abbot.sourceforge.net/), although no tool has been tested or chosen. If you know of a good one that is free, please let us know.

Integration and release testing

This user-centric quality assurance process involves a typical user testing the application on a typical platform. Currently Cytoscape does not have dedicated QA staff, but it has been decided that a minimal integration test process be worked out and followed before any major software release. A number of interested users within each participating developer organization should be locally organized as a test group and alerted when Cytoscape is ready for general testing before each release.

Documentation

There are four types of documentation considered here.

Analysis and estimation (A&E)

Feature prioritization and planning are important things to consider in any software development project and should allow the most important features to be implemented to a stable level first. Typically, Cytoscape performs A&E in the individual groups for each project, although major features are discussed on weekly conference calls and at the Cytoscape retreat.

Build Process

Cytoscape is currently built using Ant scripts. Ant also automates testing tasks as well. Changes to the build process should be localized to the single build.xml file for clarity.

Development_tools (last edited 2009-02-12 01:03:52 by localhost)

Funding for Cytoscape is provided by a federal grant from the U.S. National Institute of General Medical Sciences (NIGMS) of the Na tional Institutes of Health (NIH) under award number GM070743-01. Corporate funding is provided through a contract from Unilever PLC.

MoinMoin Appliance - Powered by TurnKey Linux