1. Classic environments
SCM tool: CVS with CVS monitor (http://sourceforge.net/projects/cvsmonitor/)
Build tool: Ant for projects using Java; otherwise, make
Test environment: xUnit
Bug tracker: FogBugz, but only if the preconfigured settings work for you; otherwise, TestTrack.
Documentation: FrameMaker
2. Modern environments
SCM tool: Subversion with CVS monitor (http://sourceforge.net/projects/cvsmonitor/)
Build tool: Ant for projects using Java; SCons for most projects and other languages
Test environment: xUnit
Bug tracker: JIRA
Documentation: OpenOffice and DocBook
3. SCM software - CVS
CVS (http://www.nongnu.org/cvs/) is by far the most commonly used open source software configuration management tool. The best documentation for CVS was " the Cederavist", also known formally as "version management with CVS"(http://ximbiot.com/cvs/manual/).
ACLs: these allows you to control who can commit files, according to the user, the branch, and the directory name. The cvs_acls script from the contrib directory of the CVS source and the patches from http://cvsacl.sourceforge.net/.
Browsing CVS files: for web-based viewing of repositories, the Python-based ViewCVS interface (http://viewcvs.sourceforge.net) is excellent.
Graphical CVS clients: SmartCVS (http://www.smartcvs.com)
4. Building software
4.1 GNU autotools.
The GNU autotools suit consists of three separate tools - Autoconf, Automake, and Libtool. Autoconf (http://www.gnu.org/software/autoconf) creates shell script named configure. These scripts can be executed to find out which features required by an application are present on a particular platform. Automake (http://www.gun.org/software/automake) use Makefile.am files to create Makefile.in template files, which autoconf can then use to create GNU gmake makefiles. Libtool (http://www.gnu.org/software/libtool) helps create static and shared libraries in a portable and versioned manner for programs that written in C.
4.2 Ant
Ant (http://ant.apache.org) is an open source build tool, part of the Apache community of open source software projects. It is used especially for Java.
4.3 SCons
SCons (http://www.scons.org) is a full-featured build tool.
5. Testing software
5.1 xUnit
JUnit (http://junit.sourceforge.net and http://junit.org) is a well-known open source test environment for Java classes.
CheckFramework (http://check.sourceforge.net/) is a mature well-tested unit test framework for C.
CPPUnit (http://sourceforge.net/projects/cppunit) does C# as well as c++.
UnitTest++ (http://unittest-cpp.sourceforge.net/) for C++
For other languages, check the list: http://c2.com/cgi/wiki?TestingFramework
5.2 DejaGnu (http://www.gnu.org/software/dejagnu). If you need to test your program on many platforms (basically anthing that gcc runs on) or if you want a lot of text-based user interactions as part of your testing, then you should consider use DejaGnu.
5.3 Memory analyzers
The best-known memory analyzers are Electric Fence(http://directory.fsf.org/ElectricFence.html), Valgrind(http://valgrind.kde.org), and dmalloc (http://dmalloc.com).
5.4 Performance Tools
Performanc tools record how often each line, function or method, and class were called, but they also record how much time was spent in each place in the source code.
Gcc supports profiling ability with gprof. Valgrind also has this function.
0 comments:
Post a Comment