A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação Plano de Estudo e Pesquisa.

Apresentações semelhantes


Apresentação em tema: "PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação Plano de Estudo e Pesquisa."— Transcrição da apresentação:

1 PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação Plano de Estudo e Pesquisa Estratégia para desenvolvimento de programas paralelos visando diminuir a intrusão causada pelo teste por Leonardo Albernaz Amaral Pesquisador e Bolsista – CPTS (PUCRS - HP) Orientador: Prof. Eduardo Augusto Bezerra

2 CRONOGRAMA DA APRESENTAÇÃO Referencial Teórico (breve revisão dos principais conceitos) Referencial Teórico (breve revisão dos principais conceitos) Teste de Software; Teste de Software; Teste e Depuração de Programas paralelos; Teste e Depuração de Programas paralelos; Testando o não-determinismo de programas paralelos; Testando o não-determinismo de programas paralelos; Trabalhos Relacionados; Trabalhos Relacionados; Proposta de Trabalho Proposta de Trabalho Objetivos do Trabalhos Objetivos do Trabalhos Cronograma das atividades para 2005 Cronograma das atividades para 2005

3 Referencial Teórico... uma breve revisão do principais conceitos

4 Teste de Software Teste de Software? Teste de Software? Considerado uma das etapas mais importantes e difíceis do ciclo de vida de um software; Considerado uma das etapas mais importantes e difíceis do ciclo de vida de um software; Objetivo do Teste? Objetivo do Teste? Fazer uma análise dinâmica no programa; Fazer uma análise dinâmica no programa; Detectar a maior quantidade possível de erros; Detectar a maior quantidade possível de erros; Aumentar a aceitabilidade, qualidade e confiabilidade; Aumentar a aceitabilidade, qualidade e confiabilidade;

5 Teste de Software Tipos de Teste: Tipos de Teste: Unidade: (testar módulos ou pequenas partes do sistema); Unidade: (testar módulos ou pequenas partes do sistema); Integração: (testar a integração dos módulos – interface entre os módulos); Integração: (testar a integração dos módulos – interface entre os módulos); Validação ou Sistema: (testar a consistência do sistema após a integração); Validação ou Sistema: (testar a consistência do sistema após a integração); Critérios de Teste: Critérios de Teste: Funcional: (especificações do programa – testa o que ele deve fazer - comportamento); Funcional: (especificações do programa – testa o que ele deve fazer - comportamento); Estrutural: (estrutura do programa - exercita os componentes de software); Estrutural: (estrutura do programa - exercita os componentes de software); Baseado em Erros: (conhecimento dos erros típicos cometidos no desenvolvimento); Baseado em Erros: (conhecimento dos erros típicos cometidos no desenvolvimento); Estatístico: (modelos de utilização do programa – medições de confinabilidade) Estatístico: (modelos de utilização do programa – medições de confinabilidade)

6 Teste de Software Objetivo das técnicas e dos critérios de teste? Objetivo das técnicas e dos critérios de teste? Criar uma estratégia de teste Criar uma estratégia de teste Casos de teste? Casos de teste? Par ordenado (d, S(d)), onde d são as entradas e S(d) são as saídas esperadas; Par ordenado (d, S(d)), onde d são as entradas e S(d) são as saídas esperadas; int max(int a, int b){ int resultado; resultado = a; if (a < b){ resultado = b; resultado = b;} return resultado; } abmax(a,b) entradas saídas Caso de teste considerado FRACO – pois não detectou nenhum erro! auxiliar na geração de casos de teste; auxiliar na geração de casos de teste; avaliação da adequação desses casos de teste; avaliação da adequação desses casos de teste;

7 Teste de Software Ciclo de teste e depuração: Ciclo de teste e depuração: DepuraçãoTeste Cyclic Debugging: capacidade de reprodução capacidade de reprodução de um erro. de um erro.

