Test Plan: Inventory

Download Report

Transcript Test Plan: Inventory

Brendan Heckman
Matthew Fusaro
Ryan McGivern
VMWeb Architecture
A little on the front-end…

Catalyst Web Framework
 Similar to Ruby on Rails
 Provides framework that will allow us to develop a
light-weight web application that
▪ Efficiently communicates with the intermediate
database
▪ Translates the database information into objects
▪ Provides a simple and appealing UI for
▪ Visualizing the state of Entities
▪ Performing operations on Entities
And of course MVC…

Model
 Access and modify content
▪ Database connection (DBIx::Class)

View
 Display data in a meaningful manner
▪ Template Toolkit
▪ Javascript libraries, CSS

Controller
 Flow Control
▪ Dispatch actions appropriately and maintain context
DBIx::Class (Perl ORM)

ORM – Object-Relational Mapping
 Creates objects associated with tables in a
relational database

Database Model
 Creates result class file for each table
▪ Corresponds to row-level data in table
 Enable this model in the appropriate controllers
 Allows the flow control to query data as necessary
 Layer of abstraction – remove DB dependence
Screenshot: Auth. Module
Front-end Schedule
Front-end Schedule Deviations
Back-end Schedule
Back-end schedule Deviations
Test Plan: Front-end

Compatibility
 OS Independence
▪ Conduct a complete set of tests on multiple operating
systems
 Browser compatibility
▪ Implement tests across a set of common browsers

UI Tests
 Test UI elements capture and submit user input
accurately
 Test View components accurately group data
Advantages of Catalyst

Test Anything Protocol (TAP)
 Provides test-driven development process
 Helper functions add stubs to test directory
▪ Establishes unit tests for inherent operations of each
module
▪ One may extend these unit tests if a given object needs to be
further interrogated
▪ Functional tests are therefore automatically created
▪ Need only conduct behavior testing
▪ i.e Does flow control behave as expected
UML: Scheduler Implementation
Test Plan: Scheduler

Black-box test
 Internal logic of the scheduler is not relevant to
external components
 Test sets
▪ Submit correctly configured jobs into into DB
▪ Does job checking logic pick them up correctly
▪ Monitor end results and catch errors coming out other side
▪ Submit malformed jobs into DB
▪ Confirm that errors are handled as expected in job validation
▪ Deliberately submit jobs that will create exceptions on ESX server
▪ i.e Job is validated according to API but rejected by ESX server
▪ Overload the job queue
▪ Test further submitted jobs wait to enter queue
UML: Database Connector
Test Plan: DB Connector

White-box test
 Component most vulnerable to data-integrity loss
 Requires test set for complete statement
coverage
▪ DBMysqlAdapter class
▪ Create a unit test that will run each of the methods that
modifies or pulls information from the database and
check that the results are what is desired.
UML: Inventory
Test Plan: Inventory

Black-box test
 Executes task when asked to and returns data
 Test set
▪ Call the inventory collector and ask it to do the
inventory. When done, print the structures it creates and
make sure the data matches what the ESX server
reports.
▪ Call the inventory collector while another job is being
processed on the ESX server and see if we get I/O errors.
Test Plan: Inventory

White-box test
 To ensure object properties fall through
conditional branches correctly
 Test set
▪ Modify data on the ESX server so some values are either
absent or out of bounds. We can utilize the printMe()
function to show any errors
▪ Pass malformed data to the functions and make sure it
handles the data appropriately.
Test Plan: Utility functions

Virtual Machine

Host

Resource Pool
 Power On
 Power On
 Configure
 Power Off
 Power Off
 Relocate
 Reboot
 Reboot
 Suspend
 Maintenance-
 Rename
mode
 Stand-by
 Delete
 Unregister
Test Plan: Utility functions

Black-box test
 Accuracy of utility function tested by performing
operations on existing VMs, hosts, or resource
pools
 Test set
▪ Unit test that covers all utility functions
▪ Confirm each function performs its respective action