Course project: Git, Testing, and Continuous Integration

This assignment has two parts. Part I is to set up your project development area in GitHub. Part II is to build on this setup and your test plan to establish a continuous code integration and testing infrastructure. Both assignment parts are due on Tues 10/31/23 11:59pm and should be submitted in Canvas as directed. (Check Calendar for any due-date updates)

Part I Overview - Git

Set up a GitHub Project for your project.

Setup

Work with your project group on these deliverables.

Instructions

1. Create your GitHub repo (40%)

Create a repository for your project on GitHub, make all team members contributors, and add a link to this repository to your living document. Please also provide staff access to the repo.

2. Add a top-level README.md file (25%)

The top-level README should briefly describe the idea and goals of your project and explain the layout of the repository.

3. Start tracking your project tasks by creating issues (25%)

Managing issues or tasks or bugs is a very common feature of project management tools like GitHub. We highly recommend you use it for team coordination.

Looking ahead, you may want to start experimenting and setting up resources. For example, if your project requires setting up a web or SQL server, you can get started on this task and add relevant instructions and information to your Git repository. Also consider reviewing the Git conflict resolution tutorial. When merge conflicts come up later in the quarter, you will be happy that you did!



Part II Overview - Continuous Integration (CI) and Testing

Enhance the testing plan you laid out in your living document and set up automated testing and continuous integration (CI) for your project.

Set up

Work with your project group to (1) revise and extend your living document and (2) set up continuous integration for your GitHub repository.

Instructions

1. Add test-automation and CI to your test plan (50%)

Extend your test plan (which is a subsection of Process description) and describe:

2. Set up your test-automation infrastructure and chosen CI service (50%)

You are not expected to provide an extensive test suite for your project at this point. Rather, the goal is to have a well documented test infrastructure and CI set up with a few existing, example tests. Your documented set up and test-addition process should allow a developer on the team to easily set up CI and add and run a new test.

3. Submit

Submit to Canvas by due date:

Clarifications

What are some commonly used CI services?

Here are four examples for commonly used CI services:

There are other options, so make sure to do sufficient research to make an informed decision for your project.

You should describe how the CI service is integrated into your repository and how it is configured (e.g., how does the CI service access your repository and how are the triggers that you identified configured?). Your description should enable others to reproduce the steps that were required to set up CI for your project and to configure the CI service.

Any grading hints for this type of assignment?

Part of your grade will come from the plausibility and thoughtfulness of your test plan.

Further, you will be graded on your actual CI setup and your justifications for choosing that CI service.

You are expected to do some research to make an informed decision when picking a CI service and to read documentation to set up your testing and CI infrastructure.