• DocumentCode
    863697
  • Title

    Bug busters

  • Author

    Spinellis, Diomidis

  • Author_Institution
    Dept. of Manage. Sci. & Technol., Athens Univ. of Econ. & Bus., Greece
  • Volume
    23
  • Issue
    2
  • fYear
    2006
  • Firstpage
    92
  • Lastpage
    93
  • Abstract
    One way to deal with bugs is to avoid them entirely. The approach would be wasteful because we´d be underutilizing the many automated tools and techniques that can catch bugs for us. Most tools for eliminating bugs work by tightening the specifications of what we build. At the program code level, tighter specifications affect the operations allowed on various data types, our program´s behavior, and our code´s style. Furthermore, we can use many different approaches to verify that our code is on track: the programming language, its compiler, specialized tools, libraries, and embedded tests are our most obvious friends. We can delegate bug busting to code. Many libraries come with hooks or specialized builds that can catch questionable argument values, resource leaks, and wrong ordering of function calls. Bugs many be a fact of life, but they´re not inevitable. We have some powerful tools to find them before they mess with our programs, and the good news is that these tools get better every year.
  • Keywords
    formal specification; formal verification; program compilers; program debugging; program diagnostics; software tools; formal specification; formal verification; program code level; program compiler; program debugging; program diagnostics; software tools; Buffer overflow; Computer bugs; Computer crashes; Computer languages; Java; Libraries; Pressing; Program processors; Security; Testing; Lint; annotations; bugs; errors; tools; type checking;
  • fLanguage
    English
  • Journal_Title
    Software, IEEE
  • Publisher
    ieee
  • ISSN
    0740-7459
  • Type

    jour

  • DOI
    10.1109/MS.2006.40
  • Filename
    1605184