Práticas de Testes de Software para aplicativo de TV Digital embarcado em dispositivos móveis

Documentos relacionados
Middleware Ginga. Jean Ribeiro Damasceno. Escola de Engenharia Universidade Federal Fluminense (UFF) RuaPassoda Pátria, 156 Niterói RJ Brasil

Sistema de acesso a dispositivos eletrônicos através da TV Digital interativa. Aluno: Rodrigo Brüning Wessler Orientador: Francisco Adell Péricas

GINGAWAY UMA FERRAMENTA PARA CRIAÇÃO DE APLICAÇÕES GINGA NCL INTERATIVAS PARA TV DIGITAL

Arquitetura do Sistema Brasileiro. Novos Recursos. Aplicações. Middleware

Tópicos. Visão geral do sistema Modelo de referência Algumas demonstrações Requisitos para um middleware Ginga Consideraçõesfinais

comum apresentando, em caráter informativo, os três padrões anteriormente mencionados.

1.1. Objetivos e Contribuições

Engenharia de Software

ESTUDO DE PLATAFORMAS PARA A CONSTRUÇÃO DE APLICAÇÕES MÓVEIS. Gabriel de Biasi¹; Nilton Cézar de Paula²

Soluções de Monitoramento Indústria 4.0

Conferência Internacional Espectro, Sociedade e Comunicação IV. Rafael Diniz - Universidade de Brasília

Manual do usuário Receptor de TV Digital com pendrive USB

Introdução aos Testes de Software

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

CBSoft Indústria. Lições Aprendidas na Aplicação de Critérios de Testes Funcionais Tradicionais e Adaptados em um Jogo. a Plataforma Móvel

ENGENHARIA DE SOFTWARE O QUE SÃO TESTES? TESTES TESTES TESTES 26/08/2014. São pontuais; São previsíveis; São finitos;

Teste de Software. Prof. Camila. Pedro de Assis Sobreira Jr.

Curso Online de E-commerce. Plano de Estudo

TV INTERATIVA SE FAZ COM GINGA

CARPC MLCAR PRINCIPAIS RECURSOS

Guia Rápido. Receptor TV Digital

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

Verificação e Validação (V & V)

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Um estudo sobre localização de serviços sensíveis ao contexto para Televisão Digital Móvel

DIGIMAN. WTB Tecnologia

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Apresentação Introdução Ambiente de desenvolvimento Aplicativos. Minicurso Android. Dia 1. Adão Henrique R. Justo Filho UFC - DETI 16/10/2012

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

TS03. Teste de Software ESTÁGIOS DO TESTE DE SOFTWARE. COTI Informática Escola de Nerds

TV Interativa se faz com Ginga

Apêndice 1. Recomendações para testes de módulos

UM SISTEMA PARA CONTROLE DE ATIVIDADES DE EQUIPES DE TI PARA DISPOSITIVOS MÓVEIS SCHOLANT, R. P. ¹, BASTOS, R. R. ²

1. A principal razão de dividir o processo de teste em tarefas distintas é:

Guia do Processo de Teste Metodologia Celepar

Norma de TV digital criada a partir do ISDB-T (Integrated Services Digital Broadcasting Terrestrial) e adicionando modificações Brasileiras

Aplicativo para TV Digital Interativa de acesso ao Twitter

PROTOTIPAÇÃO. Aula 8. TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROJETO DE INTERFACE COM O USUÁRIO Marcelo Henrique dos Santos

CIDADÃO FISCAL: APLICATIVO PARA A ABERTURA E ACOMPANHAMENTO DE PROCESSOS NO SETOR DE OUVIDORIA DA PREFEITURA MUNICIPAL DE BLUMENAU

1.1 Linguagens de Programação

FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID

As múltiplas possibilidades do middleware Ginga

Definição e Aplicação de um Processo de Testes Ágeis: um Relato de Experiência

INSEED INVESTIMENTOS REALIZA APORTE NA DEVICELAB

