Skip to content

Software QA Plan & Report

Elie-Elia edited this page Dec 30, 2019 · 11 revisions

Contribution guidlines & conventions

We have setup some guidelines for the contribution to the project, specified in more details here


Quality Assurance Techniques

  • Use of Branches for each new feature and group discussion before merging to master.
  • All development must undergo quality assurance by a code review by at least one other member by the use of GitHub Pull Requests.
  • Coordination of collaborative work to avoid merge conflicts.
  • We followed Google Code Style as code convention

Test Coverage Criteria

  • We specified that at least 60% of the codebase must be covered by unit testing (i.e. code coverage)

Unit Testing Approach

Since we were unable to use UML Lab to generate our domain model, we wanted to ensure our code can interact with the persistence correctly. Therefore, we decided to write unit tests by using JUnit that interact with the database directly instead of mocking responses by Mockito.

Subject Tests

  • Create Subject
  • Get Subject By Name
  • Get all subjects
  • Update subject
  • Delete subject

Tutor Tests

  • Create Tutor
  • Get Tutor by Email
  • Get all tutors
  • Update Tutor
  • Delete Tutor

University Tests

  • Create University
  • Get University by Name
  • Get all Universities
  • Update University
  • Delete University

UserEntity Tests

  • Create User
  • Get User by email
  • Get all Users
  • Update User
  • Delete User
  • Verify a User

Review Tests

  • Create Review
  • Get Review by ID
  • Get all reviews
  • Update review
  • Delete review
  • Get reviews for Tutor
  • Get reviews for Student

Room Tests

  • Create Room
  • Get Room by ID
  • Get all Rooms
  • Update Room
  • Delete Room

Schedule Tests

  • Create Schedule
  • Get Schedule by scheduleID
  • Get all Schedules
  • Update Schedule
  • Delete Schedule

Course Tests

  • Create Course
  • Get Course by courseID
  • Get all Courses
  • Update Course
  • Delete Course

Manager Tests

  • Create Manager
  • Get Manager by Email
  • Get all managers
  • Update manager
  • Delete manager

Integration Testing Approach

Integration Testing can be carried out from our REST API Documentation tool : Swagger-UI or a REST Client / Curl. For this deliverable, due to an injury affecting sprint capacity, integration testing was descoped.

Code Coverage

Our tests cover 60% of our service layer, approximately 2/3 of total instructions.

As for our domain layer, our tests cover 74% of total instructions