Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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