Rogerio Atem de Carvalho, Hudson Silva Ferreira, Rafael Ferreira Toledo, Milena Silveira de Azevedo

ISCED Mobile Direcção Académica, Junho/2017

1.1 Descrição do Problema

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

Módulo I - Introdução. Faculdade Christus Sistemas de Informação 24/09/2010. Carlos Eugênio Torres Engenheiro de Informática

Desenvolvedor Android: Avançado. Plano de Estudo

Algoritmos e Programação

Teste de Software. Planejamento de Teste. Rosemary Silveira Filgueiras Melo

Ciclo de vida: fases x atividades

ENGENHARIA DE SOFTWARE

5 Implementação 5.1 Plataforma 5.2 Arquitetura

Gestão de Segurança da Informação. Interpretação da norma NBR ISO/IEC 27001:2006. Curso e Learning Sistema de

ENGENHARIA DE SOFTWARE. Aula 12 Testes de software

PROGRAMA DA DISCIPLINA

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

Estágio II. Aula 02 Conceitos de Teste de Software. Prof. MSc. Fred Viana

Introdução à TV Digital

Engenharia de Software

Reuso de Software Aula Maio 2012

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Gestão de Testes e Defeitos. Malba Jacob Prudente

Processamento distribuído em ambiente peer-to-peer

Oportunidades de trabalho em TI&Telecom Instituto Eldorado - Campinas

Teste de Software. Roberta Coelho

INF1013 MODELAGEM DE SOFTWARE

Middleware é um programa de computador que faz a mediação entre outros

CENTRO UNIVERSITÁRIO DE BRASÍLIA

Conceitos avançados de programação. Módulo 8 Programação e Sistemas de Informação Gestão e Programação de Sistemas Informáticos

Especificação Técnica Sistema de Acesso

Cadeia Produtiva na TV Digital - rumo a certificação

Manual do Usuário Assinador Prodist e-financeira

Novidades da Plataforma de suporte remoto 3.0

- 8ª Lista de Exercícios -

ACEITE DE SOFTWARE NA VISÃO DO CLIENTE: GARANTINDO A QUALIDADE DOS PROJETOS DE SOFTWARE. Resp:Marcelo Nascimento Costa, MSc

Algoritmos e Programação

O PROJETO RDS-DEFESA ANDRÉ CHAVES MENDES, D.SC. - MARINHA DO BRASIL PRÊMIO APTEL - MOTOROLA INOVAR

Desenvolvimento de Software I

Estudo do Ambiente de Programação Arduino Software (IDE) com Intel Galileo Gen2. Apostila de acompanhamento para o aluno.

Princípios da Engenharia de Software aula 03

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 29

Modelagem da Interação do Usuário no Desenvolvimento Ágil

Ferramenta de apoio aos testes baseados em requisitos

TS05. Teste de Software AUTOMATIZAÇÃO DE TESTES. COTI Informática Escola de Nerds

TESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão

EXIN Agile Scrum Master

Uso da plataforma Ionic para Desenvolvimento de Aplicativo Móvel

1. Quando algo visível para os usuário finais é um desvio em relação ao especificado ou um comportamento não esperado, isso é chamado de:

Conceitos Básicos de Telefonia Celular. CMS Bruno William Wisintainer

O manual do Kaffeine. Jürgen Kofler Christophe Thommeret Mauro Carvalho Chehab

Transcrição:

