Project

Project:

The goal of this project Is to (1) practice building and testing large projects, and (2) analyzing large software projects and providing your assessment of testing in the following project.

Please write an essay about the state of testing in your assigned project. In this essay, you should articulate your views in about adequacy of the tests, and the appropriateness of testing process (e.g., frequency of adding tests, time to run tests). We suggest you think about these questions from two angles: a developer and a tester. A developer wants to move fast, but also needs the help of tests to find the bugs in his/her code as soon as possible. A tester wants to design (unit and system) test cases along with a testing process to provide an acceptable level of confidence, but within staff and computing time budget.

Note that it is a technical report, not a collection of figures and numbers; that is, it must have a story.

The report should contain the following information (Use plots and tables)

the line, branch, and function coverage of the projects at file level and as a whole

the number for test files and the number of assert statements in each file

the number and location of the debug and assert statements in production files.

Use Pydriller (https://pydriller.readthedocs.io/en/latest/intro.html) and report when the test files have been added to the project, how often they are modified, and how many people were involved.

Note: compiling and running tests (Item 1) can be tricky and take some time. Meanwhile you are trying Item 1, you can easily use regex and python scripting to extract the data for other items.

Project:

Use the attached file to find which project you should work on.

OpenMPI. https://github.com/open-mpi/ompi

LLVM, https://github.com/llvm-mirror/llvm

Cpython: https://github.com/python/cpython

GCC, https://github.com/gcc-mirror/gcc

Numpy: https://github.com/numpy/numpy

Scipy: https://github.com/scipy/scipy

Instructions:

Group: Up to three students with the same assigned project can form a team and submit one report.

Originality: While you can discuss your approach, you should NEVER copy text or code from another group or online resources.

Submission: submit a pdf file

Data and code: all data and code that you use for this project must be uploaded in a public GitHub repository. The data must be in csv or json format. Make sure to add a link to the repository to the report.

Figures: Ideally, all figures/charts must be automatically generated by the scripts, i.e., no excel. Usually, there must be a gen-figures.py script in your Github repo to generate all the figures.