History of Software Testing

History of Software Testing


1820's
1822Difference engine (Babbage)The English inventor Charles Babbage starts working on a prototype of his first difference engine. The difference engine is made to compute values of polynomial functions. Babbage's machines were among the first mechanical computers.
1840's
1843Methods of inductive reasoning (Mill)In the A System of Logic the British philosopher John Stuart Mill publishes five methods of inductive reasoning; the reasoning from a specific case or cases to a general rule. The fundamental principle of induction is the proposition that the course of nature is uniform.
Lovelace's notes on the Analytical EngineDuring a nine-month period in 1842–43, Lovelace translates Italian mathematician Luigi Menabrea's memoir on Charles Babbage's Analytical Engine. With the article, she appends a set of notes. The notes include a method for calculating a sequence of Bernoulli numbers with the Engine. Based on this work, Lovelace is now widely credited with being the first computer programmer and her method is recognised as the world's first computer program.
1870's
1878System flaw termed as bug (Edison)According to the The Yale Book of Quotations the American inventor Thomas Alva Edison uses the term 'bug' in a letter to Theodore Puskas to describe a flaw in a system. According to other sources the term bug was commonly used to describe systems faults in Edison's time.
1890's
1896IBM foundedThe company which becomes IBM is founded in 1896 as the Tabulating Machine Company by Herman Hollerith in Broome County, New York. It is incorporated as Computing Tabulating Recording Corporation on June 16, 1911. The company is named International Business Machines Corporation (IBM) in 1924.
1900's
1906Pareto Principle (80/20 rule)In his book Manual of Political Economy the Italian economist Vilfredo Pareto publishes the mathematical formula to describe the unequal distribution of wealth in his country, observing that twenty percent of the people owned eighty percent of the wealth. The formula becomes known as the Pareto principle but also, through popularization by Joseph Juran, as the 80/20 rule.
1930's
1939Shewhart CycleIn his second book Statistical Method from the Viewpoint of Quality Control Walter Andrew Shewhart publishes his Scientific Method of Improvement. Page 45 of this book displays the first version of the Shewhart Cycle; a three step cycle constituting a dynamic scientific process of acquiring knowledge. Walter Edwards Deming later popularizes the method as the Plan Do Check Act method (The Deming Cycle).
1940's
1944Harvard Mark I installedThe Harvard Mark I, also known as the IBM Automatic Sequence Controlled Calculator (ASCC), is installed at Harvard and formally presented on August 7, 1944. The Mark I is a parallel synchronous calculator that can perform table lookup and the four fundamental arithmetic operations, in any specified sequence, on numbers up to 23 decimal digits in length. The machine was conceived by Howard H. Aiken in the 1930s.
1945Von Neumann architectureIn the paper First Draft of a Report on the EDVAC John von Neumann published the description of the logical design of a computer using the stored-program concept. This is the design on which most computers nowadays are based. The paper is distributed on June 30, 1945 by Herman Goldstine.
1946ISO foundedThe International Organization for Standardization (ISO) is founded during a conference in London in 1946. ISO is born from the union of two organizations; the ISA (International Federation of the National Standardizing Associations), established in New York in 1926 and the UNSCC (United Nations Standards Coordinating Committee), established in 1944.
1949On Checking a Large Routine (Turing)In the conference paper On Checking a Large Routine Alan M. Turing proposes an answer to the question how one can check a routine in the sense of making sure that it is right.
1950's
1950Turing Test (Turing)In his 1950 paper Computing Machinery and Intelligence Alan M. Turing introduces the Turing Test; a test of a machine's ability to demonstrate intelligence.
1951Juran's Quality Control Handbook (Juran)In his book Juran's Quality Control Handbook Joseph M. Juran defines quality as 'fitness for use'. Juran, who is considered to be the founding father of quality management, defines three processes for the management of quality; quality planning, quality control and quality improvement.
Total Quality Control (Feigenbaum)In his famous book 'Total Quality Control' Armand Vallin Feigenbaum defines quality as a customer determination. Quality depends on the perspective of the customer. The product should satisfy the customer in both actual and expected needs. There is a company-wide responsibility for quality.
First practical text on programming (Wilkes)The book The Preparation of Programs for an Electronic Digital Computer by authors Maurice V. Wilkes, David J. Wheeler and Stanley Gill is the first practical text on computer programming. The authors draw on their experience from designing the EDSAC.
1952IBM 701 releasedThe IBM 701 Defense Calculator is IBM's first production computer. It is the first of the very popular IBM 700 series. The computer contains two electrostatic storage units and an electronic analytical and control unit. 19 units are created. A unit rented for about $16,000 per month.
1956First Fortran manualThe first Fortran manual (an automatic coding system for the IBM 704) is published by IBM in October 1956. It describes the variables, functions, expressions and control statements of the language.
1957Program testing vs debugging (Baker)Charles L. Baker (RAND Corporation) distinguishes program testing from debugging in his review of the book Digital Computer Programming by Dan McCracken. The review is published in the journal Mathematical Tables and Other Aids to Computation.
Digital Computer Programming (McCracken)Daniel D. McCracken's book Digital Computer Programming is perhaps the first general textbook on programming. McCracken writes the book while working for General Electric. He discusses a number of programming techniques such as program checkouts. McCracken specifically advises using break points in a program at which the functioning of the program may be verified.
1958First software test team (Weinberg)The first test team is formed by Gerald M. Weinberg, working as manager of Operating Systems Development for the Project Mercury. Project Mercury is the first human spaceflight program of the United States.
1959Work Breakdown StructureIn their classic paper Program Evaluation and Review Technique (PERT) D.G. Malcolm, J.H. Roseboom, C.E. Clark and W. Fazar introduce their method to analyze the involved tasks in completing a given project. Although not mentioned by that name in the paper they also introduce the Work Breakdown Structure.
Critical-Path Method (Kelley, Walker)In their paper Critical-Path Planning and Scheduling James E. Kelley and Morgan R. Walker offer a planning and scheduling methodology for complex projects. They introduce the Critical-Path Method in order to create optimal direct cost schedules. The authors use project diagrams of tasks and link these tasks (jobs) based on three questions; what immediately precedes this job, what immediately follows this job and what can be concurrent with this job?
1960's
1961Computer Programming Fundamentals (Leeds, Weinberg)The book Computer Programming Fundamentals by Gerald Weinberg and Herbert Leeds contains a chapter on software testing. Weinberg and Leeds argue that testing should prove the adaptability of a computer program instead of its ability to process information.
1963Flowchart symbols standardized (Rossheim)In his paper Report on proposed American standard flowchart symbols for information processing Robert J. Rossheim describes the standard symbols to be used for flowcharting. Rossheim publishes his work for the American Standards Association, later ANSI.
1964First Basic program runsMathematicians John G. Kemeny and Thomas E. Kurtz run the first Basic program at Dartmouth College. Kemeny and Kurtz write the language to aid the teaching of computer programming. Basic is an acronym for Beginner's All-Purpose Symbolic Instruction Code.
1967Evaluation of the Functional Testing of Control ProgramsIn the IBM white paper Evaluation of the Functional Testing of Control Programs William Elmendorf calls for a disciplined approach to software testing.
Software engineering introducedThe term 'software engineering' is coined by a NATO study group that recommends a conference to discuss 'the problems of software'. The report from the ensuing 1968 conference, which was sponsored by the NATO Science Committee and took place in Garmish, Germany, is titled Software Engineering. Brian Randell and Peter Naur point out in the introduction to their edition of the proceedings, "The phrase 'software engineering' was deliberately chosen as being provocative, in implying the need for software manufacture to be [based] on the types of theoretical foundations and practical disciplines[,] that are traditional in the established branches of engineering.
1968NATO report mentions Software Quality AssuranceDuring the Software Engineering conference sponsored by the NATO Science Committee (7th to 11th October 1968) among other things quality assurance for software production is one of the topics. The report of the conference includes the working paper Checklist for planning software system production by Robert W. Bemer. This paper contains a chapter on quality assurance. One of the questions in the checklist is 'Is the product tested to ensure that it is the most useful for the customer in addition to matching functional specifications?'.
Structured programming (Dijkstra)In his letter Go To Statement Considered Harmful published in the March 1968 Communications of the ACM, Edsger Dijkstra criticizes the excessive use of the GOTO statement in programming languages. Dijkstra considers the usage harmful because it complicates the task of analyzing and verifying the correctness of programs. The letter is usually cited as the beginning of the structured programming debate
Intel foundedIntel is founded by Gordon E. Moore and Robert Noyce. In the beginning the company's primary products are static random access memory (SRAM) chips. Intel releases the first commercially available microprocessor (Intel 4004) in 1971.
Software crisis (Bauer)The term 'software crisis' is coined by Friedrich Ludwig Bauer at the first NATO Software Engineering Conference in 1968 in Garmisch-Partenkirchen, Germany. It refers to the difficulty of writing correct, understandable, and verifiable computer programs.
Conway's LawIn his 1968 paper How Do Committees Invent? Melvin E. Conway publishes the thesis that "Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.". The thesis later becomes known as Conway's Law.
1969Testing shows the presence, not the absence of bugsEdsger Dijkstra's famous quote was reportedly first spoken on a conference by the NATO Science Committee, Rome, Italy, 27–31 October 1969.
Data structure diagrams (Bachman)In the article Data Structure Diagrams Charles W. Bachman, working for General Electric, introduces Data Structure Diagrams. It is a graphic technique that is used to model entities and their relationships.
1970's
1970Waterfall model published (Royce)Winston Royce describes a waterfall model in the paper Managing the Development of Large Software Systems, presented to IEEE WESCON in 1970. The waterfall model is a sequential software development process. In his paper Royce also mentions the shortcomings of the waterfall and warns against using the method.
Relational model published (Codd)In his paper A Relational Model of Data for Large Shared Data Banks Edgar F. Codd, working for IBM, publishes the relational model for data. His theory paves the way for relational databases.
1971Mutation testing (Lipton)In a class term paper titled Fault Diagnosis of Computer Programs Richard Lipton proposed the initial concepts of mutation. Mutation testing is a methodology for unit testing in which small parts of the code are changed. This is done, for example, in order to test the quality of the unit tests.
1972Systems decomposition (Parnas)In his famous paper On the Criteria to Be Used in Decomposing Systems into Modules David Lorge Parnas discusses the benefits of modular programming.
Proof of correctness as guidance (Dijkstra)In his ACM Turing Lecture titled The Humble Programmer Edsger W. Dijkstra states that "One should not first make the program and then prove its correctness, because then the requirement of providing the proof would only increase the poor programmer's burden." It is one of his arguments in support of the technical feasibility of the change required in software programming.
1973Program Test Methods (Hetzel)The Chapel Hill Symposium, organized by the University of North Carolina and held on June 21-23 1972, leads to publication of the book Program Test Methods edited by William Hetzel. The book contains the edited papers of the symposium as well as a large annotated bibliography. The book focuses on the problems in testing and validation.
Cause-effect graph created (Elmendorf)In the paper Cause-Effect Graphs in Functional Testing, published for IBM, William Elmendorf publishes the cause-effect graph.
Compuware foundedCompuware Corporation is established in Detroit by Peter Karmanos, Jr., Thomas Thewes and Allen B. Cutting. The company focuses on the publication of testing tools and engineering aids.
Stages of growth model (Nolan)In his paper Managing the computer resource: a stage hypothesis Richard L. Nolan introduces his Stages of growth model. The model describes the stages a company goes through when introducing information technology (computers) into its business process. Initially there are four stages. Two additional stages are added in 1979.
Triangle problem (Gruenberger)In his paper Program Testing: the Historical Perspective - based on the talk held during the Chapel Hill Symposium - Fred Gruenberger introduces the classic triangle problem as a testing idea. Gruenberger takes the problem from the book Computers and Society by Richard Hamming (1972).
Nassi-Shneiderman diagramIn their paper Flowchart Techniques for Structured Programming Isaac Nassi and Ben Shneiderman publish their flowchart for the top-down decomposition of programs.
1975Microsoft foundedMicrosoft is founded by Bill Gates and Paul Allen on April 4, 1975 in Albuquerque. It is to become one of the largest software companies in the world. The company employed over 10,000 testers in 2009.
Laws of Unreliability (Gilb)Tom Gilb publishes his Laws of Unreliabilty in the computer magazine Datamation (March issue, 1975). Gilb is one of the first to define system and software reliability and the relationship between human error and system error.
Toward a Theory of Test Data Selection (Goodenough, Gerhart)The paper by John B. Goodenough and Susan L. Gerhart discusses formal proof methods and the limitations of structure-based testing. It also outlines the use of decision tables.
Brooks' lawIn the book The Mythical Man-Month: Essays on Software Engineering Fred Brooks presents the central theme that "adding manpower to a late software project makes it later". This idea is known as Brooks' law, and is presented along with the second-system effect and advocacy of prototyping. Brooks draws from his experience as a manager of the development of IBM OS/360.
Introduction to General Systems Thinking (Weinberg)In his book An Introduction to General Systems Thinking Gerald M. Weinberg offers a clear view on systems theory. According to Weinberg it is an attempt "to teach an approach to thinking when the labels are missing, or misleading." Understanding the limitations of our tools is a recurring theme in the book.
Altair 8800 introducedThe Altair 8800 is introduced by Micro Instrumentation and Telemetry Systems (MITS) in 1975. It is a microcomputer based on the Intel 8080 processor. The computer sells for $439 in kit form and $621 assembled. It is sold by mail order through advertisements in Popular Electronics, Radio-Electronics and other hobbyist magazines. It runs Altair Basic.
1976Design and Code inspections (Fagan)In his paper for IBM Michael Fagan proposes the use of code inspections in order to reduce the cost of rework.
Apple foundedApple is established in Cupertino, California by Steve Jobs, Steve Wozniak, and Ronald Wayne.
Cyclomatic Complexity (McCabe)Thomas J. McCabe introduces cyclomatic complexity as a software metric for the complexity of a program in his IEEE paper A Complexity Measure.
Software Reliability: Principles and Practices (Myers)In his book Software Reliability: Principles and Practices Glenford Myers discusses software testing among other things. He mentions, for example, that 'The goal of the testers is to make the program fail'.
Cost-of-change curve (Boehm)In his paper Software Engineering, published in the December 1976 issue of IEEE Transactions , Barry Boehm publishes his cost-of-change curve. The curve essentially shows that the cost of changing the software (fixing a software defect) rises exponentially in time. Boehm uses data from his work at TRW and other sources such as GTE, IBM and Bell Laboratories.
1977Factors in Software Quality (McCall a.o.)In this paper for the US Air Force Jim McCall, Paul Richards and Gene Walters (General Electric) present a list of 55 quality factors.
Software Metrics (Gilb)The book Software Metrics by Tom Gilb is considered a source book for a large number of software metrics.
Elements of Software Science (Halstead)Maurice Halstead publishes his methods for the measurement of code complexitity in the book Elements of Software Science.
Program Testing Techniques (Miller)Edward F. Miller introduces the decision-to-decision path as a structural testing technique in the tutorial Program Testing Techniques, held during the first Computer Software and Applications Conference (COMPSAC).
Design pattern (Alexander)In their book A Pattern Language: Towns, Buildings, Construction Christopher authors Alexander, Sara Ishikawa and Murray Silverstein introduce the term 'design pattern'. They apply it to architecture and urban development. In software engineering, a design pattern is a general reusable solution to a commonly occurring problem in software design.
1978Functional Program Testing (Howden)In this paper for IEEE William Howden describes an approach to functional testing in which the design of a program is viewed as an integrated collection of functions.
Laws of program evolution (Lehman)In the paper Laws of Program Evolution - Rules and Tools for Programming Management Meir Lehman publishes the laws of program evolution. They are the law of Continuing Change, Increasing Complexity, Statistically Regular Growth, Invariant Work Rate and Incremental Growth Limit. Based on the laws Lehman suggests rules and tools for software development and maintenance. Lehman's work is based on a study done in collaboration with Laszlo Belady.
1979The Art of Software Testing (Myers)The book The Art of Software Testing by Glenford Myers is lauded as the first book that is about software testing only. It sets the stage for 'modern' software testing. Among other things Myers introduces black box testing. He also poses the 'Triangle Program' as a testing self-assessment challenge.
Quality is Free (Crosby)In his book Philip B. Crosby describes his famous 14-step program for quality improvement. Crosby defines quality as conformance to requirements. He defines the 'Quality Maturity Grid' and classifies management attitudes toward quality into five categories. Crosby suggests that improvement happens as management 'matures' from one category to another.
QA standard BS 5750 publishedThe British quality assurance standard BS 5750 is published by the British Standards Institution. Initially, it was used only in manufacturing industries. BS 5750 was later merged into ISO 9000.
FMEA applied to software (Reifer)In his paper "Software Failure Mode and Effects Analysis" Donald J. Reifer applies Failure Mode and Effects Analysis (FMEA) to software for the first time.
Structured Analysis and System Specification (DeMarco)The book Structured Analysis and System Specification by Tom DeMarco is a classic on structured analysis. DeMarco covers functional decomposition, data dictionary, process specification, system modeling and structured analysis for a future system. He suggests an approach that emphasizes a top-down, partitioned, graphic model of the system-to-be. He also stresses the important role of a data dictionary and the role of scaled-down specifications, or minispecs, to be written in a rigorous subset of the English language known as Structured English.
Function points (Albrecht)In his paper Measuring Application Development Productivity Allan Albrecht, working for IBM, introduces the function point in order to measure programmer productivity. Albrecht concludes from his study of productivity that a discplined process is "an essential ingredient to meaningful productivity measurement".
1980's
1981Software Engineering Economics (Boehm)In the landmark book Software Engineering Economics Barry W. Boehm introduces the notion that the cost of fixing a bug rises exponentially in time. He also introduces the constructive cost model (COCOMO).
IBM Personal Computer goes mass marketIBM releases the personal computer (the IBM-PC or IBM 5150) that set the standard for mass market computer products.
Rational Software foundedRational Software is founded by Mike Devlin and Paul Levy, Until its acquisition by IBM in 2003 Rational produces tools to aid software engineers, among which quality management tools such as ClearQuest.
What is Total Quality Control? (Ishikawa)In his book What is Total Quality Control? The Japanese Way (first published in Japanese in 1981) Kaoru Ishikawa states that that quality is a dynamic concept as the needs, the requirements and the expectations of a customer continuously change.
1982Rethinking Systems Analysis and Design (Weinberg)In this book Gerald Weinberg describes iterative development and testing.
First PNSQC conferenceThe first Pacific Northwest Software Quality Conference (PNSQC) is held in Portland, Oregon. The goal of the non-profit Oregon corporation is to enable knowledge exchange to produce higher quality software.
SQS founded in GermanyThe German company Software Quality Systems (SQS) is founded Heinz Bons and Rudolf van Megen. It is one of the leading software testing organisations in Europe.
Out of the Crisis (Deming)In his book Out of the crisis : Quality, Productivity and Competitive Position William Edwards Deming proposes that quality must be defined in terms of customer satisfaction. Deming lists fourteen key principles for management that should aid the implementation of his view of quality.
Life Cycle Concept Considered Harmful (McCracken)In their paper Life Cycle Concept Considered Harmful Daniel McCracken and Michael A. Jackson criticize the waterfall way of software development. Among other things they state that "System requirements can never be stated fully in advance, not even in principle, because the user doesn`t know them in advance - not even in principle“.
1983IEEE 829 publishedThe first version of the IEEE 829 Standard for Software Test Documentation is published in 1983. The standard specifies the form of a set of documents for use in eight defined stages of software testing.
US federal V&V standard publishedThe Guideline for Lifecycle Validation, Verification, and Testing of Computer Software (a Federal Information Processing Standard (FIPS 101)) is published by the United States federal government.
Psychology of Human-Computer InteractionThe book The Psychology of Human-Computer Interaction by Stuart K. Card, Thomas P. Moran, Allen Newell is considered a classic in the field of usability. It discusses, among other things, psychologically-based design methods and tools such as GOMS (Goals, Operators, Methods, and Selection rules).
1984An Information Systems Manifesto (Martin)In the book An Information Systems Manifesto James Martin publishes his Distribution of Defects, showing that over half of the defects have their root cause in poorly defined requirements.
First testing industry conference (USPDI)The US Professional Development Institute (USPDI) organizes the International Conference and Exposition on Testing Computer Software; the first conference for the testing industry. The conference is held in Washington DC. Dave Gelprin and Bill Hetzel are joint programme chair for the first six years. Ginger Houston-Ludlam is programme chair for the next ten years. Denis Meredith is programme chair for the remaining years. The last of these conferences is held in 2002.
SEI foundedThe Carnegie Mellon Software Engineering Institute (SEI) is established by the U.S. Department of Defense. In its own words "the SEI advances software engineering and related disciplines to ensure the development and operation of systems with predictable and improved cost, schedule, and quality."
Theory of Constraints (Goldratt)In his book The Goal Eliyahu M. Goldratt publishes his Theory of Constraints. It is a management philosophy that is focused on eliminating constraints, bottlenecks from a production process. Theory of Constraints is based on the premise that the rate of goal achievement is limited by at least one constraining process
1985Microsoft releases ExcelMicrosoft releases the first version of Excel on 30 September 1985. The version is written for the Apple Macintosh. The Windows version of Excel is released in 1987. The spreadsheet program (the first with a graphical user interface) quickly outsells Lotus 1-2-3 and becomes Microsoft's flagship product. Today Excel is still often used as a testing tool.
AutoTester released (Hayes)Autotester, the frst commercial test tool for the PC (on MS-DOS) is released by Linda Hayes's company AutoTester. The company is based in Dallas, Texas.
DOD-STD-2167 standard publishedOn 4 June 1985 the American Department of Defense publishes DOD-STD-2167; the standard that establishes 'the requirements to be applied during the development and acquisition of Mission-Critical Computer System software'. It includes formal testing.


The History of Software Testing by Joris Meerts is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Source: http://www.testingreferences.com/testinghistory.php