Sailing 100.jpg (9115 bytes)                      

 

William E. Howden

Professor of Computer Science

Department of Computer Science and Engineering

University of California at San Diego                               

La Jolla, CA    92093               howden@cse.ucsd.edu

 

Education

1960-61 Undergraduate, Riverside City College

1963 B.A. Mathematics, UCRiverside

1965 M.A. Mathematics, Rutgers University

1965 Student Intern, Atomic Energy of Canada Research Laboratories

1966/67 Graduate Student, Mathematics, University of Cambridge

1967/68 Student Intern, Atomic Energy of Canada Research Laboratories

1969 M.Sc. Computer Science, University of Cambridge

1973 Ph.D. Computer Science, UCIrvine

 

CSE 87: Freshman Seminar: Errors and Failures

We are surrounded by bad information, faulty thinking, outright lying, innocent mistakes, propaganda, and tragic failure. We will look at the nature of errors, including how to avoid them, how to block them before they cause problems, and how to mitigate their effects.

We will answer questions such as, "Why did a 50 million dollar rocket blow up on its first launch? How did a surgical procedure result in accidental death? Why did a famous criminal case result in an invalid conviction?" or, more simply, "Why did I cut the board on the wrong side when I was making a workbench drawer?"

Our lives are increasingly dominated by computer systems for which simple errors can have consequences that affect the lives of millions of people. Many of these errors have the same underlying structure. Recognizing this can help to increase the effectiveness of software development processes.

The seminar will include experiments and multimedia presentations. We will look at the following 10 kinds of errors.

Jumping to Conclusions and the Apple store This kind of error can be both embarrassing and dangerous. What lies at the root and how can it be avoided? We will carry out a simple experiment to better understand its occurrence.

Collections, Procedures, and the B-17 Checklists Even though we have repeated a task many times, we may still forget some step. When does this occur and what can we do to avoid it?

Slips, Lapses, and the Second Narrows Bridge Some of the worst engineering disasters can be traced back to a slip or a lapse. There are also simple every day examples. Powerful engineering methods for these errors will be discussed.

Mental Workspace and the Zune Bug The mind has a limited "bandwidth." We will do some simple experiments and consider how to compensate. We will look at a related famous Microsoft software error.

Interfaces and the Ariane 5 Interfaces are where things fall through the cracks. They occur between people and people, people and systems, and systems and systems. What can we do about it?

Bad Logic and the Expert Witness Formal reasoning can be used to avoid errors but there are ways to fake it. The study of this is as old as Aristotle. Some famous examples will be discussed.

Shady Logic and the Presidential DebatesYou can turn on a news channel and feel that what is being said is designed to fool you. This is the subject of informal fallacies. Video clips of past presidential debates will be used to illustrate some common examples.

Probabilities and the OJ Trial Much of life is neither True nor False, but more or less likely. Probability is the related mathematical model. It is very easy to get it wrong. Several famous court cases will be discussed in which a misunderstanding of simple probability contributed to a bad outcome.

Models, Maps, and the Holocaust General Semantics warns us that "The Map is not the Domain." The failure to understand it can lead to both personal and social madness. How does this occur?

Hindsight and Ivan Ilyich We can use hindsight to learn from our errors but this does not always work. We will do a simple experiment that illustrates a common way in which hindsight fails. Understanding of both this and other hindsight problems is critical to successful accident analysis.

 

Research Summary 

Most of my research has been in the area of software testing.  I was one of the founders of this research area and was on the committee that organized the first testing research workshop, which eventually became the principal testing research conference, the ISSTA conference.  I have worked in most areas of testing research, and I think I was the first person to use some of its now standard terminology, such as  "infeasible paths" and "test oracle".  

My research in testing has included early results in: symbolic evaluation, theory of testing, algebraic testing, random testing, weak mutation testing, event sequence analysis, error-based testing and analysis, comments analysis, program understanding, trustability analysis, functional testing, and empirical studies of effectiveness.  

