Testes de integração contínua em um dispositivo embarcado baseado em Linux



Documentos relacionados
Curso de Especialização em Tecnologia da Informação. Engenharia de Software

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Qualidade de Software. Qualidade de Software. Adequado à Especificação. Alguns Atributos de Qualidade. Equipe de Qualidade

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

XIX CONGRESSO DE PÓS-GRADUAÇÃO DA UFLA 27 de setembro a 01 de outubro de 2010

Programação de Computadores. Turma CI-180-B. Josiney de Souza.

Máquinas Virtuais: Windows 2008 Server

Ambiente de Simulação Virtual para Capacitação e Treinamento na Manutenção de. Disjuntores de Subestações de Energia Elétrica,

Aula 1. Introdução à Avaliação Econômica de Projetos Sociais

5.1. Análise Comparativa

Manual do Aluno para o Curso do SEER à Distância

Princípios do teste de software

Uso das ferramentas de monitoramento de gerência de redes para avaliar a QoS da rede.

Requisitos de Software

Plano de Continuidade de Negócios

Descrição do Produto. Altus S. A. 1

Sistemas Distribuídos (DCC/UFRJ)

Projeto de inovação do processo de monitoramento de safra da Conab

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

agility made possible

PROTÓTIPO DE UM SISTEMA DE SEGURANÇA RESIDENCIAL COM LINUX EMBARCADO. Acadêmico: Daniel Baumann Orientador: Miguel Alexandre Wisintainer

MINISTÉRIO DO PLANEJAMENTO, ORÇAMENTO E GESTÃO DIRETORIA DE ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE AQUISIÇÕES

Avaliação de Desempenho

Estudo dos Principais Conceitos de Virtualização

Manipulação de Exceções e Interrupções em Processadores de Alto Desempenho. Thiago William Machado Orientador: Ricardo R. Santos

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Banco de Dados Orientado a Objetos

Sistemas Operacionais. Prof. André Y. Kusumoto

Engenharia de Software

CA Mainframe Chorus for Storage Management Versão 2.0

Manual de instalação, configuração e utilização do Enviador XML

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

Apresentação. Objetivo. Dados Principais. Tecnologia Abordada Linux

Aplicação de Sistemas MultiAgentes em Mobile Social Games

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

MODELIX SYSTEM SOFTWARE DE PROGRAMAÇÃO DE ROBÔS

Simulador Virtual para Treinamento em Visão de Máquina com LabVIEW

ADMINISTRAÇÃO E SERVIÇOS DE REDE

AJUDANDO-TE A CONHECER MELHORAR O BOM FUNCIONAMENTO DO TEU COMPUTADOR

13/10/11 TIPOS DE UTILITÁRIOS UTILITÁRIOS 0798 INTRODUÇÃO À PROGRAMAÇÃO TIPOS DE UTILITÁRIOS TIPOS DE UTILITÁRIOS

APLICAÇÃO DO SOFTWARE ELIPSE E3 NA CENTRAL TÉCNICA DE RECEPÇÃO DE SINAIS DA TV GLOBO DO RIO DE JANEIRO

sendo bastante acessível e compreendido pelos usuários que o utilizarem.

PROGRAMA DE PÓS-GRADUAÇÃO EM DESENVOLVIMENTO REGIONAL E URBANO DOUTORADO EM DESENVOLVIMENTO REGIONAL E URBANO TÍTULO/SUBTÍTULO DO PROJETO

Gerenciamento de Requisitos Gerenciamento de Requisitos

Política de Gerenciamento de Risco Operacional

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

ITIL v3 - Operação de Serviço - Parte 1

ESTRUTURA DE GERENCIAMENTO DO RISCO OPERACIONAL

Gestão de Entrada ESTE DOCUMENTO APRESENTA UMA VISÃO GERAL SOBRE A SOLUÇÃO GESTÃO DE ENTRADA.

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

MF = (M1 * 0,4) + (M2 * 0,6) MF < 6 MF = (MF * 0,6) + (EXA * 0,4)

Comunicação Fim-a-Fim a Alta Vede em Redes Gigabit

Guia de Início Rápido SystemTweaker

