Uma Estratégia para Avaliação e Evolução de Especificações de Teste Funcional de Software

Documentos relacionados
15 Congresso de Iniciação Científica AVALIAÇÃO DA RELAÇÃO ENTRE EFICÁCIA E CUSTO NA ATIVIDADE DE TESTE DE SOFTWARE

Uma Estratégia para a Avaliação e Evolução de Teste Funcional de Software

INF1013 MODELAGEM DE SOFTWARE

MÓDULO. Análise Orientada a Objetos Engenharia Web

Aula 2: Planejamento da RS

SOCIEDADE EDUCACIONAL DE SANTA CATARINA INSTITUTO SUPERIOR TUPY PLANO DE ENSINO

Metodologia da Pesquisa em Sistemas de Informação. Aula 3. Projeto de Pesquisa. Revisão Sistemática. Profa. Fátima L. S. Nunes

SOCIEDADE EDUCACIONAL DE SANTA CATARINA INSTITUTO SUPERIOR TUPY PLANO DE ENSINO

Revisão/Mapeamento Sistemático

Ferramentas, métodos e experiências no ensino de Engenharia de Software: um mapeamento sistemático

Processos de Apoio Gerencial Integrados ao Processo de Teste de Software. Jeanne de Castro Trovão Arilo Claudio Dias Neto

REVISÃO SISTEMÁTICA APLICADA À ENGENHARIA DE RISCOS DE PROJETOS DE SOFTWARE.

SSC 5764 Engenharia de Software. Profa. Paulo C. Masiero 1º. 2012

Esteganografia em Vídeos: Revisão Sistemática

Mestrado Integrado em Engenharia Electrónica Industrial e Computadores

Geração de casos de teste aleatória e baseada em modelo para aplicações Android

Estratégias de Teste de Software

Qualidade de Software: Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa

Revisão Sistemática de Validação de Ontologias

Predição de Utilização de Recursos Computacionais Usando Séries Temporais

Programa Analítico de Disciplina INF323 Engenharia de Software II

Revisão Sistemática da Literatura sobre Métodos de Localização de Características

PROJETO DE MELHORIA DO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE BASEADO NA METODOLOGIA PMBOK

Introdução à Qualidade

Estratégias de Teste para Modelos Baseados no Simulink

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Ciência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

Plano de pesquisa de mestrado em ciência da computação. Márcio G. Morais

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

Aula 20 Testes 3. Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016

Tipos para uma Linguagem de Transformação

Geração de Casos de Teste Independentes de Plataforma Utilizando Diagramas de Classes da UML Anotados com Restrições OCL

Organização da Disciplina Controle de Processos 1

BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa

Um Mapeamento Sistemático da Pesquisa sobre a Influência da Personalidade na Engenharia de Software

MODELAGEM E OTIMIZAÇÃO DE SOFTWARE AUTOMOTIVOS PROPOSTA DE TRABALHO DE GRADUAÇÃO

Introdução a Testes de Software. Ricardo Argenton Ramos

Avaliação da ferramenta StArt utilizando o modelo TAM e o paradigma GQM

IA346 M Métodos de Pesquisa Para Engenharia de Computação. Atividade 07

Teste de Software. Karen Frigo Busolin Novembro / 2010

Revisão Sistemática. Profa. Fátima L. S. Nunes. Semana do Livro 2018 EACH - USP. Profa. Fátima Nunes

A Reengenharia de software com o propósito de criar uma Linha de Produto de Software

Uma Avaliação do Teste Baseado em Defeitos em Esquemas de Banco de Dados Relacional

CK119: Engenharia de Software

Introdução à Revisão Sistemática

UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO CENTRO DE INFORMÁTICA

Apoio à Garantia da Qualidade do Processo e do Produto em Ambientes de Desenvolvimento de Software Orientados à Organização

Engenharia de Software I: Introdução. Graduação em Informática 2009 Profa. Itana Gimenes

TÍTULO: AUTORES: INSTITUIÇÃO: ÁREA TEMÁTICA: Introdução

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo

Gerência de Configuração de Software Conceitos

Universidade Estadual de Ponta Grossa PRÓ-REITORIA DE GRADUAÇÃO DIVISÃO DE ENSINO

Mestrado Integrado em Engenharia Electrónica Industrial e Computadores

Automatização de testes de software na norma ISO/IEC Software Testing Automation for the ISO/IEC Standard

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

Ficha de Registo de Tema e Orientador de Dissertação / Trabalho de Projecto

Engenharia de Software

Diego Azevedo José Thiago Moutinho Sérgio Chaves Thiago Bemerguy William Sampaio

Revisão Sistemática: Conceitos Básicos

Comunicação Científica I

Reuso de Software. Aluna: Maria de Fátima F. Costa de Souza Profa.: Dra. Rossana M. C. Andrade

