Open Source Quality Assurance Report ==================================== Due: Tuesday, April 8, at 11:59pm. Email your report to the instructors. Introduction ------------ This is a group assignment. Do this assignment together with other 15-413 CMU students who are working on the same open source project. The purpose of this report is to describe the quality assurance process and tools that your team is using, as well as the process and tools used by other open source developers on your open-source project. A good starting point is to consider the following questions: * Describe the quality assurance approach at a high level. What techniques and practices are used to ensure quality? Do some of these practices affect artifacts other than code? Are there things your project does to ensure quality even before code is testable? * Describe the life cycle of a bug in your project. Explain how any bug tracking software is used to facilitate that lifecycle. * Describe how your project does testing. Are there standards for how much testing should be done? At what scale is testing done: unit testing, integration testing, system testing, etc.? What testing infrastructure is used--e.g. JUnit, Travis, etc? Are there libraries you use that facilitate testing, or is the design of your system affected by the need to do testing effectively? Does the domain of your open source project make testing challenging in any way, and if so, how are those challenges addressed? * Describe how your project does inspection. What is inspected--only code, or other things too? Who does inspection (have you done any inspections yourself, or had your code inspected)? How is an inspection done? Are there checklists used? Are there tools that facilitate inspection? * Describe any static analysis tools that are run by your project. This may include style checkers, bug finders, etc. * Describe any other tools or quality assurance approaches used by your project. * Criticise your project's quality assurance practices. Are there things your project could do better to ensure quality? Are there practices in use that are inefficient and could be streamlined? After answering these questions, think about *why* the quality assurance approach might have been chosen. Are there ways in which the approach matches the domain of the software, or the people involved, or the tools being used, particularly well? Report Deliverable ------------------ All teams will produce a report, due Tuesday, April 8, at 11:59pm. Teams that have not presented previously will also give a presentation in class on April 22. The length of the report should be approximately 1 page + 1 extra page per person in the group (e.g. group size one => 2 pages, group size two => 3 pages, group size four => 5 pages).