A program is said to be non-testable if the correctness of its outputs cannot be verified. Since non-testable programs are frequently encountered, a challenging problem has been how to test them. In this seminar, we present a simple, yet effective, methodology, metamorphic testing, which alleviates this challenge. Although it may not be possible to verify the correctness of any particular input of a non-testable program, we may be able to identify relations that should hold between certain inputs and relevant outputs, and through the verification of these relations, we are able to test the non-testable programs. Recorded on 10 October 2014.