William C. Hetzel

Last updated

Dr. William C. Hetzel is an expert in the field of software testing. He compiled the papers from the 1972 Computer Program Test Methods Symposium, also known as the Chapel Hill Symposium, into the book Program Test Methods. [1] The book, published in 1973, details the problems of software validation and testing. [2]

The International Conference and Exposition on Testing Computer Software, which is the first conference with a focus on software testing, is convened in 1984 by the US Professional Development Institute (USPDI) in Washington, D.C. [3] Hetzel and Dr. David Gelperin are the joint program chairs. [2]

Hetzel and Dave Gelperin co-found the Software Quality Engineering consultancy firm in 1986. Their motto was, "Test, then code." Together they worked to establish software testing as a stand-alone computer discipline. In 1988 they classified the phases and goals of software testing into the following stages: [4]

In 1988 Gelperin and Heztel write the article The Growth of Software Testing. In it they discuss four major models for software testing. The first two are Phase Models, and the second two are Life Cycle Models. [4]

Hetzel's book The Complete Guide to Software Testing which provides methodologies, testing techniques, and the principles of software testing, is released in 1988. The book is released in a 2nd edition later the same year, and several other printings are made through 1994. [5]

In 1992 Gelperin and Hetzel firm organized the first "Software Testing, Analysis & Review," the "STAR" conference, in Las Vegas, Nevada and in 1993 introduced a European equivalent, the EuroSTAR Conference. [6] [7] [8] [2] The US-based conferences are now produced by TechWell Corporation which is the new name for their Software Quality Engineering company.

Gelperin and Hetzel developed the STEP methodology for implementing the original IEEE-829-1998 Standard for Software and System Test Documentation. [9] Their firm was instrumental in gaining recognition for testing as a separate discipline within the software industry. [2]

Related Research Articles

Computer programming or coding is the composition of sequences of instructions, called programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of procedures, by writing code in one or more programming languages. Programmers typically use high-level programming languages that are more easily intelligible to humans than machine code, which is directly executed by the central processing unit. Proficient programming usually requires expertise in several different subjects, including knowledge of the application domain, details of programming languages and generic code libraries, specialized algorithms, and formal logic.

Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not necessarily limited to:

<span class="mw-page-title-main">Design by contract</span> Approach for designing software

Design by contract (DbC), also known as contract programming, programming by contract and design-by-contract programming, is an approach for designing software.

The following outline is provided as an overview of and topical guide to software engineering:

Test-driven development (TDD) is a software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against all test cases. This is as opposed to software being developed first and test cases created later.

<span class="mw-page-title-main">Computer-aided software engineering</span> Software Quality Engineering Practices

Computer-aided software engineering (CASE) was a domain of software tools used to design and implement applications. CASE tools were similar to and were partly inspired by Computer-Aided Design (CAD) tools used for designing hardware products. CASE tools were intended to help develop high-quality, defect-free, and maintainable software. CASE software was often associated with methods for the development of information systems together with automated tools that could be used in the software development process.

In systems engineering, dependability is a measure of a system's availability, reliability, maintainability, and in some cases, other characteristics such as durability, safety and security. In real-time computing, dependability is the ability to provide services that can be trusted within a time-period. The service guarantees must hold even when the system is subject to attacks or natural failures.

System testing is testing conducted on a complete integrated system to evaluate the system's compliance with its specified requirements.

<span class="mw-page-title-main">Edward Yourdon</span> American software engineer and pioneer in the software engineering methodology

Edward Nash Yourdon was an American software engineer, computer consultant, author and lecturer, and software engineering methodology pioneer. He was one of the lead developers of the structured analysis techniques of the 1970s and a co-developer of both the Yourdon/Whitehead method for object-oriented analysis/design in the late 1980s and the Coad/Yourdon methodology for object-oriented analysis/design in the 1990s.

