**Strictly speaking, one can never be 100% sure that a commit doesn't break a program.** 

Even with all sorts of testing possible (unit testing, integration, component, system, manual, UI, fuzz, security, penetration .. you name it). This is due to a [Halting problem](https://en.wikipedia.org/wiki/Halting_problem). A relevant extract from the Wikipedia follows below:

> In computability theory, the halting problem can be stated as follows:
> "Given a description of an arbitrary computer program, decide whether
> the program finishes running or continues to run forever". This is
> equivalent to the problem of deciding, given a program and an input,
> whether the program will eventually halt when run with that input, or
> will run forever.
> 
> Alan Turing proved in 1936 that a general algorithm to solve the
> halting problem for all possible program-input pairs cannot exist. A
> key part of the proof was a mathematical definition of a computer and
> program, which became known as a Turing machine; the halting problem
> is undecidable over Turing machines.

If your PM cares about value and stable predictable delivery, you can perhaps convince him to have a look at [SCRUM framework](https://www.scrum.org/).