Section 5 Summary of Testing

The Snow Today Group completed an evaluation of our products and web application functionality through unit testing, sanity testing, and system testing. Unit testing was performed to ensure that the code ran as intended and that visualizations were appropriately rendered. Sanity testing was used to ensure our end-products were oriented and located in the correct position and logically made sense. System testing involved testing web-based and Binder environments’ speed, stability, and operability.

5.1 Unit Testing

Unit testing ensured that each visualization was correctly rendered on the Shiny app website and that the interactive components’ visualizations worked. We also confirmed that selection options return the desired outputs. Each tab was tested on its own before testing overall site navigation and operability. Group members tested individual code chunks and sections of the tutorials before finalizing them for end-users. Ultimately, the Project incorporated 19 years’ worth of data contained within multiple datasets. We started by testing the app and tutorial functionality with a few years of data before deploying the full spatial, temporal, and historical snow cover and albedo records.

5.2 Sanity Testing

The Group ensured that our products produced realistic results. All Group members completed sanity testing. For example, did interactive visualizations display snow cover outside of the Sierra Nevada mountain range or during the summer months? Given that the Sierra Nevada region is not currently a selectable zone on the Snow Today website, our Group could not directly compare our results to Snow Today’s findings. However, our Group compared relative values to overlapping and close-proximity locations, including California and the Pacific Northwest. Since accurately incorporating coordinate reference system and projection information was an essential component of this Project, sanity testing confirmed that no visualizations were rendered backward or upside down due to errors with coordinate system transformation. We also confirmed that visualizations and tutorials returned albedo values within realistic ranges. For example, early iterations of the albedo visualizations displayed a smaller snow area than the snow cover percent visualizations. This alerted the Group to an error in the way “nan” values were addressed when calculating monthly and annual averages, and this issue was then resolved.

5.3 System Testing

Once the above tests were complete, system testing was conducted to ensure the operability of the web application and tutorials as a whole. System testing focused on navigation across the entire Shiny app to test the functionality of moving between visualizations and pages and from the Shiny app to the tutorials on the Snow Today organization’s public GitHub. A significant limitation to the Shiny app is the speed at which maps render. Initially, the tutorials would be stored in a Binder notebook–a reproducible environment that makes tutorials immediately executable to any user. However, system testing determined that given Binder’s limited memory capacity, the tutorials could not render the notebooks successfully. Future developers interested in using Binder environments should consider researching additional methods to increase Binder’s memory capacity.