- FindBugs – works on Java. In the list of bugs detected all of the “Multithreaded correctness” bugs are relevant to concurrency. Command-line interface or eclipse plugin (eclipse plugin update site:http://findbugs.cs.umd.edu/eclipse/)
- Lint – a UNIX tool for C
- JLint – a Java version of Lint that is available as stand alone or eclipse plugin (eclipse plugin update site:http://www.jutils.com/eclipse-update)
- Parasoft JTest – commercial tool that combines static analysis and testing. Has capability to check for thread safety in multithreaded Java programs.
- Coverity Static Analysis and Static Analysis Custom Checkers – commercial tool that can be used to create custom static analyzers to find concurrency bugs in C/C++ programs.
- Continue reading “Static Analysis Tools for Concurrency”
[Note: This is an old post and while many of the reasons remain true some of the data is old. A new post from 2017 is not available! Top Reasons to Study Computer Science at UOIT]
This Saturday, March. 3, 2012 from 10:00am-2:00pm UOIT will be hosting its annual Winter Open House for prospective students interested in studying at UOIT. This year myself and Dr. Christopher Collins will be coordinating the Computer Science lab tour. As the undergraduate program director for Computer Science, I will be providing a 30 minute overview of the Computer Science programs (comprehensive program, digital media specialization,
digital forensics specialization) while Chris will be in the undergraduate lab where a number of our undergraduate students. The students will be available to give demos, answer questions and showcase Computer Science at UOIT.
I have participated in UOIT recruitment events for the past 5 years and I have answered a lot of questions from potential students and their parents. One of the most common questions that I get asked every year is:
Why should I choose to study Computer Science at UOIT?
As the use of concurrency in software increases there are more software testing tools being developed in both industry an academia. Below is a fairly comprehensive list of tools (mainly for Java):
- ConTest – IBM concurrent testing tool that inserts random delays into Java bytecode
- ConAn – a thread testing tool for Java
- CHESS – a Microsoft tool for concurrent testing in Visual Studio
- CalFuzzer – an active testing framework
- ConMAn – mutation testing tool for concurrent programs written in Java
– clone detection tool that detects user specified patterns (intended for project-specific bug detection). Can be combined with ConTest tool.
- Coverity Dynamic Analysis – commercial tool that detects bugs in multithreaded Java programs [http://scan.coverity.com/]
- Chord – static and dynamic analysis tool for Java (listed below as well).
- Pluralism – Modular object protocol checking for Java
- Flashlight Dynamic Analysis – a commercial tool from SureLogic that is currently available in early release.
- MPI testing tools: TotalView, Intel Message Checking, MPI Check, Marmot
- JFuzz – testing tool built on Java PathFinder
- MutMut – concurrency mutation testing tool built on Java PathFinder
- AtomRacer – detection of data races and atomicity violations
- Eraser – detection of data races by tracking sets of locks that are acquired/held during execution.
This blog is a place where I will…
- discuss ongoing research projects in the Software Quality Research
- discuss interesting state-of-the-art work being done in the areas of software testing, software quality assurance, concurrent software systems, distributed software systems.
- comment on the current state of Software Engineering — both research and practice.
- mention anything else I find interesting or funny.
If you have any comments or thoughts on my posts I’d be interested in hearing what you have to say.