Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Unit testing
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== History == Unit testing, as a principle for testing separately smaller parts of large software systems, dates back to the early days of software engineering. In June 1956 at US Navy's Symposium on Advanced Programming Methods for Digital Computers, H.D. Benington presented the [[Semi-Automatic Ground Environment|SAGE]] project. It featured a specification-based approach where the coding phase was followed by "parameter testing" to validate component subprograms against their specification, followed then by an "assembly testing" for parts put together.<ref>{{Cite journal |last=Benington |first=Herbert D. |date=1956 |title=Production of large computer programs |journal=Proceedings of the Symposium on Advanced Programming Methods for Digital Computers, Washington, D.C., June 28-29, 1956 |publisher=Office of Naval Research, Department of the Navy |pages=15β28}}</ref><ref name=":0">{{Cite journal |last=Benington |first=H. D. |date=1987-03-01 |title=Production of large computer programs (reprint of the 1956 paper with an updated foreword) |url=https://dl.acm.org/doi/10.5555/41765.41799 |journal=Proceedings of the 9th International Conference on Software Engineering |series=ICSE '87 |location=Washington, DC, USA |publisher=IEEE Computer Society Press |pages=299β310 |isbn=978-0-89791-216-7 }}</ref> In 1964, a similar approach is described for the software of the [[Project Mercury|Mercury project]], where individual units developed by different programmes underwent "unit tests" before being integrated together.<ref>{{Cite book |last1=Donegan |first1=James J. |last2=Packard |first2=Calvin |last3=Pashby |first3=Paul |chapter=Experiences with the goddard computing system during manned spaceflight missions |date=1964-01-01 |title=Proceedings of the 1964 19th ACM national conference |chapter-url=https://dl.acm.org/doi/10.1145/800257.808889 |series=ACM '64 |location=New York, NY, USA |publisher=Association for Computing Machinery |pages=12.101β12.108 |doi=10.1145/800257.808889 |isbn=978-1-4503-7918-2}}</ref> In 1969, testing methodologies appear more structured, with unit tests, component tests and integration tests collectively validating individual parts written separately and their progressive assembly into larger blocks.<ref>{{Cite book |last=Zimmerman |first=Norman A. |chapter=System integration as a programming function |date=1969-08-26 |title=Proceedings of the 1969 24th national conference |chapter-url=https://dl.acm.org/doi/10.1145/800195.805951 |series=ACM '69 |location=New York, NY, USA |publisher=Association for Computing Machinery |pages=459β467 |doi=10.1145/800195.805951 |isbn=978-1-4503-7493-4}}</ref> Some public standards adopted in the late 1960s, such as MIL-STD-483<ref>{{Cite book |title=MIL-STD-483 Military standard: configuration management practices for systems, equipment, munitions, and computer programs |date=1970-12-31 |publisher=United states, Department of Defense |year=1970 |pages=Section 3.4.7.2 |quote=The contractor shall then code and test software Units, and enter the source and object code, and associated listings of each successfully tested Unit into the Developmental Configuration}}</ref> and MIL-STD-490, contributed further to a wide acceptance of unit testing in large projects. Unit testing was in those times interactive<ref name=":0" /> or automated,<ref>{{Cite journal |last=Tighe |first=Michael F. |date=1978-01-01 |title=The value of a proper software quality assurance methodology |url=https://dl.acm.org/doi/10.1145/1007775.811118 |journal=ACM SIGMETRICS Performance Evaluation Review |volume=7 |issue=3β4 |pages=165β172 |doi=10.1145/1007775.811118 |issn=0163-5999|url-access=subscription }}</ref> using either coded tests or capture and replay testing tools. In 1989, [[Kent Beck]] described a testing framework for [[Smalltalk]] (later called [[SUnit]]) in "[https://web.archive.org/web/20150315073817/http://www.xprogramming.com/testfram.htm Simple Smalltalk Testing: With Patterns]". In 1997, [[Kent Beck]] and [[Erich Gamma]] developed and released [[JUnit]], a unit test framework that became popular with [[Java (programming language)|Java]] developers.<ref>{{Cite book |last=Gulati |first=Shekhar |url= |title=Java Unit Testing with JUnit 5 : Test Driven Development with JUnit 5 |date=2017 |publisher=Apress |others=Rahul Sharma |isbn=978-1-4842-3015-2 |location=Berkeley, CA |pages=8 |oclc=1012347252}}</ref> [[Google]] embraced automated testing around 2005β2006.<ref>{{Cite book |last=Winters |first=Titus |title=Software engineering at Google : lessons learned from programming over time |date=2020 |publisher=O'Reilly |others=Tom Manshreck, Hyrum Wright |isbn=978-1-4920-8274-3 |edition=1st |location=Sebastopol, CA |oclc=1144086840}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)