Plano de Trabalho Docente Ensino Técnico

EP018 O produto Internet e suas Aplicações BPMStar Browser Star - Sistema BPMSTAR para Internet. BPMStar. : Sandra Mattos Malaquias.

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE PAULISTA UNIP INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE ENGENHARIA COMPUTAÇÃO

Este artigo abaixo foi produzido originalmente para a Network Core Wiki. Reproduzo-a aqui na íntegra. Publicado originalmente em 07/12/2007.

Gerenciamento de Dutos Utilizando SIG Caso GLPDUTO URUCU-COARI

Divulgação de Dados Meteorológicos das Estações da Grande Florianópolis


Introdução à Computação

Visão Geral do Word Crie conteúdo com aparência profissional

Professor: Gládston Duarte

Principais Responsabilidades:

Índice 1. APRESENTAÇÃO CONCEITOS BÁSICOS SAGE ALERTA NCM NCM PORTAL DE RELACIONAMENTO O que é NCM

Motorola Phone Tools. Início Rápido

Sistema Datachk. Plano de Projeto. Versão <1.0> Z u s a m m e n a r b e i t I d e i a s C o l a b o r a t i v a s

Há 17 anos no mercado, a PREMIUN Tecnologia desenvolve soluções para o gerenciamento e controle de gastos em telefonia.

FACULDADE DE TECNOLOGIA SENAC GOIÁS PROJETO INTEGRADOR. Tecnologia em Segurança da Informação 2º Período

Automação. Industrial. Prof. Alexandre Landim

Professor: Conrado Frassini

Avaliação de Desempenho de Sistemas

PROJETO DE COOPERAÇÃO TÉCNICA INTERNACIONAL. Projeto 914 BRA PRODOC-MTC/UNESCO DOCUMENTO TÉCNICO Nº 03

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

Figura 1: Interface 3G Identech

pdc_me_05_versao2 Página 1 de 21 Versão: 2 Início de Vigência: Instrumento de Aprovação: Despacho ANEEL nº 391, de 22 de fevereiro de 2010

DESENVOLVIMENTO DE IDE PARA PLATAFORMA OMAP. Larissa Lucena Vasconcelos¹, Raul Fernandes Herbster², Joseana Macêdo Fechine³

Políticas de segurança e informações

O Windows é um software de sistema, que permite ao utilizador interagir com o computador e com os seus periféricos.

PAC 13. Calibração e Aferição de Instrumentos de Controle de Processo

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

2 Classificação de Imagens de Sensoriamento Remoto

Elipse E3 controla o sistema de refrigeração do frigorífico da Friato

Engenharia de Software II

ORIENTAÇÕES PARA REALIZAÇÃO E ACESSO AO CURSO

Título do trabalho: Acessibilidade do espaço físico da Biblioteca Dante Moreira Leite

Manual de Risco Operacional

Firewall IPTables e Exemplo de Implementação no Ambiente Corporativo.

Estudo de Caso II: LINUX

Backsite Serviços On-line

Orientador Informal. Co-orientador(es) Informal(is)

Toolkit para Linux Embarcado. Autor: Thiago Waltrik Orientador: Miguel Alexandre Wisintainer

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Transcrição:

Testes de integração contínua em um dispositivo embarcado baseado em Linux Mesailde Souza de Oliveira Matias Orientador: Prof. Me. Ramon Rosa Maia Vieira Júnior Curso de Pós-Graduação em Engenharia de Sistemas Escola Superior Aberta do Brasil

Definição do Tema Dispositivo embarcado: Kindle (leitor de livros eletrônicos) Software embarcado: KOReader (projeto de software livre) Problema: Executar testes de integração contínua do KOReader no próprio Kindle, em vez de um ambiente simulado.

Justificativa Leitores com tela e-ink proporcionam maior conforto visual. Relevância para a sociedade Entretanto, o software padrão desses leitores é muito limitado. Principalmente com formatos PDF e DJVU, muito adotados para livros técnicos e científicos. Existe software livre para suprir essas demandas. Aplicação de técnicas de engenharia de software tem potencial de melhorar sua qualidade e estabilidade.