I was made a Fellow of the IEEE for my work in functional testing.

 

Ph.D. Students

Yudong Huang, Bell Labs

Suehee Pak, DongDuk Woman's University, Seoul, South Korea

Carl Shi, Qualcomm

Shmuel Rotenstreich, George Washington University

Cheron Vail, SAIC

Linda Werner, UC Santa Cruz

Bruce Wieand, IBM Research

 

Published Books

Howden, William E., Functional Program Testing and Analysis. New York: McGraw-Hill, 1987.

Miller, Edward and William E. Howden, Software Testing and Validation Techniques, 2nd ed. New York: IEEE Computer Society Press, 1981.

E. F. Miller and W. E. Howden, Software Testing and Validation Techniques,  IEEE Computer Society, Long Beach, CA, 1978.

 

Published  Papers  

William E. Howden, Error Models and Software Certification, Proceedings of ISSRE 2011 Workshop on Software Certification, Hiroshima, 2011.

William E. Howden, Error-based Software Testing and Analysis, Proceedings COMPSAC 2011  Workshop on Test Automation, Munich, 2011.

William Howden, P. Desai, T. Hachisuka, B. Chen, M. Chaudhary, F. Lionetti and R. Hemmatti, Applicability of  BET to Elusive Bugs in Diverse Application Areas, Proceedings ICSOFT 2009 Poster Sessions, Sofia Bulgaria, 2009.

R. Barzin, S. Fukushima, W. Howden, and S. Sharifi, SuperFIT Combinational Bug Detection, Proceedings COMPSAC 2008,
Turku, Finland, IEEE, 2008.

W. E. Howden, Adequacy of Bounded Exhaustive Testing and Incomplete Oracles for Elusive Bug Detection, Proceedings ICSOFT 2008, Porto, Portugal, 2008.

W.E. Howden and Cliff Rhyne, Test Frameworks for Elusive Bug Testing, Proceedings ICSOFT 2007, Barcellona, Spain, 2007.

William E. Howden, Software Test Selection Patterns and Elusive Bugs, Proceedings COMPSAC 2005, IEEE, 2005.

W.E. Howden, R. Kim and P. Tran, Model-Based Extreme Testing,  ISSRE 2002 (Extended Abstracts), 2002

William E. Howden, Good Enough versus High Assurance Software Testing and Evaluation Methods. HASE 1998: 1998

W.E. Howden, Proceedings ISSRE 97, Confidence-Based Reliability And Statistical Coverage Estimation , Albuquerque, 1997, p. 283

William E. Howden, Systems testing and statistical test data coverage, COMPSAC 1997: 500-504 1997

William E. Howden, Suehee Pak: The Derivation of Functional Specifications from Source Code. APSEC 1996: 166- 30

William E. Howden, Auditing Informal Software Testing and Analysis Processes. APSEC 1996: 332- 29

William E. Howden, G. M. Shi: Linear and Structural Event Sequence Analysis. ISSTA 1996: 98-106, 1996

William E. Howden, G. M. Shi: Temporal Event Analysis and Program Understanding. COMPSAC 1995: 4-11 27, 1995

William E. Howden, Yudong Huang: Software Trustability Analysis. ACM Trans. Softw. Eng. Methodol. 4(1): 36-64 (1995) 1994

William E. Howden, Yudong Huang: Confidence Oriented Software Dependability Measurement (Abstract). ISSTA 1994: 1994

W.E. Howden, and Cheron Vail, An informal verification of a critical system, Proceedings Fifth international Conference on Software Engineering and its Applications, CIGREF, Toulouse, 1992

William E. Howden, Bruce Wieand: QDA-A Method for Systematic Informal Program Analysis. IEEE Trans. Software Eng. 20(6): 445-462 (1994) 1991

