22
1 6° Workshop do Projeto ATIFS INPE Doutoranda: Regina Lúcia de Oliveira Moraes Orientadora: Profa. Dra. Eliane Martins Estratégia para Testes de Componentes utilizando Injeção de Falhas

6° Workshop do Projeto ATIFS INPE - INPE - Instituto Nacional de ... · apresentar um defeito (difere do especificado) IC - CESET / UNICAMP Terminologia Utilizada ... Freqüência

  • Upload
    buimien

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

1

6° Workshop do Projeto ATIFSINPE

Doutoranda: Regina Lúcia de Oliveira Moraes

Orientadora: Profa. Dra. Eliane Martins

Estratégia para Testes de Componentesutilizando Injeção de Falhas

2

IC - CESET / UNICAMP

Índice

Contribuições, Conclusões e Trabalhos Futuros

Injeção de Falhas

Ferramenta de Injeção de Falhas - Jaca

Estudo de Caso

Estratégia Proposta

Aplicação dos Testes

Resultados

IC - CESET / UNICAMP

Injeção de Falhas

3

IC - CESET / UNICAMP

Terminologia Utilizada

Especificação - descrição da função ou serviço esperado do sistema

Falha (fault) - causa suposta ou constatada de um erro do sistemaErro (error) - uma falha levará a uma modificação no estado do sistema, estado este denominado erroDefeito (failure) - um erro levará o sistema a apresentar um defeito (difere do especificado)

IC - CESET / UNICAMP

Terminologia Utilizada

Validação - processo no qual verifica-se se foram retiradas as falhas do sistema e se avalia medidas deconfiabilidade, eficiência dos diversos mecanismos envolvidos.Verificação - tem o objetivo de diagnosticar e eliminar o maior número possível de falhas de projeto/ implementação existente.Avaliação - tem o objetivo de obter medidas da eficiência dos mecanismos de tolerância à falhas do sistema

4

IC - CESET / UNICAMP

Tipos de Injeção de Falhas

Nesse trabalho foi utilizado Injeção de Falhas por Software

IC - CESET / UNICAMP

Modelo FARM

Caracteriza os principais atributos da Injeção de Falhas / Erros.� ������������� �

������������� ������������ �� �� ����� �

��������� ��� ����������� ��� ���

� ����������� ��

������������� ������������ �������� ���

������������� ��������������� �

5

IC - CESET / UNICAMP

Jaca

IC - CESET / UNICAMP

Esquema

Interface

Controlador

GerenciadorInjetor

GerenciadorMonitor Ativador

InjetorLógico

InjetorLógico

MonitorLógico

MonitorLógico… …

InjetorFísico

MonitorFísico

………….

Meta Nível

Nível BaseAplicação

Lista de Falhas

Arquivo de Log

Lista de Classes

Javassist

Jaca

6

IC - CESET / UNICAMP

Interface Gráfica

IC - CESET / UNICAMP

Estratégia

7

IC - CESET / UNICAMP

Defeitos provocados por falhas de software

Seleção dos Objetos

Injetar nos Módulos ou Objetos de Maior Risco para a Aplicação

Módulos / Objetos propensos à falhas introduzidas pelos desenvolvedores

IC - CESET / UNICAMP

Seleção dos Objetos

Módulos / Objetos propensos à falhas introduzidas pelos desenvolvedores

Complexidade do móduloCriticidade da função do módulo

Freqüência de utilização do módulo

8

IC - CESET / UNICAMP

Seleção dos Objetos

Quando código fonte está disponível:

Calcule métricas de complexidade (CK)Compare as métricas obtidas com os padrões de valoresEscolha as classes que não estejam dentro dos limitesEscolha as classes que tenham uma interação direta com o componente

IC - CESET / UNICAMP

Seleção dos Objetos

Calcule métricas de complexidade para cada método público das classes escolhidasEscolha os métodos que excedam os limitesPara cada método escolhido, escolha os parâmetros e valores de retorno de chamada de métodos (locais de injeção)Para cada local de injeção, de acordo com seu tipo, faça uma especificação de injeção para cada valor crítico.

9

IC - CESET / UNICAMP

Seleção dos Objetos

Quando código fonte não está disponível:Tome o diagrama de classes do softwareConte as associações de cada classe do diagramaEscolha as classes que tenham os maiores números de associações com outras classesEscolha as classes que tenham uma interação direta com o componenteEscolha classes com número alto de ancestrais ou descendentes diretos

IC - CESET / UNICAMP