Práticas de Testes de Software para aplicativo de TV Digital embarcado em dispositivos móveis Luana M. De A. Lobão 1, Eliane F. Collins 1 Instituto Nokia de Tecnologia (INdT) Caixa Postal 7200 69048-660 Manaus AM Brasil {luana.lobao,eliane.collins}@indt.org.br Abstract. This paper describes the experience using techniques of software testing for a Digital TV application embedded on mobile devices. Software testing of mobile applications has peculiarities due to the hardware characteristics such as the limited memory size, time of response and the restricted user interface input data, among others. Applications for Digital TV should promote interaction in real time between audio, video, data transmission, embedded software and user. Thus, this paper will show practices and results that met the requirements of these applications. Resumo. Este artigo descreve a experiência de utilização de técnicas de teste para um aplicativo de software de TV Digital embarcado em dispositivo móvel.teste de Software para dispositivos móveis possui particularidades devido às características do hardware como tamanho limitado de memória, tempo de resposta para o usuário, a interface de entrada de dados na aplicação, entre outros. Já aplicações para TV Digital devem promover interação em tempo real entre transmissão de áudio, vídeo, dados, o software embarcado e o usuário. Com isso, serão mostradas práticas de teste e seus resultados que atenderam às características dessas aplicações. 1. Introdução Teste de Software é o processo, no qual, um programa deve ser executado com a intenção de encontrar defeitos [Myers 2004]. De fato, o Teste de Software é uma atividade essencial para a garantia de qualidade de um sistema independente da plataforma de desenvolvimento empregada. E com o passar do tempo vem ganhando mais investimento por parte das empresas de desenvolvimento profissional de software. Em plataformas para dispositivos móveis como celulares, o hardware evoluiu aumentando a capacidade de processamento e memória. Com isso o software embarcado tornou-se mais complexo, com mais funcionalidades e mais interativo, e vem agregando mais tecnologias como a Tv Digital [DTV, 2012]. Aplicativos de Tv Digital para dispositivos móveis, assim como outros que atingem milhares de clientes, devem passar por uma bateria de testes e analisados por especialistas nesta tecnologia. Assim, a validação deste produto devem ser feitas de acordo com as características da plataforma de desenvolvimento [Collins, 2011]. Neste artigo, será descrito um relato de experiência da utilização de técnicas de teste de software aplicadas para atender a um aplicativo para TV Digital que deve ser Manaus, 31 de maio a 02 de junho de 2012 1 ISSN 2238-5096 (CDR)

executado em vários modelos de celulares. Serão reportadas as técnicas de testes em um projeto real que utilizou um ambiente de desenvolvimento ágil. A organização deste artigo é feita da seguinte forma: Na seção 2 é apresentado o contexto do ambiente onde a experiência foi realizada. Na seção 3 mostra a aplicação das técnicas de teste funcionais manuais no projeto. A seção 4 mostra a aplicação de uma ferramenta automática no projeto. Na seção 5 são descritos alguns resultados com o projeto. Finalmente, na seção 6 são apresentadas as conclusões. 2. Contexto do Ambiente O projeto em questão foi desenvolvido no Instituto Nokia de Tecnologia (INdT) em Manaus utilizando a metologia ágil Scrum [Schwaber e Beedle, 2001]. A solução de TV Digital testada foi a da Nokia, esta necessita de uma antena bluetooth para seu funcionamento, a qual é responsável por receber o sinal de TV compatível com o padrão brasileiro ISDB-Tb. Com isso precisavam ser pesquisadas soluções para o processo e técnicas de teste para atender melhor os requisitos desse tipo de aplicação. As principais funcionalidades desse aplicativo de TV Digital são: assistir canais digitais, buscar e adicionar canais de acordo com sua localidade e do sinal de tv, ver guia de programação, gravar sua programação, controle de pais, recebimento e interação com aplicações interativas (middleware Ginga) e transmissor do áudio do canal via radio frequência (tranmissor FM). 3. Técnicas de Testes Funcionais para Software em Dispositivos Móveis Aplicativos para dispositivos móveis costumam ter uma série de estados e cenários que devem ser considerados para um bom teste funcional. Por exemplo, nível de bateria ou alguma interrupção do sistema (chamada de voz ou video, conexão bluetooth, alarme, falha na conexão bluetooth, recebimento/envio de mensagens, dentre outros). As técnicas funcionais de teste utilizadas para o aplicativo de TV Digital foram: tabelas de decisão e transição de estados, além de monitoramento de eventos utilizando versões de debug [Syllabus, 2007]. Estas técnicas são conhecidas e amplamente utilizadas no mercado, cabendo a equipe de teste adaptá-las a realidade do produto a ser testado. Para capturar requisitos do sistema que contém condições lógicas, utilizou-se a Tabela de Decisão (Tabela 1), mostrando-se útil para documentar o comportamento interno do sistema. Essa prática é utilizada para registrar e validar regras de negócio complexas e que contenham muitos cenários de uso. O testador basicamente montava tabelas associando as funcionalidades do aplicativo (colunas), ou seja, seus requisitos, com os cenários comuns e os erros que poderiam acontecer (linhas). A intersecção desses cenários era composta por um simbolo lógico de verdadeiro ou falso. Com isso o testador conseguia ter visão de diversos cenários que poderiam acontecer. Tabela 1: Exemplo de Tabela de Decisão Conexão com o dispositivo Bluetooth Video tocando Video tocando Scan de Canais Manaus, 31 de maio a 02 de junho de 2012 2 ISSN 2238-5096 (CDR)