Introdução. Conteúdo. Usabilidade. Engenharia de software X Usabilidade. Benefícios. Introdução. Introdução. Introdução. Introdução.

Artigo: Preliminary Guidelines for Empirical Research in Software Engineering

De KAOS para SysML na Modelagem de Sistemas Embarcados: Uma Revisão da Literatura

Critérios para Apoiar a Decisão Sobre o Momento de Parada dos Testes de Software

Versão 3.1br. Foundation Level Model Based Tester

Programação Linear: Profa. Silvana Bocanegra UFRPE - DEINFO

Um mecanismo de monitoramento de serviços na plataforma OSGi

Introdução 27/9/2005. Prof.: Clarindo Isaías Pereira da Silva e Pádua Departamento de Ciência da Computação UFMG Gestus. Usabilidade.

UNIVERSIDADE FEDERAL DE P ERNAMBUCO

Webmedia 06 Diego Fiori de Carvalho Júlio Cézar Estrella Renata Pontin de Mattos Fortes Rudinei Goularte

Mineração de Textos na Web

SWEBOK. Guide to the Software Engineering Body Of Knowledge. Teresa Maciel DEINFO/UFRPE

UNIVERSIDADE FEDERAL DE PERNAMBUCO. Análise da Eficiência da Codificação de Huffman em Extensões de Fontes de Informação

Estágio II. Aula 01 Qualidade de Software. Prof. MSc. Fred Viana

UMA FERRAMENTA DE APOIO À EDIÇÃO E VALIDAÇÃO DE OVMS TEXTUAIS PARA DAR SUPORTE AO PROCESSO DE ANÁLISE AUTOMÁTICA 1

Teste de Software Parte 2. Prof. Jonas Potros

Processo de Abstração de Erros nas Análises Funcionais de Programas Aplicativos Fiscais

Douglas O. Cardoso docardoso.github.io

Relatório de Progresso

Geração semi-automática de massas de testes funcionais a partir da composição de casos de uso e tabelas de decisão

TESTES BASEADOS EM MODELO QUALIDADE, PROCESSOS E GESTÃO SOFTWARE

Sistemas de Informação

TESTES DE SOFTWARE Lista de Exercício 01. Luiz Leão

- Engenharia Reversa - Evolução de Sofware. Desenvolvimento como. Requisitos o que. Sistema porque. Profa. Dra. Sandra Fabbri. operacional.

English version at the end of this document

Prof. Emiliano S. Monteiro

Componentes de Software Baseados em Engenharia de

ANÁLISE DO DESEMPENHO DA PROTEÇÃO DIFERENCIAL SOB CONDIÇÃO DE SATURAÇÃO DOS TRANSFORMADORES DE CORRENTE

Reconhecimento Ótico de Caracteres em Placas Veiculares

6. QUAIS AS TÉCNICAS E RESPECTIVOS CRITÉRIOS DE TESTE EXISTENTES?

CRITÉRIOS DA USABILIDADE Um auxílio à qualidade do software

Reduzindo mudanças de requisitos no desenvolvimento de software usando Modelagem Independente de Computação e UX Design

Qualidade de Software: Visão Geral. SSC 121-Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa

Introdução a Teste de Software

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

Características do Desenvolvimento Global de Software em Ambientes Offshore Insourcing: Lições Aprendidas de um Estudo de Caso

Transcrição:

Uma Estratégia para Avaliação e Evolução de Especificações de Teste Funcional de Software Gilmar Ferreira ARANTES; Plínio de Sá Leitão JÚNIOR Universidade Federal de Goiás Instituto de Informática gilmar.arantes@gmail.com; plinio@inf.ufg.br Palavras-chave: Teste de software, critério de teste, técnica de teste 1 Introdução Qualidade é uma característica importante na produção de software, sendo requerida no processo e no produto relacionado. Qualidade consiste de um conjunto de requisitos e de um produto ou serviço que esteja em conformidade com estes requisitos e, por esta razão, atenda completamente às necessidades dos clientes [9]. De acordo com [2], qualidade de software é a conformidade a: 1. requisitos funcionais e não funcionais que têm sido explicitamente declarados; 2. padrões de desenvolvimento que tenham sido claramente documentados e 3. características implicitamente esperadas de todo software a ser desenvolvido. Especificamente, teste de Software é uma das áreas da Engenharia de Software em que se busca a garantia da qualidade do software, contribuindo continuamente para a melhoria dos produtos desenvolvidos. Testes são atividades presentes em todas as etapas do ciclo de vida do desenvolvimento de software, da concepção à implantação. As técnicas mais populares para teste de software são: Estrutural, conhecida como teste caixa-branca, ou teste baseado em programa, devido ao fato de o testador ter acesso ao código-fonte do software, podendo, desta forma ter conhecimento da estrutura da implementação do software [3]; Trabalho Financiado pela FAPEG - Fundação de Apoio à Pesquisa do Estado de Goiás. Chamada Pública 02/10 - Bolsas de Formação - Fortalecimento de Políticas Públicas.

