Skip to content

Software Quality Assurance Plan

Talha edited this page Nov 1, 2019 · 16 revisions

Testing Styles

To properly test the functionality of our program, four types of tests have been implemented so far. Unit testing of the business methods, Testing RESTful Services, integration testing of the business methods and lastly integration testing of the RESTful services. To ensure that our methods are being tested diligently and to ensure the robustness of our program we are using EclEmma as our code coverage tool. The code coverage is a good way to ensure that our individual methods are behaving as expected, however, in order to ensure that our project behaves well as a whole, more testing styles will be put in place to ensure that from a user end it behaves normally.

For now, the two main thought processes that we have been following are:

  • Has the software been tested against the normal range of use?
  • Has the software been tested against an abnormal or unexpected range of use?

If we ensure that we can catch all abnormal behaviors and ensure that no cases fail silently our program should run as desired.

Unit Tests of Business Methods

These tests purely test the functionality of the underlying business methods. Thus using Mockito (an open-source Java testing framework), we removed database calls and purely used mocked out method calls.

The test coverage for the mocked tests right now stands at <10% coverage of the service class. Since this is not the top priority for our deliverable this will be improved in further reports.

Testing RESTful Services

We also conducted tests for the RESTful services using the Advanced Rest Client. This was done to ensure that the requests map to the correct controller methods. Currently, all requests map successfully with the return status of 200. The screenshots of the tests have also been provided and can be found here.

Integration Tests of Business Methods

These integration tests cover the crucial service class methods and their behavior with the underlying database. These tests were a high priority in the first deliverable to make sure that our interactions with the database were correct.

The test coverage for the integration tests is at 87.3%. The target for these tests is about 90% and more tests will be created to increase the coverage and the reliability of the methods.

Integration of RESTful Services

The last set of tests involves the integration of the RESTful services and the database. These tests go from top to bottom including the service class.

Every service method used by the RESTful Services has been unit tested with Statement and Branch coverage of 100%.