AN EFFECTIVE ANALYSIS OF EXECUTABLE ASSERTIVES AS INDICATORS OF SOFTWARE FAILS
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO === A confiabilidade absoluta do software é considerada inatingível, pois mesmo quando confeccionado seguindo regras rígidas de qualidade, o software não está livre da ocorrência de falhas durante a sua vida útil. O nível de confiabilidade do softwa...
Main Author: | |
---|---|
Other Authors: | |
Language: | Portuguese |
Published: |
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO
2015
|
Online Access: | http://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=25792@1 http://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=25792@2 |
Summary: | PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO === A confiabilidade absoluta do software é considerada inatingível, pois mesmo quando confeccionado seguindo regras rígidas de qualidade, o software não está livre da ocorrência de falhas durante a sua vida útil. O nível de confiabilidade do software está relacionado, entre outros, à quantidade de defeitos remanescentes que serão exercitados durante seu uso. Contendo menos defeitos remanescentes, espera-se que o software falhe menos frequentemente, embora muitos desses defeitos sejam exercitados nenhuma vez durante a vida útil do software. Mas desenvolvedores, além de redigir programas, utilizam cada vez mais bibliotecas e serviços remotos que muitas vezes possuem qualidade duvidosa. Na tentativa de tornar o software capaz de observar erros em tempo de execução, surge a hipótese que o uso dos Métodos Formais Leves, por meio do emprego sistemático de assertivas executáveis, pode ser eficaz e economicamente viável para assegurar a confiabilidade do software, tanto em tempo de teste como em tempo de uso. O objetivo principal desta pesquisa é avaliar a eficácia de assertivas executáveis para prevenção e observação de falhas em tempo de execução. As avaliações da eficácia foram feitas por intermédio de uma análise quantitativa utilizando experimentos. Estes, utilizam, implementações de estruturas de dados instrumentadas com assertivas executáveis, submetidas a testes baseados em mutações. Os resultados mostraram que todos os mutantes não equivalentes foram identificados pelas assertivas, embora os testes não foram capazes disso. Também é apresentada uma estimativa do custo computacional relativo ao uso de assertivas executáveis. Com base na infraestrutura criada para realização dos experimentos é proposta uma política de instrumentação de programas utilizando assertivas executáveis a serem mantidas ativas tanto durante os testes como durante o uso produtivo. === Absolute reliability of software is considered unattainable, because even when it is build following strict quality rules, software is not free of failure occurrences during its lifetime. Software s reliability level is related, among others, to the amount of remaining defects that will be exercised during its use. If software contains less remaining defects, it is expected that failures will occur less often, although many of these defects will never be exercised during its useful life. However, libraries and remote services of dubious quality are frequently used. In an attempt to enable software to check mistakes at runtime, hypothetically Lightweight Formal Methods, by means of executable assertions, can be effective and economically viable to ensure software s reliability both at test time as well as at run-time. The main objective of this research is to evaluate the effectiveness of executable assertions for the prevention and observation of run-time failures. Effectiveness was evaluated by means of experiments. We instrumented data structures with executable assertions, and subjected them to tests based on mutations. The results have shown that all non-equivalent mutants were detected by assertions, although several of them were not detected by tests using non-instrumented versions of the programs. Furthermore, estimates of the computational cost for the use of executable assertions are presented. Based on the infrastructure created for the experiments we propose an instrumentation policy using executable assertions to be used for testing and to safeguard run-time. |
---|