Teste Funcional, conhecida como teste caixa-preta, ou teste baseado na especificação, devido ao fato de o testador não ter acesso ao código-fonte do software. O testador tem acesso somente à especificação dos requisitos do software, focando o teste nas funcionalidades existentes [3]; Técnica de Teste baseada em defeitos; Técnica de Teste baseada em modelos. Cada uma destas técnicas contém um conjunto de critérios que são utilizados tanto na geração, seleção e avaliação de um conjunto de casos de testes. Onde critério de teste é a forma utilizada para selecionar e avaliar casos de teste de forma a aumentar as possibilidades de provocar falhas ou, quando isso não ocorre, estabelecer um nível elevado de confiança na correção do produto [10]. Alguns exemplos de critérios de teste: Para a técnica de teste funcional: particionamento em classes de equivalência, análise do valor limite, tabela de decisão, grafo de causa e efeito, testes baseados em casos de uso, etc. Para a técnica de teste estrutural: Todos os caminhos, todos os nós, todos os arcos, etc. O contexto do trabalho é a aplicação do teste funcional, com o intuito de avaliar e evoluir especificações de teste previamente definidas. A questão central é como avaliar especificações de teste existentes, quando não se tem acesso ao código de programa, na ótica dos requisitos de teste funcional. Os seguintes aspectos são pertinentes: (i) estudar os critérios para o teste funcional, visando a compreender o seu processo de detecção de defeitos e estabelecer as classes de defeito reveladas por essas técnicas; (ii) investigar a aplicação de técnicas e critérios de teste funcional na elaboração de especificações de casos de testes; (iii) propor uma abordagem de avaliação e de evolução de especificações de teste existentes, pela composição de várias técnicas de teste funcional; e (iv) realizar estudo de caso para a abordagem proposta. A aplicação dos conceitos desenvolvidos dar-se-á pela avaliação do Roteiro de Análise Funcional de Programa Aplicativo Fiscal - Emissor de Cupom Fiscal - PAF- ECF publicado pelo COTEPE/ICMS (Comitê Técnico Permanente - ICMS) do CON- FAZ - Conselho Nacional de Política Fazendária [12], visando a apresentar pontos fortes e fracos do roteiro e fornecer diretrizes para a sua evolução, na direção da melhoria de qualidade dessa especificação de teste. Esse estudo de caso estenderá o trabalho de Vidal [11], que representa o esforço inicial para o aperfeiçoamento do roteiro de teste para o PAF-ECF, também no contexto da aplicação do teste funcional. 2

2 Material e métodos Para se alcançar a resposta para a questão levantada, a seguinte metodologia será seguida: 1. Estudo sobre as técnicas de teste de software: o entendimento dessas técnicas fornece fundamentos para a compreensão da sua aplicação. Este estudo passará por uma análise dos critérios de teste funcionais, quanto às suas propriedades e os potenciais relacionamento entre eles, seguindo os passos de estudos anteriormente efetuados, como por exemplo: [4], [5], [6], [7]. Ao final deste estudo pretende-se ter uma noção clara do teste funcional quanto a: casos de aplicação do teste funcional (tipo de domínio e tipo de teste); classes de defeitos para revelar; forças e potenciais fraquezas; 2. Revisão sistemática: compreende o estudo das pesquisas existentes sobre teste funcional aplicada ao software; envolve planejamento, execução e análise de resultados, segundo Brereton et al. [1]; 3. Extensão de contribuições anteriores na linha de avaliação e evolução de especificações de teste, segundo a técnica funcional, tais como [5], [6], [7] e [11]; 4. Estudo do roteiro de análise funcional do Programa Aplicativo Fiscal - Emissor de Cupom Fiscal, para conhecer o domínio e seus conceitos subjacentes e detectar potencias problemas nos requisitos, tais como redundância, referências cruzadas, requisitos incompletos, factibilidade dos requisitos; 5. Aplicação da abordagem proposta ao roteiro PAF-ECF; 6. Análise dados e publicação de resultados. A aplicação da metodologia acima requer materiais; por exemplo: computador com acesso a Internet; acesso a bases de dados de artigos científicos, tais como ACM e IEEE; acesso ao roteiro PAC-ECF; e grupo de pesquisa para a discussão de resultados. 3 Resultados e discussões Resultados efetivos ainda não estão disponíveis, tendo em vista que a pesquisa está desenvolvimento. Contudo, alguns aspectos serão avaliados, tais como: 1. Revisão sistemática na forma de artigo científico; 2. Definição de abordagem para a avaliação e evolução de especificações de teste, segundo a técnica funcional; 3