8 Teste e Depuração de Programas Paralelos Teste e Depuração de Programas paralelos é bem mais complicado que em programas seqüenciais; Teste e Depuração de Programas paralelos é bem mais complicado que em programas seqüenciais; Quatro principais razões: Quatro principais razões: Aumento da complexidade dos programas paralelos (maior número de processos); Aumento da complexidade dos programas paralelos (maior número de processos); Quantidade de dados depurados (muita coleta de informações); Quantidade de dados depurados (muita coleta de informações); Efeitos anômalos adicionais (comunicação entre os processos); Efeitos anômalos adicionais (comunicação entre os processos); Não-determinismo; Não-determinismo; irreproducibility effect probe effect (mais de um caminho de execução) (incapacidade de realizar cyclic debugging) (Dificuldade de realizar teste completo – inúmeros caminhos de execução) inúmeros caminhos de execução) não-determinismo completeness problem (intrusão causada pelo uso de monitores)

9 Testando o não-determinismo de Programas Paralelos Fonte do não-determinismo em Programas Paralelos: troca de mensagens Fonte do não-determinismo em Programas Paralelos: troca de mensagens Através das primitivas de comunicação assíncronas; Através das primitivas de comunicação assíncronas; recv(buffer, any-source) Recebimento simultâneo de várias Recebimento simultâneo de várias mensagens, sem determinação de ordem de chegada; Resultados diferentes a cada execução; Resultados diferentes a cada execução; Foco nesse trabalho

10 Testando o não-determinismo de Programas Paralelos Solução genérica encontrada para o problema do não-determinismo: Solução genérica encontrada para o problema do não-determinismo: Existem diversas técnicas, mas todas baseadas em record/replay; Existem diversas técnicas, mas todas baseadas em record/replay; record/replay: record/replay: Coletar informações referentes a execução do programa (cria trace file); Coletar informações referentes a execução do programa (cria trace file); Re-executar esse programa através dos dados gravados (re-executa trace file); Re-executar esse programa através dos dados gravados (re-executa trace file); Etapas: Etapas: Monitoração (observar o programa coletando informações): Monitoração (observar o programa coletando informações): Monitor de Hardware; Monitor de Hardware; Monitor de Software; Monitor de Software; Monitor Híbrido; Monitor Híbrido; Instrumentação (inserção de sondas para monitoração– probe effect): Instrumentação (inserção de sondas para monitoração– probe effect): Manual; Manual; Automática (Substituição dos eventos através de funções de macros – monitor.h); Automática (Substituição dos eventos através de funções de macros – monitor.h);

11 Trabalhos Relacionados Eliminar o não-determinismo criando execuções deterministas; Eliminar o não-determinismo criando execuções deterministas; Record/replay (técnica básica): Record/replay (técnica básica): event manipulation (manipulação dos eventos não-determinísticos); event manipulation (manipulação dos eventos não-determinísticos); artificial replay (re-execução controlada de maneira determinística); artificial replay (re-execução controlada de maneira determinística); manipula-se os eventos manipula-se os eventos forçando uma execução dirigida para eventos especí- ficos.

12 Proposta de Trabalho... o que pretende-se fazer ?

13 Proposta de Trabalho Abordagens do STAGE Abordagens de Teste e Depuração de Programas Paralelos EstratégiaProposta modelo da aplicação casos de teste do modelo scripts de teste Módulo de teste Fazer um estudo sobre Teste e Depuração de programas paralelos, com o objetivo de propor uma estratégia para desenvolvimento de programas paralelos, visando diminuir a intrusão causada pelo teste. Avaliar e adaptar as técnicas do STAGE para programas paralelos; Avaliar e adaptar as técnicas do STAGE para programas paralelos; Avaliar as técnicas de teste de Programas Paralelos para a criação de um módulo de teste; Avaliar as técnicas de teste de Programas Paralelos para a criação de um módulo de teste; Estudo Estratégia

14 Objetivos do Trabalho... descrição do objetivo geral e específicos

15 Objetivos do Trabalho Objetivo Geral: Objetivo Geral: Pretende-se fazer um estudo sobre teste e depuração de programas paralelos, com o objetivo de propor uma estratégia para desenvolvimento de programas paralelos visando diminuir a intrusão causada pelo teste. Pretende-se fazer um estudo sobre teste e depuração de programas paralelos, com o objetivo de propor uma estratégia para desenvolvimento de programas paralelos visando diminuir a intrusão causada pelo teste. Objetivos Específicos: Objetivos Específicos: Fazer revisões bibliográficas sobre teste e depuração de programas paralelos e sobre as técnicas utilizadas no STAGE (incluindo a construção de modelos SAN); Fazer revisões bibliográficas sobre teste e depuração de programas paralelos e sobre as técnicas utilizadas no STAGE (incluindo a construção de modelos SAN); Adaptar as abordagens estudadas sobre teste e depuração de programas paralelos na criação do módulo de teste (engine), visando o teste funcional da aplicação. Adaptar as abordagens estudadas sobre teste e depuração de programas paralelos na criação do módulo de teste (engine), visando o teste funcional da aplicação. Eventualmente, adaptar também as técnicas do STAGE para a criação do modelo da aplicação paralela, dos casos de teste e dos scripts de teste (inicialmente de forma manual); Eventualmente, adaptar também as técnicas do STAGE para a criação do modelo da aplicação paralela, dos casos de teste e dos scripts de teste (inicialmente de forma manual); Fazer dois estudos de caso, um inicial baseado em alguns modelos paralelos simples. E outro que será o estudo de caso principal, já direcionado para estratégia proposta; Fazer dois estudos de caso, um inicial baseado em alguns modelos paralelos simples. E outro que será o estudo de caso principal, já direcionado para estratégia proposta; Medir no estudo de caso inicial a intrusão causada pela inserção dos monitores, para no estudo de caso principal, avaliar e definir como diminuir essa intrusão; Medir no estudo de caso inicial a intrusão causada pela inserção dos monitores, para no estudo de caso principal, avaliar e definir como diminuir essa intrusão; Definir uma estratégia para criação de programas paralelos e etapas de teste menos intrusivas baseado nesses estudos e experimentos; Definir uma estratégia para criação de programas paralelos e etapas de teste menos intrusivas baseado nesses estudos e experimentos;

16 Cronograma... descrição das atividades propostas para 2005

17 Cronograma para 2005 Cronograma das atividades previstas para 2005: Cronograma das atividades previstas para 2005: Ativ.JanFevMarAbrMaiJunJulAgoSetOutNovDez 1.XXX 2.XXX 3.XXX 4.XXXXX 5.XXXXXX 6.XX 7.XXXXXX 8.XXXXX 9.X 10.XX

18 Cronograma para 2005 Cronograma das atividades previstas para 2005: Cronograma das atividades previstas para 2005: 1. Levantamento Bibliográfico: Revisão do material já conseguido e busca de outras referências que ajudem na construção dos estudos de caso e na definição da estratégia a ser proposta ; 1. Levantamento Bibliográfico: Revisão do material já conseguido e busca de outras referências que ajudem na construção dos estudos de caso e na definição da estratégia a ser proposta ; 2. Definição de uma estratégia: Baseado na revisão bibliográfica feita na atividade 1, definir uma estratégia inicial para a construção de programas paralelos visando diminuir a intrusão causada pelas etapas de teste. 2. Definição de uma estratégia: Baseado na revisão bibliográfica feita na atividade 1, definir uma estratégia inicial para a construção de programas paralelos visando diminuir a intrusão causada pelas etapas de teste. 3. Estudo de Caso inicial/avaliação dos resultados: Criação de um estudo de caso inicial baseado em alguns modelos paralelos simples. Implementação dos modelos no SAN. Codificação da aplicação baseada no modelo. Inserção manual dos monitores no código da aplicação. Testes e avaliação dos resultados. 3. Estudo de Caso inicial/avaliação dos resultados: Criação de um estudo de caso inicial baseado em alguns modelos paralelos simples. Implementação dos modelos no SAN. Codificação da aplicação baseada no modelo. Inserção manual dos monitores no código da aplicação. Testes e avaliação dos resultados. 4. Estudo de Caso principal: Avaliação e adaptação dos resultados conseguidos no estudo de caso inicial (atividade 3). Adaptação das técnicas de teste e depuração estudadas na atividade 1, para a criação de um módulo de teste funcional menos intrusivo para programas paralelos. E eventualmente adaptar as técnicas utilizadas no STAGE numa cooperação de projetos entre CPTS – CAP, para agregar funcionalidades ao módulo de teste proposto. 4. Estudo de Caso principal: Avaliação e adaptação dos resultados conseguidos no estudo de caso inicial (atividade 3). Adaptação das técnicas de teste e depuração estudadas na atividade 1, para a criação de um módulo de teste funcional menos intrusivo para programas paralelos. E eventualmente adaptar as técnicas utilizadas no STAGE numa cooperação de projetos entre CPTS – CAP, para agregar funcionalidades ao módulo de teste proposto. 5. Avaliação e validação dos resultados dos estudos de caso: Avaliação dos resultados conseguidos na atividade 4 e validação da estratégia proposta. 5. Avaliação e validação dos resultados dos estudos de caso: Avaliação dos resultados conseguidos na atividade 4 e validação da estratégia proposta.

19 Cronograma para 2005 Cronograma das atividades previstas para 2005: Cronograma das atividades previstas para 2005: 6. Seminário de andamento; 6. Seminário de andamento; 7. Redação de artigos científicos; 7. Redação de artigos científicos; 8. Redação da Dissertação de Mestrado; 8. Redação da Dissertação de Mestrado; 9. Entrega da Dissertação; 9. Entrega da Dissertação; 10. Seminário Final; 10. Seminário Final;

20 Bibliografias [1] Boehm, B. W. Software Engineering, IEEE Transactions on Computers, [2] Foster, I.T. Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering, Addison-Wesley, [3] Kranzlmüller, D., Schulz, M. Nondeterminism in Message Passing Programs, 9th European PVM/MPI Users Group Meeting, Springer, [4] Kranzlmüller, D., Schulz, M. Event Graph Analysis for Parallel Program Testing, PhD thesis, GUP Linz, Joh. Kepler University Linz, Austria, [6] Perry, W. E. Effective Methods for Software Testing, John Wiley & Sons, Inc, [7] Pradhan, D. K. Fault-Tolerant Computer System Design, Prentice Hall, [10] Baldo, L., Fernandes, L. G., Fernandes, P., Sales, A., Brenner, L. Performance Models for Master/Slave Parallel Programs, Proceedings of PASM, Londres, [11] Gropp, W., Lusk, E., Doss, N., Skjellum, A. A High-Performance, Portable Implementation of the MPI Message Passinig Interface Standard, ACM - Parallel Computing, [15] McDowell, C. E., Helmbold, D. P. Debugging Concurrent Programs, ACM Computing Surveys, [16] Ronsse, M., De Bosschere, K., De Kergommeaux, J.C. Execution replay and debugging, 4th Intl. Workshop on Automated Debugging, AADEBUG, [21] Kranzlmüller, D., Grabner, S., Volkert, J. Using Control and Data Flow Analysis for Race Evaluation, Euro-Par Parallel Processing, 3rd Intl. Euro-Par Conference, Lecture Notes in Computer Science, Springer-Verlag, [23] Grabner, S., Volkert, J., Debugging Distributed Memory Programs Using Communication Graph Manipulation, HPCS96, 10th Annual International Symposium on High Performance Computing Systems, 1996.


Carregar ppt "PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação Plano de Estudo e Pesquisa."

Apresentações semelhantes


Anúncios Google