⬅ Home

Ideal Plan

Platform

Ranalyze is written in Python, so in order to utilize the ranalyze code directly, all automated unit testing will also use Python. In order to validate ranalyze’s interfaces, HTTP and SQL requests will be employed from Python. System testing will be performed on various ranalyze deployments.

Test Cases

Ranalyze is a simplistic tool that scrapes data from Reddit and stores it in a database. Because relatively little processing is done internally, the most likely points of failure are the interfaces that expose ranalyze to the outside world. Automated unit testing is required for the following interfaces:

These unit tests should run automatically with every commit to ensure nothing obvious breaks during development. Because of ranalyze’s simplicity, the best way to do system testing is to deploy it and monitor the resulting database. The clients requested a high degree of control over the output of ranalyze, so it is important to verify that any valid operation will not produce any unintended side affects. Test environments include:

Comprehensive system testing will only occur after all required features have been implemented. Should there be any stretch goals, system testing must be performed again to ensure that new bugs were not introduced. System test deployments (that is, ranalyze installations on different operating systems and networks) should include development environments, the client’s current production environment, and any likely candidates for future deployments. System tests should be performed by developers with oversight by the client to demonstrate proper use of the product, as well as gathering any last-minute client input.


Intended Plan

We only have the time and resources for limited testing, but we should be able to cover all the most pressing requirements from the ideal plan.

Platform

Python will be used for all automated unit testing. Travis will be used to automate testing on every git commit, and Slack bots will be used to monitor Travis build results. System testing will be performed on various ranalyze deployments.

Test Cases

All interfaces from the ideal plan will be covered by unit tests. The following unit tests will validate individual ranalyze components to ensure they are functioning as intended:

Validating the schema is outside the scope of this test.

Planned system tests are as follows:

These tests will all be run on the production environment once the final feature set is finalized, and any erros will be reproduced and investigated in development. After completion of these system tests, the client will have an opportunity to set up and use a ranalyze deployment with the supervision of the developers, though without their assistance.