3. Resultados pertinentes à aplicação da abordagem definida, na forma de estudo de caso: o roteiro PAF-ECF; objetiva-se avaliar o roteiro para validar a abordagem proposta, quanto à redução de custo do teste e a melhoria da habilidade para detectar mais defeitos, além daqueles esperados pelo CONFAZ, a possibilidade de fraude fiscal; 4. Publicação de artigo científico relativo aos resultados obtidos; A revisão sistemática fornecerá subsídios para a proposição de abordagem dedicada à avaliação e evolução de roteiros de teste existentes. As discussões serão conduzidas pela apreciação das seguintes técnicas funcionais: Teste Funcional Sistemático (TFS) [13], Teste Funcional Sistemático Estendido (TFSE) [11], particionamento em classes de equivalência, análise do valor limite, tabela de decisão, grafo de causa e efeito, testes baseados em casos de uso. Especificamente, quanto ao estudo de caso, resultados anteriores apontam que a aplicação isolada do TFSE ao roteiro PAF-ECF poderia gerar um total de mais de 2000 casos de testes, valor bem superior ao originalmente esperado pelo roteiro. Apesar da eficácia evidente do TFSE [11], o seu emprego pode ocasionar em aumento elevado do custo do teste. Assim, as discussões das técnicas mencionadas no parágrafo acima serão importantes para a definição da abordagem, a qual considerará a aplicação de técnicas isoladas ou em combinação. Um desdobramento futuro do trabalho é a aplicação dos resultados desta análise a outros roteiros de testes de software, para software de outras áreas de aplicação. 4 Conclusões As conclusões apresentarão resumidamente os passos seguidos para a consolidação da estratégia de avaliação, sintetizarão os resultados obtidos, de acordo ou não com as expectativas, expressas no item anterior, apresentarão as potenciais contribuições e ainda indicarão a direção para trabalhos futuros que poderão complementá-lo, da mesma forma que este estende o trabalho de Vidal [11]. Referências [1] P. Brereton, B.A. Kitchenham, D. Budgen, M. Turner, M. Khalil, Lessons from applying the systematic literature review process within the software engineering domain, Journal of System and Software, 1. volume 80, issue 4, pages 571-583, 2007; [2] PRESSMAN, R.S., Software Engineering: A Practitioner s Approach, Sixth Edition, McGraw Hill, 2006; [3] W.E. Howden, Functional Program Testing, IEEE Transactions on Software Engineering, pp. 162-169, March, 1980; 4

[4] Victor R. Basili and Richard W. Selby, Comparing the Effectiveness of Software Testing Strategies, IEEE Transaction. Software. Engineering, vol. 13, pp. 1278-1296, Dec, 1987; [5] Kwang Ik Seo, Eun Man Choi, Comparison of Five Black-box Testing Methods for Object-Oriented Software, In Proceedings of the Fourth International Conference on Software Engineering Research, Management and Applications (SERA 06), IEEE Computer Society, Washington, DC, USA, 213-220. [6] Abdurazik, A.; Ammann, P.; Wei Ding; Offutt, J., Evaluation of three specificationbased testing criteria, Engineering of Complex Computer Systems, 2000. ICECCS 2000. Proceedings. Sixth IEEE International Conference on, pp.179-187, 2000. [7] Lauterbach, L.; Randall, W., Experimental evaluation of six test techniques, Computer Assurance, 1989. COMPASS 89, Systems Integrity, Software Safety and Process Security, Proceedings of the Fourth Annual Conference on, pp.36-41, Jun, 1989; [8] A Jefferson Offutt, Yiwei Xiong, Shaoying Liu, Criteria for Generating Specification- Based Tests, In Proceedings of the 5th International Conference on Engineering of Complex Computer Systems (ICECCS 99), IEEE Computer Society, Washington, DC, USA, 119-; [9] ISO/IEC 9126, Software product evaluation: quality characteristics and guidelines for their use, 1991; [10] Rocha, A. R. C., Maldonado, J. C., Weber, K. C. et al., Qualidade de software - Teoria e prática, Prentice Hall, São Paulo, 2001; [11] Vidal, A. R., Teste Funcional Sistematico Estendido: Uma Contribuição na Aplicação de Critérios de Teste Caixa-Preta, Dissertação (Mestrado em Ciências da Computação) - Instituto de Informática, Universidade Federal de Goiás, 143f, Goiânia, 2011; [12] Confaz, Roteiro de Análise Funcional de Programa Aplicativo Fiscal - Emissor de Cupom Fiscal, disponível em: http://www.fazenda.gov.br/confaz/, versão 1.5, acesso em 13/06/2011; [13] Linkman, S.; Vincenzi, A. M. R.; Maldonado, J., An evaluation of systematic functional testing using mutation testing, In: 7th International Conference on Empirical Assessment in Software Engineering [EASE. [S.l.: s.n.]], 2003; 5