#Automated Testing
In order to maintain healthy code among the team, any team shared code was subjected to rigorous automated tests on various perspectives of quality, including code, security, performance, and functionality. Tests were executed automatically as developers submitted code to the repository. Feedback was made available to developers within minutes of the submission on a variety of criteria explained below. If all tests were successful a deployment was automatically initiated and available for review on the appropriate environment.
For more information on how the tests were executed in the build process please refer to the api and front end shell scripts.
For more information on how builds were created and deployed please refer to the api and front end shell scripts.
These tests were used to validate business logic in the backend that was serving up useful information to our front end through a RESTful interface. Integration is accomplished through associating a database service with rails and executing only transactional events. Test execution is done using the rspec
command.
- karma- javascript functional tests, checkout out our front end tests
These tests validate the user facing functionality of the site. PhantomJS is used to execute the tests in a headless browser environment to increase speed. Jasmine is also used to provide a full featured testing harness and clean readability. Execution is orchestrated through a Grunt task.
-
bees with machineguns- distributed AWS load testing, run by one-click Jenkins job on an ad-hoc basis by the developers discretion. This tool helps provision ec2 instances with agents that will generate load on identified endpoints.
-
grunt-devperf- Grunt task that uses phantomjs to launch areas of the site and review a variety of performance metrics that can be compared to budgeted performance goals. Warnings and other alerts will be presented to help identify areas of performance improvement. example report from Jenkins