• DocumentCode
    1487996
  • Title

    Software´s invisible users

  • Author

    Whittaker, James A.

  • Author_Institution
    Dept. of Comput. Sci., Florida Tech., Melbourne, FL, USA
  • Volume
    18
  • Issue
    3
  • fYear
    2001
  • fDate
    5/1/2001 12:00:00 AM
  • Firstpage
    84
  • Lastpage
    88
  • Abstract
    Software is deterministic. Given a starting state and a fixed series of inputs, software will produce the exact same output every single time those inputs are applied. In fact, many of the technologies we apply during development (reviews, formal proofs, testing, and so forth) rely on this determinism; they would not work otherwise. But if software is deterministic, why do weird things happen? Why is it that we can apply a sequence of inputs and observe a failure and then be unable to reproduce that failure? Why does software work on one machine and fail on another? How is it that you can return from lunch and find your Web browser has crashed when it wasn´t being used? The answer is, of course, that modern software processes an enormous number of inputs and only a small percentage of these inputs originate from human users. When testers can´t reproduce failures, the reason is that they are only resubmitting the human input without sufficient regard to the operating system return codes and input from runtime libraries. When software fails on a new computer after running successfully on another, the reason can only be that the new system is supplying input that differs in content from the old one. And the browser that crashes when you are at lunch is responding to input from a nonhuman external resource
  • Keywords
    operating systems (computers); software reliability; system recovery; Web browser; deterministic software; human input; human users; input processing; invisible software users; nonhuman external resource; operating system return codes; runtime libraries; software failure; Application software; Computer interfaces; Event detection; Humans; Kernel; Libraries; Software systems; Software testing; Software tools; Watches;
  • fLanguage
    English
  • Journal_Title
    Software, IEEE
  • Publisher
    ieee
  • ISSN
    0740-7459
  • Type

    jour

  • DOI
    10.1109/52.922730
  • Filename
    922730