With the growing importance of software
on which human lives increasingly depend, the
correctness requirement of th
e underlying software becomes especially critical. However,
the increasing complexities and sizes of modern software sy
stems pose special challenges
on the effectiveness as well as
efficiency of software verif
ication. Two major obstacles
include the quality of test generation in term
s of error detection in software testing and
the state space explosion problem in software formal verification
(
model checking
)
.
In this dissertation, we investigate several hy
brid techniques that explore dynamic (with
program execution), static (without program execution) as well as the synergies of
multiple approaches in software verification fr
om the perspectives of testing and model
checking. For software testing, a new simulatio
n-based internal variable range coverage
metric is proposed with the goal of enhanc
ing the error detection capability of the
generated test data when applied as the targ
et metric. For softwar
e model checking, we
utilize various dynamic analysis methods, su
ch as data mining, swarm intelligence (ant
colony optimization), to extract useful hi
gh-level information fr
om program execution
data. Despite being incomplete, dynamic program execution can still help to uncover
important program structure features and variable correlations. The extracted knowledge,
such as invariants in different forms, prom
ising control flows, etc., is then used to
facilitate code-level program abstraction
(
under-approximation/
over-approximation
)
,
and/or state space partition, which in turn improve the performance of property
verification.
With the growing importance of software on which human lives increasingly depend, the correctness requirement of the underlying software becomes especially critical. However, the increasing complexities and sizes of modern software systems pose special challenges on the effectiveness as well as efficiency of software verification. Two major obstacles include the quality of test generation in terms of error detection in software testing and the state space explosion problem in software formal verification (model checking). In this dissertation, we investigate several hybrid techniques that explore dynamic (with program execution), static (without program execution) as well as the synergies of multiple approaches in software verification from the perspectives of testing and model checking. For software testing, a new simulation-based internal variable range coverage metric is proposed with the goal of enhancing the error detection capability of the generated test data when applied as the target metric. For software model checking, we utilize various dynamic analysis methods, such as data mining, swarm intelligence (ant colony optimization), to extract useful high-level information from program execution data. Despite being incomplete, dynamic program execution can still help to uncover important program structure features and variable correlations. The extracted knowledge, such as invariants in different forms, promising control flows, etc., is then used to facilitate code-level program abstraction (under-approximation/over-approximation), and/or state space partition, which in turn improve the performance of property verification.
การแปล กรุณารอสักครู่..