Reliability engineering is a sub-discipline of systems engineering that emphasizes the ability of equipment to function without failure. Reliability describes the ability of a system or component to function under stated conditions for a specified period of time. Reliability is closely related to availability, which is typically described as the ability of a component or system to function at a specified moment or interval of time.

Mutation testing is used to design new software tests and evaluate the quality of existing software tests. Mutation testing involves modifying a program in small ways. Each mutated version is called a mutant and tests detect and reject mutants by causing the behaviour of the original version to differ from the mutant. This is called killing the mutant. Test suites are measured by the percentage of mutants that they kill. New tests can be designed to kill additional mutants. Mutants are based on well-defined mutation operators that either mimic typical programming errors or force the creation of valuable tests. The purpose is to help the tester develop effective tests or locate weaknesses in the test data used for the program or in sections of the code that are seldom or never accessed during execution. Mutation testing is a form of white-box testing.

<span class="mw-page-title-main">Structured analysis</span>

In software engineering, structured analysis (SA) and structured design (SD) are methods for analyzing business requirements and developing specifications for converting practices into computer programs, hardware configurations, and related manual procedures.

In computer science, fault injection is a testing technique for understanding how computing systems behave when stressed in unusual ways. This can be achieved using physical- or software-based means, or using a hybrid approach. Widely studied physical fault injections include the application of high voltages, extreme temperatures and electromagnetic pulses on electronic components, such as computer memory and central processing units. By exposing components to conditions beyond their intended operating limits, computing systems can be coerced into mis-executing instructions and corrupting critical data.

Dr. David Gelperin chaired the working groups developing the IEEE 829-1989 software testing documentation standard. With Jerry E. Durant he went on to develop the High Impact Inspection Technology that builds upon traditional inspections but utilizes a test driven additive.

In computer programming and software development, debugging is the process of finding and resolving bugs within computer programs, software, or systems.

Software construction is a software engineering discipline. It is the detailed creation of working meaningful software through a combination of coding, verification, unit testing, integration testing, and debugging. It is linked to all the other software engineering disciplines, most strongly to software design and software testing.

Real-time testing is the process of testing real-time computer systems.

TechWell Corporation, was founded in 1986 by Bill Hetzel and David Gelperin as a consulting company to help organizations improve their software testing practices and produce higher quality software.

This article discusses a set of tactics useful in software testing. It is intended as a comprehensive list of tactical approaches to Software Quality Assurance (more widely colloquially known as Quality Assurance and general application of the test method.

References

  1. Hetzel, William C., ed. (1973). Program Test Methods. Prentice-Hall. ISBN   9780137296248.
  2. 1 2 3 4 Meerts, Joris. "The History of Software Testing". Testing References. Retrieved 20 November 2016.
  3. Yourdon, Edward (1992). Decline & Fall of the American Programmer. Yourdon Press. p. 333. ISBN   9780132036702.
  4. 1 2 Gelperin, David; Hetzel, Bill (June 1988). "The Growth of Software Testing". Communications of the ACM. 31 (6): 687–695. doi: 10.1145/62959.62965 . S2CID   14731341 . Retrieved 18 December 2017.
  5. Hetzel, Bill (June 1988). The Complete Guide to Software Testing (2nd ed.). Wiley. ISBN   978-0471565673.
  6. Hetzel, Bill (10 May 2017). "Guest Editorial: Bill Hetzel & Cindy Morelli". Software Testing, Verification & Reliability. 5 (3): 141–142. doi:10.1002/stvr.4370050302. S2CID   34030778.
  7. MacKenzie, Donald (2004). Mechanizing Proof: Computing, Risk, and Trust. MIT Press. p. 42. ISBN   978-0-262-63295-9.
  8. "Testen Chronologie". Computerwoche. IDG. 9 December 1998. Retrieved 6 January 2010.
  9. Rick D. Craig; Stefan P. Jaskiel (2002). Systematic Software Testing. Artech House. p. 4. ISBN   978-1-58053-792-6.