# Two kinds of testing

DevFeed: [Two kinds of testing](<https://devfeed.tech/articles/two-kinds-of-testing-21975.md>)

Original publisher: [Read original article](<https://blog.nelhage.com/post/two-kinds-of-testing/>)

Author: Nelson Elhage

Published: 2019-12-24T21:09:55Z

Content type: article

Language: en

Sources: [Nelson Elhage](<https://devfeed.tech/sources/nelson-elhage.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>)

Tags: [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>)

## AI overview

The article distinguishes two major approaches to software testing: validating a program against an externally defined standard of correctness, and supporting engineers who maintain changing systems over time. It explains how the second approach relates to continuous integration and, at its extreme, continuous deployment.

## Source excerpt

While talking about thinking about tests and testing in software engineering recently, I've come to the conclusion that there are (at least) two major ideas and goals that people have when they test or talk about testing. This post aims to outline what I see as these two schools, and explore some reasons engineers coming from these different perspectives can risk talking past each other. Two reasons to test Testing for correctness The first school of testing comprises those who see testing as a tool for validating a software artifact against some externally-defined standard of correctness.