Justificativa Relevância para o curso de pós-graduação Aplicação de conceitos estudados no curso (Teste de Software) em um ambiente que não é abordado no mesmo (sistema embarcado). Relevância para a área do conhecimento Avaliação experimental da hipótese é importante executar testes no próprio dispositivo embarcado em um novo sistema.

Problema de pesquisa: Dificuldade em executar testes de integração contínua em sistemas embarcados. Objetivo geral: Desenvolver uma solução capaz de monitorar a linha principal do repositório de código fonte do KOReader e, quando ocorrerem mudanças, automaticamente compilar o projeto e executar os testes em um dispositivo Kindle. Objetivos específicos: Monitorar continuamente alterações do repositório de código fonte do projeto. Compilar o software quando a linha principal do repositório sofrer alterações. Mapear no dispositivo alvo, via rede, um diretório do computador hospedeiro contendo o software compilado. Adaptar o framework de testes utilizado pelo projeto para ser executado diretamente na plataforma embarcada. Executar remotamente o framework de testes, coletando os resultados.

Metodologia Pesquisa Experimental Coleta de resultados (falha ou sucesso) dos testes, dentro do ambiente desenvolvido neste trabalho. Coleta de tempos de execução dos testes. Estudo dos motivos pelos quais alguns testes falharam. Correção de erros e contribuição para o projeto:

Fundamentação Teórica Broekman e Notenboom (2003): Importância do Teste de Software no contexto de Sistemas Embarcados. Fowler e Foemell (2006): Conceito de Integração Contínua. Greening (2007): Desafios na realização de testes em Sistemas Embarcados. Karlesky et al. (2007); Greening (2007): Limitações da técnica de mocking em sistemas embarcados. Holck e Jørgensen (2007); Lanubile (2009): Importância da Integração Contínua em projetos colaborativos e livres.

Metodologia Detalhada Ambiente e Ferramentas Dispositivo embarcado: Kindle PaperWhite (i.mx50 800MHz ARM Cortex-A8, 256MB RAM, 2GB Flash) Controle de versões do projeto: Git (hospedado no GitHub) Linguagens utilizadas: Lua, Shell Script (bash) Comunicação via rede: USBNetwork / SSH Framework de testes: Busted Depurador de memória: Valgrind Depurador de código: gdb

Metodologia Detalhada Técnicas Web-hooks para monitoramento do repositório. Compilação cruzada com opções de depuração ativas. Mapeamento via rede do diretório do software para evitar desgaste desnecessário da memória Flash.

Metodologia Detalhada Coleta e tratamento de dados Informações de depuração (erros de execução) Coleta: gdb remoto (gdbserver). Tratamento: análise de backtrace e análise comparativa com o código fonte. Tempos de execução Coleta: por meio do próprio framework Busted. Tratamento: comparação direta entre tempos (computador versus Kindle) e construção de histogramas.

Principais Resultados Identificação de um erro de SIGILL e de sua causa

Principais Resultados Contribuição de correções para o projeto

Principais Resultados Tempos de execução Existe diferença de tempos entre Kindle e computador, porém é desprezível frente ao tempo de compilação (dezenas de minutos).

Principais Resultados Variabilidade dos tempos de execução Fato interessante: menor desvio padrão no Kindle que no computador. Hipótese: menos tarefas em execução no sistema embarcado?

Conclusão Em um caso prático, alguns tipos de erros de programação escapam aos testes automatizados realizados de forma simulada em um computador, concordando com Grenning (2007) e outros autores. Resultados dos testes automatizados efetuados no dispositivo foram úteis, permitindo enviar contribuições ao projeto. É viável a adoção do processo: o aumento do tempo de execução com relação aos testes realizados em ambiente simulado é plenamente tolerável, por não ser o gargalo do processo de integração contínua.

Limitações Possibilidades para trabalhos futuros Método proposto não é capaz de lidar com testes em código de origem não confiável. Permitiria aos desenvolvedores verificar o resultado dos testes automatizados ao receber uma contribuição de terceiros desconhecidos, antes mesmo de ler o código enviado pelo contribuidor. É um grande e interessante desafio implementar em um sistema embarcado os mecanismos de isolamento necessários a esse tipo de recurso.