Author: Stan Eisenstat
Subject: Edge cases
Date: Thursday, 03 Sep 2020, 13:20:52
According to Wikipedia (https://en.wikipedia.org/wiki/Edge_case): In programming, an edge case typically involves input values that require special handling in an algorithm behind a computer program. Some students feel that tests involving edge cases are unfair, and perhaps they are in an introductory course where the major goal is teaching students how to program. But in the real world testing for edge cases is critical because programs may be deciding whether someone lives or dies. For example, a self-driving Uber car in Tempe, Arizona, killed a jaywalker when the vision system saw her but the control system ignored its report. See https://arstechnica.com/cars/2019/11/how-terrible-software-design-decisions-led-to-ubers-deadly-2018-crash/ for details. Thus in CPSC 323 the goal is to write programs that are as close to correct as possible, not just mostly correct. Here is some advice for finding edge cases: * Read the specification, very carefully, line by line, looking for words like "should" or "must" and active verbs. * Look at the public test cases to see what they do NOT test but might have. --Stan-PREV INDEX NEXT