Testing, Static Analysis, and Continuous Integration (Cont’d)
Fall 2026
1
Roadmap
Introduction to the Idea of “Shifting Left”
These three Google chapters encompass different ways of “shifting left.” Why?
Outline
Outline
Testing: Questions about Lab 6
Outline
Static Analysis: Discussion Questions
Some static analysis questions you should be able to answer by the end of this unit:
What are some examples of static analysis tools?
What are some of the benefits of static analysis?
Your thoughts here…
What are some of the drawbacks / tradeoffs os static analysis?
Outline
Continuous Integration (CI): Discussion Questions
Some continuous integration questions you should be able to answer by the end of this unit:
1. What is Continuous Integration?
“Continuous Integration, or CI, is generally defined as “a software development practice where members of a team integrate their work frequently [...] Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.”
Goal of CI: �To automatically catch problematic changes as early as possible.
2. What is “Shifting Left”
The cost of a bug increases exponentially the later it is caught (has it already been deployed, or are we still in early development). Therefore, the more tools you have in place to catch bugs earlier in the development process, the better!
5, 6. What happens in these phases?
What kinds of testing / validation happens in…
3. What are some of the benefits and headaches (i.e. tradeoffs) of continuous integration?
Pros:
Cons:
Outline
Project 1: What does this app need to do?
For your first project, you are going to create a command line tool to replicate aspects of the UNCA Course Search app. What are the specific needs that your tool need to support:
Project 1: What does this app need to do?
Activity: On Your Own (10 mins)
Activity: With Your Groups (10 mins)
When you’re done, you’ll share out with the class.
Oct. 1
The Starter Code
UNCA Class Search
What we’re building: A terminal app to search UNCA courses, built by our whole class.
Code Walkthrough: Big picture
Code Walkthrough: Data
Code Walkthrough: Filters
Code Walkthrough: The User Interface
Working together and changing the code
Tips
Make it correct,� make it clear,� make it concise,� make it fast.� In that order.
Tips
How we'll build it: small pieces, in parallel
How the work flows, and where to start