Software testability: Difference between revisions

Content deleted Content added
Nmondal (talk | contribs)
No edit summary
formatting. Not approving of the previous edit
Line 2:
'''Software testability''' is the degree to which a software artifact (i.e. a software system, software module, requirements- or design document) supports testing in a given test context. If the testability of the software artifact is high, then finding faults in the system (if it has any) by means of testing is easier.
 
Formally, some systems are testable, and some are not. This classification can be achieved by noticing that, to be testable, for a functionality of the system under test "S", which takes input "I", a computable [[functional predicate]] "V" must exists such that <math>V(S,I)</math> is true when S, given input I, produce a valid output, false otherwise. This function "V" is known as the verification function for the system with input I.
for a functionality of the system under test "S",
which takes input "I", a Computable [[Functional predicate]] "V" must exists such that V( S, I ) is true when S, given input I, produce a valid output, false otherwise.
This function "V" is known as the verification function for the system with input I.
 
Many software systems are untestable, or not immediately testable. For example, googlesGoogle's [[ReCAPTCHA]] , without having any metadata about the images is not a testable system. Recaptcha, however, can be immediately tested if for each image shown, there is a tag stored elsewhere. Given this meta information, one can test the system.
Recaptcha, however, can be immediately tested if for each image shown, there is a tag stored elsewhere. Given this meta information, one can test the system.
Therefore, testability is often thought of as an [[extrinsic]] property which results from interdependency of the software to be tested and the test goals, test methods used, and test resources (i.e., the test context). Even though testability can not be measured directly (such as software size) it should be considered an [[intrinsic]] property of a software artifact because it is highly correlated with other key software qualities such as encapsulation, coupling, cohesion, and redundancy.
Line 16 ⟶ 12:
A lower degree of testability results in increased [[test effort]]. In extreme cases a lack of testability may hinder testing parts of the software or [[software requirements]] <u>at all</u>.
 
In order to link the testability with the difficulty to find potential faults in a system (if they exist) by testing it, a relevant measure to assess the testability is how many test cases are needed in each case to form a complete test suite (i.e. a test suite such that, after applying all test cases to the system, collected outputs will let us unambiguously determine whether the system is correct or not according to some specification). If this size is small, then the testability is high. Based on this measure, a [[#Testability hierarchy|testability hierarchy]] has been proposed.<ref name="RodriguezLlanaRabanal">{{cite journal | last1=Rodríguez | first1=Ismael | last2=Llana | first2=Luis | last3=Rabanal | first3=Pablo | title=A General Testability Theory: Classes, properties, complexity, and testing reductions | journal=IEEE Transactions on Software Engineering | volume=40 | issue=9 | pages=862-894 | year=2014 | issn=0098-5589 | doi=10.1109/TSE.2014.2331690}}</ref><ref name="Rodriguez">{{cite conference | last=Rodríguez | first=Ismael | title=A General Testability Theory | doi=10.1007/978-3-642-04081-8_38 | year=2009 | booktitle=CONCUR 2009 - Concurrency Theory, 20th International Conference, CONCUR 2009, Bologna, Italy, September 1-4, 2009. Proceedings | pages=572-586 | ISBN=978-3-642-04080-1}}</ref>
<ref name="Rodriguez">{{cite conference | last=Rodríguez | first=Ismael | title=A General Testability Theory | doi=10.1007/978-3-642-04081-8_38 | year=2009 | booktitle=CONCUR 2009 - Concurrency Theory, 20th International Conference, CONCUR 2009, Bologna, Italy, September 1-4, 2009. Proceedings | pages=572-586 | ISBN=978-3-642-04080-1}}</ref>
 
== Background ==