New Tools and Documentation

15
New Tools and Documentation Matthew Sell, CSSE Student MASS Research Participant, August 2014

Transcript of New Tools and Documentation

Page 1: New Tools and Documentation

New Tools and Documentation

Matthew Sell, CSSE Student

MASS Research Participant, August 2014

Page 2: New Tools and Documentation

CMMI is a good model

www.cmmilevels.com

TARGET

Page 3: New Tools and Documentation

Revision Control

Automation

Unit Testing

Issue Tracking

Documentation

Page 4: New Tools and Documentation

GIT repositories - implemented

Coming soon: • GitBlit for respository management

Page 5: New Tools and Documentation

Apache Maven

• Project Metadata

• Dependency Management

• “Artifactory” for hosting libraries

Jenkins

• Automated build from Git repository

• Unit testing / code coverage

• Build / test failure notifications

• Integrates with issue tracker

• Browser based, hosted at UWB

Page 6: New Tools and Documentation

Project Status

Project Health

Page 7: New Tools and Documentation

Historical Unit Test Coverage

Unit Test Trend

Page 8: New Tools and Documentation

Compile Failure

• Missing dependencies? (update Maven POM!)

Unit Test Failure

• Some behavior changed

• New bug introduced

Code Coverage Insufficient

• Need more unit tests

• Weak test cases

Page 9: New Tools and Documentation

Junit + EasyMock

• JUnit for exercising methods

• EasyMock to simulate dependencies

• Easy to run within IDE – execute often!

One test class for each class implementation

• “UtilitiesTest” for “Utilities”, and so on

Image Credit: http://cmenness.hd.free.fr/webdoc/gwt-docs-20081026/html/GettingStartedJUnit.html

Page 10: New Tools and Documentation

Test for correct behavior

• Methods return correct results

Test for consistent behavior

• Methods interact with dependencies as expected

Found a bug? Write a unit test!

• Test fails – bug reproduced

• Test passes – bug resolved

Page 11: New Tools and Documentation

Redmine Issue Tracker

• http://www.redmine.org

• Browser based, hosted at UWB

Issue types:

• Bugs (deficiencies, flaws, opportunities, etc.)

• New Features / Enhancements

• Tasks

Page 12: New Tools and Documentation

Issue Management

Development

Build Automation

Unit Testing

Repository

Page 13: New Tools and Documentation

User’s Guide

• Theory of operation

• API documentation + Javadocs

• Using MASS

Developer’s Guide

• Project / IDE configuration

• Build instructions

Administrator’s Guide

• System administration

• System configuration

• Installation steps

Page 14: New Tools and Documentation

Revision

Control

• Git Repository - complete

• GitBlit – not started

Automation

• Maven – nearly complete

• Jenkins – nearly complete

Unit Testing

• Junit + EasyMock – “Utilities” complete

Issue Tracking

• Redmine – installation in progress

Documentation

• Docbook version started

Page 15: New Tools and Documentation

Check Redmine issue tracker for progress

(once operational)