Skip to content

Software QA Plan & Report

Mia Yuxin Zhou edited this page Mar 21, 2019 · 10 revisions

Contribution guidlines & conventions

We setup guideline to contribute to the project specified in more details here


Test Coverage Criteria

Unit Testing Approach

The goal of these unit tests is to achieve 60% coverage as some of the methods are not used.
The unit tests are done using Mockito to mock a database.
The strategy used is equivalence partitioning.

Student Tests

  • Get a Student By ID
  • Get a list of all problematic Students
  • Set students Problematic Status

Required Document Tests

  • Get Required Document by related Coop Position
  • Get Required Document by due date
  • Get Required Document by ID
  • Get Required Document accepted status
  • Set Required Document acceptance status

Employer Tests

  • Get Employer by ID
  • Get all Employers

Course Tests

  • Get Course by Course name

Coop Position Tests

  • Get Coop Position by status
  • Get Coop Position by ID
  • Get Coop Position by student
  • Get Coop Position by term
  • Get Coop Position by term instructor

User Entity Tests

  • Get User Entity by email

Code Coverage

Overall, we cannot cover 100% of our methods, because some setters will never be used.

  • CoopPositionTest covers 60.6% of our CoopPosition service
  • CourseTest covers 43.5%
  • EmployerTest covers 80.8%
  • RequiredDocumentsTest covers 47.5%
  • StudentTest covers 26.3%
  • UserTest covers 51.2%
  • Overall we covered 60.5% of our services and 55.4% of our model using the Unit tests.

Integration Testing Approach

Our View Point

  • We send http requests to the servers to test if we get a correct response.
  • Always check for correct response code. If the code is not 200, there is a problem.
  • For each response, we check the content of the JSON object

Other Teams View Point

  • We check if the post and get requests were successful.
  • Because not all their code was up by the time we submitted, and we don't want our build to fail every time theirs fails, we do not check the content.

Quality Assurance Techniques Used

  • Code reviews with multiple reviewers for each PR
  • Followed Googles Style guidelines for java code and code conventions found here
  • Use of Branches for each new feature and group discussion before merging to master.
  • Coordination of collaborative work to avoid merge conflicts.