Receber uma ligação de voz V V V Bateria do dispositivo bluetooth fraca V F V Ações Ligação em andamento, mensagem de erro ao voltar x Mensagem de Warning e Continua o Scan x Canal continua tocando sem áudio x Já a técnica de Transição de Estados (Figura 1) foi utilizada para mapear o fluxo e a mudança de telas devido a determinado evento ou comportamento (estado) do sistema. Essa técnica permite ao testador visualizar o software em termos de estados, transições entre estados, as entradas ou eventos que disparam as mudanças de estado (transição). Esta técnica foi utilizada para ajudar a comunicação e o entendimento sobre as funcionalidades entre a equipe de teste, desenvolvimento e design. Além de ajudar o testador a identificar fluxos alternativos e inválidos que poderiam ocorrer. O testador usou seu conhecimento sobre as funcionalidades do aplicativo e da plataforma utilizada. Com isso eram montados fluxos com as transições entre as telas, os cenários válidos e os de exceção permitidos. Manaus, 31 de maio a 02 de junho de 2012 3 ISSN 2238-5096 (CDR)

Figura 1: Transição de Estados Outro recurso aproveitado para verificar as respostas da aplicação foi o monitoramento dos logs (Figura 2) dos eventos da aplicação. Estes logs serviram para identificar como o sistema operacional do celular respondia a determinados eventos, interrupções, níveis de memória e tipos de conexão ativas no momento da execução do aplicativo. Figura 2: Monitoramento de Log 4. Execução Automática de teste para aplicações de TV Digital Automatizar testes significa fazer uso de softwares que controlem a execução dos casos de teste. Esta prática pode reduzir o esforço necessário para os testes em um projeto de software [Collins E. e Lobão L. 2010]. Neste projeto, para automação foi desenvolvida uma ferramenta que valida a implementação do middleware Ginga. Existem normas e especificações na ABNT que descrevem como deve ser implementado um middleware que suporta Ginga [ABNT-NBR15606, 2007]. Através dessa ferramenta, foi permitido o desenvolvimento de scripts de teste na linguagem NCL/Lua [Fernando e Diniz, 2012]. Estes scripts eram feitos utilizando o ambiente de desenvolvimento Eclipse [Eclipse IDE, 2011], além do uso de dois plugins, o NCL Eclipse [NCL Eclipse, 2011] e o Lua Eclipse [LuaEclipse, 2011]. Após feitos estes scripts eram adicionados no source file do celular em uma pasta específica. O aplicativo de teste era embarcado no celular e lia a pasta com os scripts e os executava gerando imagens e arquivos de logs. A comparação entre as imagens e os logs era feita para verificar os resultados. Se estes fossem iguais, então os testes passavam, caso contrário o testador criava um defeito informando que havia incompatibilidade com a norma. Sempre que um novo módulo era desenvolvido ou algum defeito era corrigido, os testes eram executados a fim de verificar conformidade com a norma. Abaixo a figura 3 que exemplifica o processo de verificação de resultados. Manaus, 31 de maio a 02 de junho de 2012 4 ISSN 2238-5096 (CDR)

