Guided Task: Continuous Integration and Automated Grading
A common software engineering practice is continuous integration. That means developers are continuously committing/pushing their code to version control and evaluating the code by running tests and other analysis tools against their code. The evaluation of the code is typically completed by a continuous integration system, which is a software system that will automatically build, test, run analysis tools (like static analysis), and deploy software. Since this is what the teaching staff does when evaluating your work, we can use a continuous integration system to evaluate your work every time you push to GitHub. That means you should be able to estimate your grade on an assignment from the feedback from Jenkins, the continuous integration server we use for CSC216. On future assignments, Jenkins will also run hidden teaching staff tests and provide you feedback on how well you meet the teaching staff’s design!
- Utilize results of a continuous integration system to improve program quality
Check Jenkins Results
You can access the Guided Project and Project Jenkins via https://csc216-jenkins.csc.ncsu.edu/jenkins/. (Labs will have their own Jenkins servers.) When you log in, your Jenkins job will be listed using the pattern of
GP1-<repo-name>. If you don’t see a project, then email the teaching staff!
Learn more about the Jenkins continuous integration system and how to use it to for feedback and to estimate your grade by reading the Jenkins tutorial. Your goal is a green check (no test failures and no static analysis notifications).
The Jenkins build for Guided Project 1 will copy the provided teaching staff test cases into your project, overwriting the ones that you were provided. This is to make sure that you didn’t accidentally modify the teaching staff tests through an Eclipse QuickFix. If you did modify a test, that will likely lead to a red X on Jenkins, which means code didn’t compile.
If your code doesn’t compile, you can see the compiler errors in the Console Output for the build. To get to the Console Output, select your Jenkins job, the latest build in the box to the lower left, then select Console Output from the left menu. Scroll down to see the compiler errors. Use those to resolve any issues.
One way to resolve any issues with the provided tests is to recopy them into your local test files. The provided tests are:
Estimate Your Grade Against the Rubric
All assignments have a rubric that you can use to estimate your grade. Use the Jenkins feedback and your black box test results to estimate your grade for Guided Project 1.
Reference: Staging and Pushing to GitHub
Check Your Progress
Use the feedback from Jenkins to make changes to your code. Any time you make a change, push to GitHub and check the Jenkins results.
- Make sure that all fields, methods, and constructors are commented.
- Resolve all static analysis notifications.
- Fix test failures.
- Commit and push your code changes with a meaningful commit message. Label your commit with “[Implementation]” for future you!
- Check Jenkins results for a green check! Fix any Jenkins issues.