{"title":"可测试性:COMPASS94的介绍","authors":"K. Miller","doi":"10.1109/CMPASS.1994.318455","DOIUrl":null,"url":null,"abstract":"Testability is the probability that software will fail during random testing if it contains a fault. Reliability and correctness are distinct from testability, though all three ideas are closely related. It is theoretically possible to have reliable and even correct software that is not very testable, but you would be hard-pressed to give a convincing demonstration that such software has attained that reliability or correctness. Three things have to happen before a fault in software becomes known during testing: the fault must be executed, that execution has to change the data state adversely, and that \"infected\" data state must cause an incorrect output. The three parts of this process are called execution, infection, and propagation. This three-part fault/failure process forms the basis of testability analysis. Testability analysis predicts for a given piece of software how likely it is that a fault in that software (if it exists) will cause a failure during random testing. We estimate this likelihood using sensitivity analysis.<<ETX>>","PeriodicalId":137767,"journal":{"name":"Proceedings of COMPASS'94 - 1994 IEEE 9th Annual Conference on Computer Assurance","volume":"5 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1994-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Testability: an introduction for COMPASS94\",\"authors\":\"K. Miller\",\"doi\":\"10.1109/CMPASS.1994.318455\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Testability is the probability that software will fail during random testing if it contains a fault. Reliability and correctness are distinct from testability, though all three ideas are closely related. It is theoretically possible to have reliable and even correct software that is not very testable, but you would be hard-pressed to give a convincing demonstration that such software has attained that reliability or correctness. Three things have to happen before a fault in software becomes known during testing: the fault must be executed, that execution has to change the data state adversely, and that \\\"infected\\\" data state must cause an incorrect output. The three parts of this process are called execution, infection, and propagation. This three-part fault/failure process forms the basis of testability analysis. Testability analysis predicts for a given piece of software how likely it is that a fault in that software (if it exists) will cause a failure during random testing. We estimate this likelihood using sensitivity analysis.<<ETX>>\",\"PeriodicalId\":137767,\"journal\":{\"name\":\"Proceedings of COMPASS'94 - 1994 IEEE 9th Annual Conference on Computer Assurance\",\"volume\":\"5 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1994-06-27\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of COMPASS'94 - 1994 IEEE 9th Annual Conference on Computer Assurance\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/CMPASS.1994.318455\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of COMPASS'94 - 1994 IEEE 9th Annual Conference on Computer Assurance","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CMPASS.1994.318455","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Testability is the probability that software will fail during random testing if it contains a fault. Reliability and correctness are distinct from testability, though all three ideas are closely related. It is theoretically possible to have reliable and even correct software that is not very testable, but you would be hard-pressed to give a convincing demonstration that such software has attained that reliability or correctness. Three things have to happen before a fault in software becomes known during testing: the fault must be executed, that execution has to change the data state adversely, and that "infected" data state must cause an incorrect output. The three parts of this process are called execution, infection, and propagation. This three-part fault/failure process forms the basis of testability analysis. Testability analysis predicts for a given piece of software how likely it is that a fault in that software (if it exists) will cause a failure during random testing. We estimate this likelihood using sensitivity analysis.<>