Seleção dos Objetos

Escolha os métodos públicos e com tipos compatíveis, das classes selecionadas.Para cada método escolhido, escolha os parâmetros e valores de retorno de chamada de métodos (locais de injeção).

Para cada local de injeção, de acordo com seu tipo, faça uma especificação de injeção para cada valor crítico.

10

IC - CESET / UNICAMP

Conjunto F

����� ��� �!

��"�������#�����������������$����� ���� �#$� �%��%���

���&�'� ��� �!

��"���(������������� ����������(������ �������$�� �

IC - CESET / UNICAMP

Conjunto F

�)� ���� ��� �!

�*������� ����� ���"������������ ����� � �+���� %+����%������

�����&����&,'��� � ��� �!

�*�� ���

� ��������

�-� �����

11

IC - CESET / UNICAMP

Conjunto A

Forma de Validação Dinâmica

�������&� ���������� ����� � ��&������$���(�� ��� �� ��� �� ������ � �

IC - CESET / UNICAMP

Conjunto A

���%�����.���� ������/ ����� ��������� ��� ��"����0�./���1

�/���� �2�3�����������4

�%��� �(��-�%�� ����./����5���������� ���

12

IC - CESET / UNICAMP

Conjunto R

� � ������� 6� ���

� ���$��� ������� ���7

� ���� �����.���� ���

�% �������%��$����8�9����8���$����� �� ���7

� ���� ��� ���� ���

�������� ������������8��� �������������(�8���$�����% �:�����7

� ���� �����/���� �2

� ��%�����9���(��� ������� ��� �� �7

IC - CESET / UNICAMP

Conjunto M

� �% ����������;�������(��� ���� ���

����% � �(��������%�����9���(��0���������'��� �� ���� ��� 8���������� �(������ ����������17

����%��� �������%��%��� ����� �

�<(�� %�������9��(�����%�����%��%��� ��7�

��%�������9��(�����%�����%��%��� ��7�

�<(�� %������9��(���%��%��� ����(����� ����%�� � �7

��%�������9��(���%��%��� ����(����� ����%�� � �7

13

IC - CESET / UNICAMP

Estudo de Caso

IC - CESET / UNICAMP

Ozone

Gerenciador de Base de Dados Orientado a Objetos (SGBDOO)

Projeto de código aberto (Open Source) distribuído sob a licença LGPL

Possibilita a persistência de objetos implementados em Java num ambiente transacionalObjetos são programados segundo a sintaxe da linguagem de programação

14

IC - CESET / UNICAMP

Ozone

Baseado numa arquitetura de ativação central (objetos nunca deixam o servidor)

Aplicações do cliente conectam-se ao banco de dados usando “sockets” Clientes referenciam objetos do servidor utilizando um processo análogo ao RMIObjetos “proxy” são utilizados para controlar os objetos no cliente.

IC - CESET / UNICAMP

Wisconsin OO7

Id_doc = 345título = “documento #27”coment = “documento # 27 armazena informações”

Id = 248590tipo = “tipoNum3”data = 3587341documentação

15

IC - CESET / UNICAMP

Wisconsin OO7

Conjunto Básico

idtipodatamanualraíz_proj Texto do objeto Manual

Conjunto Complexo

Biblioteca de Projeto

IC - CESET / UNICAMP

Classes do Wisconsin OO7

�� �� 3�� <�� � - <�� ������ �(����� � ���� ����%����!

=���"���� �%>"��� !

?�� � �����%����!

/���� �2 �%� @A BC B D ��� ��� ���

��4E� �� �� �%� BD BD B D ��� ��� ���

��4E��������� �%� F F B D ��� ��� ���

��4E������� �%� 4 4 B D ��� ��� ���

��4E���$���"���� �%� 4 4 B @ ��� ��� ���

��4E����� �%� 4 4 G D <(� ��� ���

��4E���%����* �� �%� BB BB G D <(� ��� ���

��4E/ �����"�H �%� A A C D <(� ��� ���

��4E���%�9����"�H �%�

C C C D <(� ��� ���

��4E����"�H �%� A A G G <(� ��� ���

��4E������* �� �%� BC BC G D <(� ��� ���

16

IC - CESET / UNICAMP

Métodos das classes

�#������*>"������� �� ����"����

*>"�����<�� * �:����I

-�%�-�%���������

���%�9�� �������J���

K� ��#�������%����!

/���� �2 �%� <(���J �� ����� �$�������* �����

�$�I�����$LM ��� �I ��<(���J

<(���J<(���JN��$

BBBB

<(�������

��4E� �� � �%� <(���J ���-������ ����-9������� ��9�

9I�����$9IN��$9I�����$�<(���J�<(���J�<(���J

<(���J<(���J<(���J�����$N��$�����$

BBBBBB

<(�<(�<(�<(�<(�<(�

IC - CESET / UNICAMP

Valores Injetados

������������� ����������� �%� �(�������6 � �% � � ���(�

��� �I ������ �I�/���� �2 �%� ��� �OP� ��� ���5�B

��� �OP� ��� ��Q�B

��� �OP� ��� ��5�CG4RD0� ����������% � ��������1

��� �OP� ��� ��Q�CG4RD0� ����������% � ��������1

��� �OP� ��� ��S�D0� ������������% � ����#�����1

17

IC - CESET / UNICAMP

Dados Coletados

N�� � � ������� ��

���� ������6�� -�%�����%�������% � ���� �(���"��� ����"����

9�����0�� � � ����(���� � � ��%����6��1

<>����������������� ����% � ��� �� 6� ����

<>�������"������ �6�����%� ������)��H�� ���

<>�������"����� �T����������� ������)��H�-� ��� �

���� �����/���� �2���" -�%��������9(�

�U � 9������(���� � � ��%� � %��� �(�

�����$�����6�� � ��������� ���;&���� � � ����� �� ��� �6��� ��� &�� �� ���� 9�������>�������������� �� 6� ���

�����$�� �U � �%����� �(��� ��� �� ������ � �

� ������� 6� ��� *�&��� � �� �#�� �� &����� 0� ���� � �� ��� �1� % � � ������ �� �������'��� ������"����

IC - CESET / UNICAMP

Resultados

18

IC - CESET / UNICAMP

Avaliação de Desempenho

Média do Desempenho das Funcionalidades do Benchmark

0

10000

20000

30000

Sem JacaCom JacaCom Injeção

Sem Jaca 13312 1757 20640

Com Jaca 13557 1883 20009

Com Injeção 13562 1927 19060

Criar BD Query Match Query Traversal

IC - CESET / UNICAMP

Observação do Comportamento do Ozone

Testes Efetuados na Primeira Campanha para 18 Pontos de Injeção

0

20

40

60

80

100

Nº TestsNº Defects

Nº Tests 90 90 90 90 90

Nº Defects 5 0 5 5 0

1 2 3 4 5

19

IC - CESET / UNICAMP

Observação do Comportamento do Ozone

Injeções Efetuadas na Classe de Maior Complexidade (BenchmarkImpl)

40%

60%Corretos

Defeitos

IC - CESET / UNICAMP

Contribuições, Conclusões e Trabalhos Futuros

20

IC - CESET / UNICAMP

Contribuições e Conclusões

� ������������� ������ ��$�J��� �&�� ������� ��� "���� ��� ���� ��� 7

���� �����%���� � �� ��������� ��� ������/���� �2�������$�� � ����(��&������� � ������������6��7

�����%���:��� �� �U � ��(��%���� ������+��$�������% � �� 6�� �����(���������%��� � 7

�K� ���� �#$� �% � ������%��� ���(����� �� ������������ �� � �� � 7

IC - CESET / UNICAMP

Contribuições e Conclusões

���" �9����% ����������%����� �� ���%� � ��� �(��� �U � 7

������%��� ������ �U � � �����;���%����� ����% � � ���������% � ������%������ ������%���� ���7

���������'��� �����6���% � ������%� �� �&� � ������������8��(��$ � ������� ������� ����������'��� 7

� ���� ����������$������ �� ������%���� �(��� �U � 7

21

IC - CESET / UNICAMP

Trabalhos Futuros

����%���� �� �U � �% � ������������%������ ���7

�= ��� �� ���� ��� ������6 ���� ���� ������ ��$�J��� 7

�= ��� �����6���� 6��������������� �������$���� ����� � �� ������% ����������������� � %��� �(�7

�= ��� �� ���� ����(������6���% � ������� �� ������(���� ��� �;��%��%��� ����� �7

IC - CESET / UNICAMP

Trabalhos Futuros

�-�� �����6������ �%� � ���� �������"��� �� 6��������(������ �U � 7

������ �� ���� �#$� ������6 �����#���� ��� �J�������$�� �� �% � ��� ������ �� ���%���� �������� ���������(�7

22

IC - CESET / UNICAMP

Agradecimento

Obrigada pela Atenção de Todos !