Content deleted Content added
Reverted 1 edit by 2600:1700:B150:A4A0:3C6B:C26:85B1:1E43 (talk): Unexplained blanking |
m Minor simplifications and addition of ACM classification reference. |
||
Line 1:
'''Software verification''' is a discipline of [[software engineering]], [[programming languages]], and [[theory of computation]] whose goal is to assure that software
== Broad scope and classification ==
A broad definition of verification makes it
* ''Dynamic verification'', also known as [[experimentation]], [[dynamic testing]] or, simply testing. - This is good for finding faults ([[software bugs]]).
* ''Static verification'', also known as [[static code analysis|analysis]] or, [[static code analysis|static testing]] - This is useful for proving the [[Correctness (computer science)|correctness]] of a program. Although it may result in false positives when there are one or more conflicts between the process a software really does and what the static verification assumes it does.
Under the [[ACM Computing Classification System]], software verification topics appear under "Software and its engineering", within "Software creation", whereas [[Program verification]] also appears under [[Theory of computation]] under Semantics and reasoning, Program reasoning.
== Dynamic verification (Test, experimentation) ==
|