2006 · 29 citations · 25 references
ComputingComputer ScienceDesign AutomationFormal MethodsSoftware EngineeringControl-flow AnalysisData-flow AnalysisSoftware TestingStatic AnalysisStatic Code AnalysisAutomated Test GenerationAutomatic PartitioningSoftware ComponentsSoftware PartitioningSystem TestingTest CoverageTest Coverage AnalysisTest Generation
A key problem for effective unit testing is the dificulty of partitioning large software systems into appropriate units that can be tested in isolation. We present an approach that identifies control and data inter-dependencies between software components using static program analysis, and divides the source code into units where highly-intertwined components are grouped together. Those units can then be tested in isolation using automated test generation techniques and tools, such as dynamic software model checkers. We discuss preliminary experimental results showing that automatic software partitioning can significantly increase test coverage without generating too many false alarms caused by unrealistic inputs being injected at interfaces between units.
25
Symbolic execution and program testing
James C. King · Communications of the ACM · 1976 · 3K citations · Full text
Patrice Godefroid, Nils Klarlund, Koushik Sen · ACM SIGPLAN Notices · 2005 · 2.1K citations
Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar et al. · 2002 · 1.2K citations
Model checking for programming languages using VeriSoft
Patrice Godefroid · 1997 · 829 citations · Full text
Chandrasekhar Boyapati, Sarfraz Khurshid, Darko Marinov · ACM SIGSOFT Software Engineering Notes · 2002 · 598 citations