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

  1. 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
  2. 
        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.

  3. Read the README file you provided.
  4. 
        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.

  5. 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.

  6. 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.

  7. If (unit test coverage is less than 50%) then STOP, assign a score of zero for the project.

  8. 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.

  9. 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.

Last update: Apr 2, 2022 Virgil Bistriceanu cs445 Computer Science