Dissertação de mestrado em Engenharia de InformáticaFull fledged verification of software ensures correction to a level that no other technique can
reach. However it requires precise and unambiguous specifications of requirements, functionality
and technical aspects of the software to be verified. Furthermore, it requires that these specifications
together with the produced models and code be checked for conformity. This represents
beyond doubt an investment that most developers and companies are neither able nor willing to
make.
Although testing can not reach the same level of assurance as full fledged verification, it is
the most widely accepted and used technique to validate expectations about software products.
Testing is the most natural way of checking that a piece of software is doing what the developers
expect it to do. Improvements to test case generation have the potential to produce a great impact
in the state of the art of software engineering, by putting Software Testing closer to Formal Software
Verification.
This is an exploratory project, aimed at surveying the current state of the art in the field of test
case generation and related techniques for the Java language, eventually suggesting possible
advancements in the field.A verdadeira verificação de software garante correcção de software a um nível que nenhuma
outra técnica consegue igualar. No entanto, exige especificações precisas e inequívocas de requisitos
de funcionalidade e aspectos técnicos do software a ser verificado. Além disso, é necessário
que as especificações, juntamente com os modelos produzidos e código sejam verificados
quanto à sua conformidade. Isto representa indubitavelmente um investimento que a maioria dos
profissionais e empresas não são capazes, nem estão dispostos a fazer.
Embora os testes não alcancem o mesmo nível de garantia como a verificação completa, é
a técnica mais amplamente aceite e usada para validar as especificações sobre produtos de
software. O teste é a forma mais natural de verificar que um pedaço de software cumpre o que
os programadores esperam que faça. Melhorias na geração de boletins de teste têm o potencial
de produzir um grande impacto no estado da arte da engenharia de software, colocando o teste
de software mais perto da Verificação Formal de Software.
Este projecto é de carácter exploratório, visando o levantamento do estado actual da área de
geração de casos de teste para a linguagem Java e técnicas relacionadas, sugerindo avanços
possíveis nesta área de validação de softwar