What are some good examples of pure Computer Science and Mathematics applications in software QA?

I am looking for some good examples of pure `Computer Science` and `Mathematics applications` in `software QA`.

The objective is to create a course for CS and Applied Math students with applications, that can be used in both practical and theoretical QA.

Statistics is often used explicitly or implicitly. Some examples:

• Analyzing the validity of multiple performance tests results.

• Choosing parameter values based on distribution, e.g. uniform vs. normal

• Developing test techniques, e.g. a proof that randomness is as good as X wise testing under certain assumptions.

I agree with both Rsf and jruberto statement, I think statistics and Big-O is used frequently, In addition here is some other topic that is used too i.e

• Boundary Value and Equivalence Class Partitioning
• Percentage of Covered Code
• List item

For pure CS, I think this is a good example used on QA (All Pairs Testing)

Big O notation comes to mind. Important to understand the scalability of a system, given the anticipated input.

Equivalence partitioning is also frequently used in test design.

Big-O

While others point to Big-O and statistics and you see these featured prominently in interviews, this misses the point that they are frequently not that relevant to many QA automation and testing activities and work outside of performance testing.

Many organizations look to Big-O and statistics because they (application programmers) are considered first class citizens in application development and they consider these to be most important. Hence we frequently have QA interview tests on sort routines which is even further from the actual skills needed to write good automation and perform most testing in the QA landscape. Even for application developers a more modern mindset is to focus on naming and avoiding premature optimizations for essentially the same reasons.

Naming: I have spent my entire career working on good names. It is really hard

Premature Optimization: Code is for humans and when made harder to read for them in order to be more performant and efficient for the computer (at the expense of the humans) there are many issues.

Program logic (for reading application code) and set theory (helps with databases) is usually more useful in my experience.

Big-O over-focus: I've worked on code at several companies where the essential hiring test was Big-O. The codebases at these companies were a nightmare to work on.