Challenge problems in software testing

Developing software is complex. Software testing helps to reveal bugs and to demonstrate conformance. And we spend billions of dollars on it. But do we really know what we are doing?In this talk I will argue that there are still many open issues in testing. We should ask: How can we design systems that are easy to test? How can we test such a system modularly, i. e. unit by unit? How do we know when we have tested it enough? And what do we know when we are done?