Skip to content
Kededro edited this page Mar 26, 2012 · 19 revisions

Unit Testing

Currently, automated test coverage for the application is lacking. The intent is to have unit tests in place for key methods, such as 'GetNextAvailableIP'. Much of the integration testing is done by deploying to the 'VMAT2' server and running the web application.

Unit testing aims to isolate the different layers of the application. VMAT runs on a Model View Controller framework, so testing will address the Model and Controller layers. It is deemed unnecessary to automate testing for the View layer (ie. the web interface) because the number of views in the application is so small. Navigation within the application is not complex, so testing for proper routing between the views is not needed.

The development team plans to make good use of mocking in the unit tests. The application interfaces with a number of different external systems, such as a SQL database and VMware. These systems can be slow to interface with; speeding up these actions by mocking the systems will make testing much more effective and painless.

Below is a list of items to test:

  • Controller actions
  • Create virtual machines
  • Edit virtual machines
  • Toggle virtual machines power status
  • Undo pending operation
  • Domain login

Integration Testing

Integration testing will insure that each use-case executes correctly across all layers of the application. Testing all functionality across the entire system is overkill for the application, so much of it will be done by simply running the application and manually performing each use-case to determine whether it meets specification.

Below is a list of items to test:

  • Successful connection to VMware server
  • Successful connection to Domain
  • Creation/Editing propagates all functionality correctly through the application
  • Scheduler performs operations and updates data objects

Deployment Testing

Local testing for deployment is done using 'VMAT2' as a test bed. 'VMAT' is used to replicate the client's VMware server. There are currently plans to add another server, appropriately titled 'VMAT3', which will run on Ubuntu rather than Windows Server, in order to more closely resemble the client's environment.

Due to the short period of time remaining before the end of the project, deployment testing on the client's servers will not be handled separately from the acceptance testing. Each release will be evaluated individually and approved by the client.

Acceptance Testing

The client provides feedback for each release based on his own usage of the application. Preferably, the release packages should be installed to the client's own servers. The development team is able to provide access to their local 'VMAT2' server via VPN, should deployment to the client's servers fail.

The client has provided a list of operations/use-cases he will run to determine if the application is up to specification.

Clone this wiki locally