2002 · 59 citations · 23 references
EngineeringVerificationSafety ScienceSoftware EngineeringModel CheckingModel VerificationSoftware AnalysisFormal VerificationModel-based TestingNew Test SetsReliability EngineeringSystems EngineeringFormal TechniqueModel CheckerRuntime VerificationFormal ModelingComputer ScienceSafety TestingCoverage CriteriaAutomated ReasoningProgram AnalysisSoftware TestingFormal MethodsTest Sets
In addition to providing a sound basis for analysis, formal methods can support other development activities; in our case the target is specification-based testing at the system level. We use the formal method of model checking to either generate new test sets or analyze existing test sets with respect to safety properties expressed in a temporal logic. We consider two types of tests: failing tests, in which a system must reject (fail) a specific dangerous action, and passing tests, in which a system must accept (pass) a safe action in a context that also includes a plausible dangerous action. We formalize our notion of dangerous actions with a mutation model for model checking specifications, and we develop coverage criteria to assess test sets. The coverage criteria are based on the logic operators from the Computation Tree Logic (CTL) and encompass the idea of scenarios where a dangerous action is either inevitable (A) or possible (E) as of the next state (X) or at some point in the future (F). We demonstrate the feasibility of our approach with an example.
23
E. M. Clarke, Orna Grümberg, D. Long · 1996 · 6.9K citations
Test selection based on finite state models
Susumu Fujiwara, Gregor von Bochmann, Ferhat Khendek et al. · IEEE Transactions on Software Engineering · 1991 · 563 citations