Bootcamp, Winter 2021     Agenda     Registration     About

Introduction to Software Testing


Instructor bio

Description

Software testing is the process of veriyfing and validating that code works as expected. The most granular level is unit testing, where each standalone unit in a code (e.g., function) is exercised to help ensure that it works correctly, even in edge and corner cases. Whether you write unit tests after your code is written or as you go, software tools exist to help make the testing process less manual and more systematic.

This session will discuss some best practices for testing code and give participants a hands-on introduction to testing frameworks for interpreted (Python) and compiled languages (C/C++). Though the emphasis will be on unit testing, other forms of testing such as system tests, integration tests, and regression tests will be discussed.

Learning objectives

Attendees will learn different high-level approaches to testing code and will get firsthand experience setting up and using automated testing frameworks.

Knowledge prerequisites

Basic Linux and the Bash command-line. Programming experience in Python and/or C++.

Hardware/software prerequisites

Participants in any PICSciE virtual workshop need a Princeton Zoom account. For this session, users should also have an account on our Adroit cluster (another cluster like Tiger or Della is ok), and they should confirm that they can SSH into Adroit at least 48 hours beforehand.

Details on connecting to Adroit can be found in the advance setup guide for PICSciE virtual workshops. Those who need extra help setting up should visit the “setup session” on Monday January 18. THERE WILL BE LITTLE TO NO TROUBLESHOOTING DURING THE SESSION ITSELF!

Session format

Lecture and hands-on

Session Materials

All presentation materials are in this Github repo.

Session Recording

This session was NOT recorded.