Software Testing and Testing Automation with Python

Date and Time: 
Friday April 12th 2019
Location: 
CG South Auditorium
Speaker: 
Ryan May & John Leeman

In this tutorial we will cover the best practices for software testing and ways to automate the testing process using the Python programming language. Learners will become familiar with the pytest framework, write basic function tests for numerical results, learn about basic test fixtures for data reuse and multiple input testing, create baseline images for image tests using pytest-mpl, and finally automate the testing process by connecting TravisCI to a GitHub repository. After completing this training, attendees will be prepared to create a basic test framework around a new or existing project, determine the test coverage, and enable automatic testing of pull requests and the master branch on their projet’s GitHub repository. To succeed in this course learners should be intermediate Python programmers; no experience with testing is required. A GitHub account and conda install of Python (instructions will be sent out before the course) are the only required items.

Speaker Description: 

Ryan May is a software engineer at UCAR/Unidata, working on Python software and training for the atmospheric science community. Currently, he is the core developer of the MetPy and Siphon Python packages, as well as a member of the development team for the matplotlib Python visualization library.

John Leeman is a software engineer at Unidata in Boulder, CO. He received a B.S. in meteorology, a B.S. in geophysics, and a minor in mathematics from the University of Oklahoma in 2012. While at OU he was active in gas hydrates research, and continued that work at Oak Ridge National Laboratory. Afterwards he was an intern at NASA in the GN&C Autonomous Flight Systems Branch of the Aeroscience and Flight Mechanics Division for the Morpheus lunar lander working as a programmer. John received his PhD in 2017 from Penn State in geoscience, studying earthquake physics and slow-slip.

Event Category: