Leonardo Albernaz Amaral

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto de Sistemas I
Advertisements

Boas Práticas Adotadas em um Projeto de Design de Testes – Um relato de experiência
Desenvolvimento de Plug-ins Orientado a Testes
Os projetos.
Adélia Barros Testes de Software Adélia Barros
Fundamentos de Engenharia de SW
Débora da Silva Orientadora: Maria Inés Castiñeira
Validação de Requisitos
Identificando requisitos
Tópicos Motivação para teste Por que algumas empresas não testam
Software Básico Silvio Fernandes
CK 119: Engenharia de Software DC/CC/UFC © Rossana Andrade, Setembro CK119: Engenharia de Software Rossana Andrade Ph.D, SITE, University of Ottawa,
Tópicos em Engenharia de Software II
ArchC: Uma linguagem de descrição de arquiteturas
Técnicas de processamento paralelo
Bruno Tardiole Kuehne Orientador: Prof. Dr. Marcos José Santana
Localização em Redes Wireless Ad Hoc: Infra-estrutura e Algoritmos
Teste de Software Geórgenes Zapalaglio
Porto Alegre, 5 de Outubro de 2009
Junções Adaptativas em consultas Federadas sobre Linked Data
1 Simulação baseada em multiagentes – aplicação em educação O processo de simulação significa dirigir o modelo de um sistema com entradas satisfatórias.
Composição e Geração de Aplicações usando Aspectos
FERRAMENTA PARA ANÁLISE DE IMPACTO BASEADO EM RASTREABILIDADE DE
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
FERRAMENTA PARA ANÁLISE DE IMPACTO BASEADO EM RASTREABILIDADE DE
Sistemas Operacionais SISTEMA DE ENTRADA E SAÍDA
Testes – visão geral Vanilson Burégio.
MÉTRICAS ASSOCIADAS AO DESENVOLVIMENTO DE
Lidando com cheating em uma arquitetura multiservidor para MMOGs
PROGRAMA DE RECURSOS HUMANOS DA
Pontifícia Universidade Católica de Campinas
YADFS Yet Another Distributed File System
Introdução aos conceitos de Teste de Software
Processo de Software Prof. Dr. rer. nat. Daniel D. Abdala
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
Cap 2 – Processo de Software
Matheus dos Santos Lima
Aluno: Lucas Bucci da Silveira Orientador: Carlos Roberto Lopes
Pontifícia Universidade Católica do Rio Grande do Sul
Carlos Oberdan Rolim Ciência da Computação
Metodologia da Pesquisa em Ciência da Computação - INE – Luís Fernando Custódio Seminário de Metodologia GPU em Ambientes Compartilhados.
MAS-ML Tool: Um Ambiente de Modelagem de Sistemas Multi-Agentes
Uso de Sistemas Imunológicos Artificiais para Detecção de Falhas em Plantas da Indústria de Petróleo. Aluno: Alexandre Willig Quintino dos Santos Orientador:
Alexandre Mota/Augusto Sampaio {acm,
Elaboração e Análise de Projetos
Difusão e Aperfeiçoamento de Recursos Educacionais Abertos
APLICANDO O PROCESSO DIRIGIDO POR RESPONSABILIDADES PARA A CRIAÇÃO DE UM SUBFRAMEWORK PARA VALIDAÇÃO SINTÁTICA DE FÓRMULAS Autores: Rafael Hornung Simone.
Processo de Aquisição Adilson de Almeida Cezar Meriguetti
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 26 (1) Troca de Mensagens Troca de Mensagens Tópicos: Características de Mensagens Implementação.
TVDesigner Uma Ferramenta para Criação de Aplicações MHP Interativas para TV Digital Orientador: Prof. Ph.D. Carlos André Guimarães Ferraz Aluno: Djaci.
ANÁLISE ESTRUTURADA DE SISTEMAS
Engenharia de Software
Testes de Software AULA 02 Eduardo Silvestri
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
MPI - Message Passing Interface Mestrado em Matemática Computacional 2003.
Fabrício Dias
Análise e Especificação de Requisitos © 2001 Jaelson CastroInformações Gerais 1 Análise e Especificação de Requisitos - IF119 Centro de Informática Jaelson.
Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 1 CMP157 – Programação.
1 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela O Simulador.
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 5
Reinaldo Cabral Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade. Reinaldo Cabral
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
Mestrando Gabriel G. Detoni Orientador Prof. Dante Barone Controle para Futebol de Robôs Utilizando Processamento Paralelo Seminário de Andamento.
WebPTM Web Project and Time Manager Autor: Daniel Nicoletti Orientador: Prof. Dr. Carlos Miguel Tobar Toledo Co-Orientador: Murilo Woigt Miranda PONTIFÍCIA.
Jorge Zavaleta PVM vs MPI. Introdução Objetivos do MPI Implementações e definições processos dinâmicos Contextos Operações não bloqueantes Portabilidade,heterogeneidade.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
18/09/ /12/20082 Testes Baseados Em Modelo Diana Rúbia Paulo César Qualidade, Processos e Gestão de Software Alexandre Vasconcelos {drrr, pco,
TESTES DE SOFTWARE – AULA 1 Prof. Me. Ronnison Reges Vidal
Curso Superior de Tecnologia em Redes de Computadores TCC Seminário de Andamento Aluno: Julio Borba Orientador: Carlos Vinícius SERVIÇO NACIONAL DE APRENDIZAGEM.
Transcrição da apresentação:

Leonardo Albernaz Amaral 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

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

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

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

Teste de Software Tipos de Teste: Critérios de Teste: Unidade: (testar módulos ou pequenas partes do sistema); 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); Critérios de Teste: Funcional: (especificações do programa – testa o que ele deve fazer - comportamento); Estrutural: (estrutura do programa - exercita os componentes de software); Baseado em Erros: (conhecimento dos erros típicos cometidos no desenvolvimento); Estatístico: (modelos de utilização do programa – medições de confinabilidade)

Objetivo das técnicas e dos critérios de teste? Teste de Software Objetivo das técnicas e dos critérios de teste? Criar uma estratégia 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; int max(int a, int b){ int resultado; resultado = a; if (a < b){ resultado = b; } return resultado; auxiliar na geração de casos de teste; avaliação da adequação desses casos de teste; a b max(a,b) 5 10 entradas saídas Caso de teste considerado FRACO – pois não detectou nenhum erro!

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

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

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

Testando o não-determinismo de Programas Paralelos Solução genérica encontrada para o problema do não-determinismo: Existem diversas técnicas, mas todas baseadas em record/replay; record/replay: 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); Etapas: Monitoração (observar o programa coletando informações): Monitor de Hardware; Monitor de Software; Monitor Híbrido; Instrumentação (inserção de sondas para monitoração– probe effect): Manual; Automática (Substituição dos eventos através de funções de macros – monitor.h);

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

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

Proposta de Trabalho Estratégia Proposta 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. Estudo Estratégia Abordagens do STAGE modelo da aplicação casos de teste do modelo Estratégia Proposta Abordagens de Teste e Depuração de Programas Paralelos scripts de teste Módulo de teste 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;

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

Objetivos Específicos: Objetivos do Trabalho 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. 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); 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); 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; Definir uma estratégia para criação de programas paralelos e etapas de teste menos intrusivas baseado nesses estudos e experimentos;

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

Cronograma para 2005 Cronograma das atividades previstas para 2005: Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez 1. X 2. 3. 4. 5. 6. 7. 8. 9. 10.

Cronograma 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 ; 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 . 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 .

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

Bibliografias [1] Boehm, B. W. “Software Engineering”, IEEE Transactions on Computers, 1976. [2] Foster, I.T. “Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering”, Addison-Wesley, 1995. [3] Kranzlmüller, D., Schulz, M. “Nondeterminism in Message Passing Programs”, 9th European PVM/MPI Users Group Meeting, Springer, 2002. [4] Kranzlmüller, D., Schulz, M. “Event Graph Analysis for Parallel Program Testing”, PhD thesis, GUP Linz, Joh. Kepler University Linz, Austria, http://www.gup.uni-linz.ac.at/~dk/thesis, 2000. [6] Perry, W. E. “Effective Methods for Software Testing”, John Wiley & Sons, Inc, 1999. [7] Pradhan, D. K. “Fault-Tolerant Computer System Design”, Prentice Hall, 1994. [10] Baldo, L., Fernandes, L. G., Fernandes, P., Sales, A., Brenner, L. ”Performance Models for Master/Slave Parallel Programs”, Proceedings of PASM, Londres, 2004. [11] Gropp, W., Lusk, E., Doss, N., Skjellum, A. “A High-Performance, Portable Implementation of the MPI Message Passinig Interface Standard”, ACM - Parallel Computing, 1996. [15] McDowell, C. E., Helmbold, D. P. “Debugging Concurrent Programs”, ACM Computing Surveys, 1989. [16] Ronsse, M., De Bosschere, K., De Kergommeaux, J.C. “Execution replay and debugging”, 4th Intl. Workshop on Automated Debugging, AADEBUG, 2000. [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, 1999. [23] Grabner, S., Volkert, J., “Debugging Distributed Memory Programs Using Communication Graph Manipulation”, HPCS’96, 10th Annual International Symposium on High Performance Computing Systems, 1996.