5. Resultados Figura 3: Validação dos Testes Os principais ganhos nos usos das técnicas manuais foram repercutidos nos testes de regressão. Abaixo é demonstrada a tabela 2 com os ganhos obtidos no projeto após o uso das técnicas. Houve um aumento de 25% na cobertura de testes executados a cada ciclo de regressão. Antes um ciclo de regressão demorava de 2 a 3 dias para ser executado, esse número reduziu para 1 dia e meio. Todas essas vantagens tornaram o trabalho do testador mais preciso, completo e rápido. Tabela 2: Resultados do uso das técnicas funcionais Antes Depois Cobertura de Testes Funcionais 70% 95% Dias para teste de regressão do software ~ 3 ~ 1,5 Já os resultados com a automação dos testes do middleware Ginga trouxe segurança a equipe do projeto no sentido de garantir que o desenvolvimento estava de acordo com as especificações técnicas da norma. Até então não era possível avaliar a coerência do middleware ginga ncl/lua desenvolvido. 6. Conclusão Com as técnicas de teste funcionais manuais adaptadas podemos observar que várias características tanto da plataforma de celular como da própria aplicação de TV Digital foram combinadas e verificadas. Isso agregou para o processo de teste da empresa, pois a cada execução de teste de regressão era possível priorizar os casos de teste a serem executados. As tabelas que continham o maior número de cenários de erro eram executadas primeiro, além das transições que continham maior número de estados de interrupção. Isso reduzia a quantidade de casos de teste manuais e deixava o testador focado nos testes de situações críticas que agregavam valor ao projeto. Com a aplicação dessas técnicas, os resultados foram positivos para toda a equipe do projeto e hoje o produto está no mercado com qualidade sendo utilizado por diversos usuários em vários estados do Brasil e até em outros países da America Latina. Manaus, 31 de maio a 02 de junho de 2012 5 ISSN 2238-5096 (CDR)

Referências ABNT-NBR 15606. Norma Brasileira de Televisão Digital Terrestre. ISBN 978-85-07-00601-5. Collins, E. Teste de software iterativo para aplicativos de tv digital em dispositivos moveis, 2011. Collins, E. e Lobão, L. Experiência em Automação do Processo de Testes em Ambiente Ágil com SCRUM e ferramentas OpenSource. IX Simpósio Brasileiro de Qualidade de Software, Relatos de Experiência, 2010. Eclipse IDE. Disponível em: <http://www.eclipse.org/downloads/> Acesso em 18 de fevereiro 2011. Fernando, L., Diniz, S. Programando em NCL 3.0 Desenvolvimento de aplicações pada o Middleware Ginga. 2ª Edição. Telemidia, 2012. LuaEclipse plugin. An integrated development environment for the Lua programming language. Disponível em: <http://luaeclipse.luaforge.net/> Acesso em 18 de fevereiro 2011. Myers, G. J. The Art of Software Testing. 2ª Edição. Wiley, 2004. NCL Eclipse plugin. Disponível em: <http://laws.deinf.ufma.br/ncleclipse/ptbr:start#.t7gw2otsrbw> Acesso em 18 de fevereiro 2011. História da TV Digital no Brasil. Fórum SBTVD. Site oficial da TV Digital. Disponível em: <http://www.dtv.org.br/index.php/informacoes-tecnicas/historia-da-tv-digital-nobrasil/> Acesso em 01 de maio 2012. Schwaber K., Beedle M. (2001), Agile Software Development with SCRUM (1 st Edition), Prentice Hall, USA. Syllabus. Manual para Certificação Internacional em Teste de Software: Foundation Level. Comissão Internacional para Qualificação de Teste de Software, 2007. Disponível em: <http://www.bstqb.org.br/uploads/docs/syllabus_2007br.pdf> Acesso em 30 de Abril 2012. Manaus, 31 de maio a 02 de junho de 2012 6 ISSN 2238-5096 (CDR)