PREV INDEX NEXT

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