Project Testing
Test Environment
As described in the syllabus,
we'll start testing each project inside a freshly installed copy of
Ubuntu 20.04.3 LTS (Focal Fossa).
We'll then execute the script that you provide and installs all required
packages, e.g. tomcat, Java, etc.
If you don't provide a script that installs all packages that will be needed to
build and test your project, then we can follow your written instructions, as
in we can copy from your README file and paste to the command line of the test
environment.
NOTE: the tester won't be able to follow generic instructions like
"install the Java SDK", etc. Your instructions must ve *very* specific.
Testing Algorithm
-
Clone your project repository into a local directory on our test machine.
Make sure that (i) you include a link to your project repo with your submission
and (ii) your repository is either public or has been shared with
bistriceanu@iit.edu
mkdir /tmp/john-smith ; cd /tmp/john-smith
git clone <link-to-john-smith-project-repository>
If we cannot clone your repository then STOP, assign a score of zero
for the project.
-
Read the README file you provided.
cat README
If the README file is missing, or the file exists but specific setup
instructions are missing from it then STOP, assign a score of zero
for the project.
-
We'll then attempt to create an executable. For example, if the README file
says that we should execute ./gradlew clean build
then we'll do just that.
If your build instructions fail to generate an executable then STOP, assign
a score of zero for the project.
-
NOTE: by "executable" we mean a deployable artifact, for example a .war file
if the runtime environment is something like Tomcat.
-
If your instructions for how to generate unit test coverage are missing from
the README file, or they are present but fail to produce unit test coverage
then STOP, assign a score of zero for the project.
-
If (unit test coverage is less than 50%) then STOP, assign a score of zero
for the project.
-
If (executable) fails to deploy then STOP, assign a score of zero for the
project.
-
NOTE: If the target for deployment is Tomcat, then you don't need
to provide detailed instructions for how to deploy, unless you need some
non-standard steps for deployment.
-
Proceed with testing the project functionality, as described in the
functional testing
instructions.
NOTES
-
If you have a Java-based project, then we highly encourage you to use Gradle
or Maven for dependency management and build automation.
-
We are not going to test your project from within an IDE, whether Eclipse or
something else.
|