CS4472 MC10 Linux Software for Fall 2015
The following systems have been installed on the linux boxes in MC10
and are directly related to software testing and quality assurance.
- autoconf -- ``GNU Autoconf is a tool for producing configure scripts for building, installing and packaging software on computer systems where a Bourne shell is available.'' (from wikipedia entry)
- autotools-dev -- ``The GNU build system, also known as the Autotools, is a suite of programming tools designed to assist in making source code packages portable to many Unix-like systems.'' (from wikipedia entry) includes autoconf,
automake and libtool
- buildbot -- ``Buildbot is a software development continuous integration tool which automates the compile/test cycle required to validate changes to the project code base. It began as a light-weight alternative to the Mozilla project's Tinderbox, and is now used at Mozilla, Chromium, WebKit and many other projects'' (from wikipedia entry)
- cccc -- `` CCCC analyses and reports measurements of source code in C, C++, and
Java. It was developed to augment programmers’ instinctive application
of numeric rules of thumb about what constitutes high or low quality
products with an automated analysis tool.'' (from ubuntu man page)
- cmake -- ``CMake is cross-platform free and open-source software for managing the build process of software using a compiler-independent method. It is designed to support directory hierarchies and applications that depend on multiple libraries. It is used in conjunction with native build environments such as make, Apple's Xcode, and Microsoft Visual Studio. It has minimal dependencies, requiring only a C++ compiler on its own build system.'' (from wikipedia page)
- dejagnu -- ``DejaGnu is a framework for testing other programs. It has a main script called runtest that goes through a directory looking at configuration files and then runs some tests with given criteria. The purpose of the DejaGnu package is to provide a single front end for all tests.'' (from wikipedia page)
- emacs -- ``GNU Emacs is an extensible, customizable text editor -- and more. At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing.'' (from official web site) --
it pretty much does everything, what Eclipse should have been.
- frama-c -- ``Frama-C can be used for the following purposes:
1) To understand C code which you have not written. In particular, Frama-C enables one to observe a set of values, slice the program into shorter programs, and navigate in the program;
2) To prove formal properties on the code. Using specifications written in ANSI/ISO C Specification Language enables to ensure properties of the code for any possible behavior. Frama-C handles floating point numbers;
3) To enforce coding standards or code conventions on C source code, by means of custom plugin(s);
and 4) To instrument C code against some security flaws.'' (from wikipedia page)
- freemind -- ``FreeMind is a free mind mapping application written in Java. ... As with other mind mapping software packages, FreeMind allows the user to edit a hierarchical set of ideas around a central concept. The non-linear approach assists in brainstorming new outlines and projects as ideas are added around the mind map.'' (from wikipedia page)
- gcov -- ``Gcov is a source code coverage analysis and statement-by-statement profiling tool. Gcov generates exact counts of the number of times each statement in a program is executed and annotates source code to add instrumentation''
(from wikipedia entry)
- gdb -- ``The GNU Debugger, usually called just GDB and named gdb as an executable file, is the standard debugger for the GNU operating system. However, its use is not strictly limited to the GNU operating system; it is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, C, C++, Objective-C, Free Pascal, Fortran, Java and partially others.'' (from wikipedia entry)
- git -- ``Git is a widely used version control system for software development. It is a distributed revision control system with an emphasis on speed, data integrity, and support for distributed, non-linear workflows.'' (from wikipedia page)
- google-mock -- ``Google's framework for writing and using C++ mock classes'' (from Ubuntu package page)
- Google Test -- ``Google Test is a unit testing library for the C++ programming language, based on the xUnit architecture.'' (from wikipedia entry)
- graphviz -- ``Graphviz (short for Graph Visualization Software) is a package of open-source tools initiated by AT&T Labs Research for drawing graphs specified in DOT language scripts. It also provides libraries for software applications to use the tools.'' (from wikipedia page)
- libgtest-dev -- googletest library
- qmtest -- ``QMTest is an open-source, general-purpose, cross-platform software testing tool written entirely in Python. QMTest can be used to test compilers, databases, graphical user interfaces, or embedded systems. QMTest provides a convenient graphical user interface for creating, managing, and executing tests, provides support for parallel test execution, and can be extended in a variety of ways.'' (from QMTest paper)
- r-base -- ``R is a programming language and software environment for statistical computing and graphics. The R language is widely used among statisticians and data miners for developing statistical software and data analysis.''
(from wikipedia entry)
- splint -- ``Splint, short for Secure Programming Lint, is a programming tool for statically checking C programs for security vulnerabilities and coding mistakes.'' (from wikipedia entry)
- tcm -- ``The Toolkit for Conceptual modeling (TCM) is a collection of software tools to present specifications of software systems in the form of diagrams, tables, trees, and the like. TCM offers editors for techniques used in Structured Analysis as well as editors for object-oriented (UML) techniques. For some of the behavior specification techniques, an interface to model checkers is offered.'' (from wikipedia entry)
- valgrind -- ``Valgrind was originally designed to be a free memory debugging tool for Linux on x86, but has since evolved to become a generic framework for creating dynamic analysis tools such as checkers and profilers.'' (from wikipedia entry)
- wikipedia entry for
- official web site
The Valgrind Quick Start Guide
Using Valgrind to Find Memory Leaks and Invalid Memory Use web page
- Valgrind User Manual
- a large list of projects
that use valgrind including: OpenOffice, Mozilla, MySQL,
NASA Mars Exploration Rover, R statistics package, Gimp, Pixar's Renderman,
Perl, Python, PHP, KDE, GNOME, games such as Medal of Honour and Call of Duty,
Yahoo! Messenger, and SAS (business intellignece and analysis system).
Make, GDB, and Valgrind youtube 40:02 ``An introduction to basic programming tools used in Portland State University's CS program.''
- xxgdb -- ``Xxgdb is an open source X Window System front-end for gdb''
(from wikipedia entry)