Learning Materials:

Material Type Title Overview Courses FOSS Area Tags Source
Producing Open Source Software

Producing Open Source Software is a book about the human side of open source development. It describes how successful projects operate, the expectations of users and developers, and the culture of free software. The book is released under an open copyright. You can buy it in bookstores, order copies from O’Reilly Media, or browse and download it here.

, , , , , , , , Karl Fogel
Intro to Bug Trackers

Learners will gain an understanding of the features of bug trackers and how they are used to identify work items to be completed in a FOSS project.

, bug tracker, issue tracker, foss2serve
Introduction to Test-Driven Development (TDD)

Participants write a unit test (in GoogleTest) and corresponding C++ code to pass the test to verify the test passes.

, tdd, unit test, foss2serve
Introduction to Static Analysis

Participants write a unit test (in GoogleTest) and corresponding C++ code to pass the test to verify the test passes.

, C++, GoogleTest, static analysis, foss2serve
Examine Branch Test Coverage

Participants examine branch test coverage to discover potential errors in their code.

branch test, C++, git, QA, Unit Testing, foss2serve.org
Regression Test Assignment

Participants write unit tests (in GoogleTest) to establish reliable regression tests for a C++ class

C++, GoogleTest, unit test, foss2serve.org
Reproduce a Bug Activity

High level description of what the student will do

Research Bug Activity

Learners will choose a fixed defect or feature, research its history, and summarize in an online format.

, bug, bug report, defect, foss2serve.org
Solving A Bug

JUnit is a large, mature free and open source software (FOSS) that is written in Java. Learners will read an open issue in JUnit, find resources to research and understand it, replicate the bug, produce some improved additional test cases while writing a better bug report, and describe the process required to fix the bug.

bug, bug report, Java, JUnit, foss2serve.org
Test Coverage Activity

Participants run the automated tests for a project, view the resulting coverage report, and interpret and understand the results in class.

coverage, testing, foss2serve.org
Test Driven Development

Students will follow and implement a beginner level java-based Test Driven Development (TDD) approach with JUnit in the Eclipse IDE. First, they create a test case that fails, then they start creating mock code, and finally a simple piece of code that allows their test to pass.

, , , Eclipse, Java, JUnit, foss2serve.org
Test Installation Instructions

The goal of this activity is to test the correctness and completeness of the download and installation instructions for a FOSS project.

, , , install, foss2serve.org
Test Release Candidate

Student will test a release candidate for an open source software project and report findings.

, QA, testing, foss2serve.org
Testing And Coverage Assignment

Participants write unit tests (in GoogleTest) to identify bugs in a C++ class

bug, C++, GoogleTest, foss2serve.org
Unit Test With GoogleTest Activity

Participants install the Google Test library and run an existing C++ project to see individual test results and confirm successful installation.

, QA, unit test, foss2serve.org
Write a Bug Report

In this part, students will gain some basic knowledge about bug tracking systems, and how that can be used in FOSS projects. Students will also check and confirm the existence of a reported bug (both in a stable version, and in an unstable version), and report out their findings using Bugzilla.

bug, bug report, bug tracker, issue tracker, foss2serve.org
Branch Test Coverage

Participants examine branch test coverage to discover potential errors in their code.

, SQA, testing, validation, verification, foss2serve.org
Bug Gardening

Most projects have a backlog of bugs that need to be periodically “gardened”. Sometimes there are even old bugs that may have already been fixed that just haven’t been closed in the system. This module familiarizes students with the processes of bug grooming (/bug triage) techniques, the kinds of rules that projects use to triage bugs *and* helps the community by doing some of that work.

, bug, bug tracker, issue, issue tracker, foss2serve.org
Finding the Code Responsible for Behavior

Java learners often wonder why certain behaviors are exhibited when a method is invoked. They tend to view the entire mechanism as “magic”. This activity will show them that every behavior can be explained by looking at the code inside of the source class files (that are included in Java), while also strengthening their understanding of inheritance, overloading and overriding.

, , Java, foss2serve.org
Return to Teaching Materials