William E. Howden, David Nesbitt, Cheron Vail Bruce Wieand: Verification of complex systems using incremental operational specifications. Inf. Sci. 57-58: 427-450 (1991)

William E. Howden, Program Testing versus Proofs of Correctness. Softw. Test., Verif. Reliab. 1(1): 5-15 (1991) 1990

William E. Howden, Comments Analysis and Programming Errors. IEEE Trans. Software Eng. 16(1): 72-81 (1990) 1989

William E. Howden:,Error-Based Validation Completeness. ICSE 1989: 357

William Howden, A Comparison of Software and Hardware Testing. IFIP Congress 1989: 344

William E. Howden, Validating Programs without Specifications. Symposium on Testing, Analysis, and Verification 1989: 2-9 1986

William E. Howden, A Functional Approach to Program Testing and Analysis. IEEE Trans. Software Eng. 12(10): 997-1005 (1986)

Shmuel Rotenstreich, William E. Howden: Two-Dimensional Program Design. IEEE Trans. Software Eng. 12(3): 377-384 (1986) 1982

William E. Howden, Validation of Scientific Programs. ACM Comput. Surv. 14(2): 193-227 (1982)

William E. Howden, Contemporary Software Development Environments. Commun. ACM 25(5): 318-329 (1982)

William E. Howden, Life-Cycle Software Validation. IEEE Computer 15(2): 71-78 (1982)

William E. Howden, Weak Mutation Testing and Completeness of Test Sets. IEEE Trans. Software Eng. 8(4): 371-379 (1982) 1981

William E. Howden, Completeness Criteria for Testing Elementary Program Functions. ICSE 1981: 235-243 1980

William E. Howden, Applicability of Software Validation Techniques to Scientific Programs. ACM Trans. Program. Lang. Syst. 2(3): 307-320 (1980)

William E. Howden,  Functional Testing and Design Abstractions, The Journal of Systems and Software, Volume 1, Number 4, 1980, 307-31

William E. Howden, Functional Program Testing. IEEE Trans. Software Eng. 6(2): 162-169 (1980) 1978

William E. Howden, Theoretical and Empirical Studies of Program Testing. ICSE 1978: 305-311

William E. Howden, Algebraic Program Testing. Acta Inf. 10: 53-66 (1978)

William E. Howden, DISSECT-A Symbolic Evaluation and Program Testing System. IEEE Trans. Software Eng. 4(1): 70-73 (1978)

William E. Howden, Theoretical and Empirical Studies of Program Testing. IEEE Trans. Software Eng. 4(4): 293-298 (1978)

William E. Howden, Lindenmayer Grammars and Symbolic Testing. Inf. Process. Lett. 7(1): 36-39 (1978)

 William E. Howden, An Evaluation of the Effectiveness of Symbolic Testing. Softw., Pract. Exper. 8(4): 381-397 (1978) 1977

William E. Howden, Symbolic Testing and the DISSECT Symbolic Evaluation System. IEEE Trans. Software Eng. 3(4): 266-278 (1977) 1976

William E. Howden, Experiments with a symbolic evaluation system, Proceedings, National Computer Conference, 1976 

William E. Howden, Reliability of the Path Analysis Testing Strategy. IEEE Trans. Software Eng. 2(3): 208-215, 1976 

William E. Howden, Methodology for the Generation of Program Test Data. IEEE Trans. Computers, 24(5): 554-560, 1975  

W. E. Howden and J. Laub, Automatic Case Analysis of Programs, Proc. Computer Science and Statistics, 8th Annual Meeting on the Interface, Los Angeles, Feb. 1975

W. E. Howden, Solution Plans and Interactive Problem Solving, Computers and Graphics, Volume 1, Number 1, May, 1975, 21- 26

W. E. Howden, The sofa problem, The Computer Journal, Volume 11, Number 3, November, 1968, 299-301

W. E. Howden, A program for the construction of PERT flow charts, The Computer Journal, Volume 10, Number 3, November, 1967, 299-301