Prof. Emeritus | University of Michigan
Yuri Gurevich is University of Michigan Prof. Emeritus and Sr. Research Scientist at Stevens Institute of Technology, recently retired from Microsoft Research where he had worked 20 years as a Principal Researcher. He is also ACM Fellow, Guggenheim Fellow, EATCS Fellow, a foreign member of Academia Europaea, and Dr. Honoris Causa of Belgian and Russian universities.
Imagine that you are responsible for a large piece of software. It would be great to give a mathematical proof that your program is correct. Is it feasible? Somewhat ironically the problem whether your program is correct is not that hard. In fact, we know the answer. The problem is not correct. It can’t possibly be correct. The chances are that it is not even clear what it would mean exactly what the problem is correct. So what do you do? You test. Testing is hugely important in the software industry. There are many kinds of testing: black box testing and white box testing; unit testing and system testing; alpha testing and beta testing; functional testing and security testing; and so on and so forth. We will attempt to present a general overview of testing, bring up some paradoxes of testing, and compare testing with scientific experimentation.