Teste de Integração: visa provocar falhas associadas às interfaces entre os módulos quando esses são integrados para construir a estrutura do

Documentos relacionados
Teste de Software. Karen Frigo Busolin Novembro / 2010

Introdução a Teste de Software

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

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

FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS. Projeto de Programas PPR0001

ENGENHARIA DE SOFTWARE

Programação Orientada a Objetos

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Introdução aos Testes de Software

Sistema Mobi-Lar Engenharia de Software

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

Teste de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

Engenharia de Software

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

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

Teste de Software. Objetivo: Executar software para revelar erros/falhas ainda não descobertos. Pode gastar 40% do esforço de desenvolvimento

PDS. Aula 1.4 Modelos de Processo. Prof. Dr. Bruno Moreno

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

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

Engenharia de Software

Teste de Software. Estratégias de Teste. Rosemary Silveira Filgueiras Melo

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

Guia do Processo de Teste Metodologia Celepar

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

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

SSC 0721 Teste e Validação de Software

Processos de Validação e Verificação do MPS-Br

Princípios da Engenharia de Software aula 03

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

Verificação e Validação

FUNDAMENTOS DE ENGENHARIA DE SOFTWARE. Professor: Paulo Vencio

Análise e Projeto de Sistemas de Informação (APSI)

- 6ª Lista de Exercícios -

ISO/IEC 12207: Manutenção

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

- 8ª Lista de Exercícios -

ISO/IEC Processo de ciclo de vida

Engenharia de Software

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:

15/03/2018. Professor Ariel da Silva Dias Introdução a Engenharia de Software. O mundo moderno poderia existir sem software?

Verificação e Validação. Ewelton Yoshio Fabrício Araújo

ENGENHARIA DE SOFTWARE. Aula 12 Testes de software

Estratégias de Testes Parte I

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

Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves

GUIA DE SERVIÇOS DE MANUTENÇÃO DE SISTEMAS

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

Análise e projeto de sistemas

Normas ISO:

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

Teste de Software: conceitos, técnicas e benefícios

Engenharia de Software

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

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

Verificação e Validação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1

Requisitos de Software

Testes de Software. Prof. Edjandir C. Costa

Falta Erro Falha. Motivação. Teste de Software. Falha, Falta e Erro. Falha, Falta e Erro. Falha, Falta e Erro. Falha, Falta e Erro 6/6/11

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 1. Prof. Leonardo Vasconcelos

Processos de software

Engenharia de Software

4/14/11. Processos de Engenharia de Requisitos. Engenharia de requisitos. Elicitação e análise. A espiral de requisitos

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Versão: 1.0 Doc Manager

Prof. Luiz A. Nascimento

ISO/IEC Roteiro IEC ISO. Histórico ISO/IEC ISO

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

Desenvolvimento de Projetos

Unidade 4 Teste na Implantação do Sistema

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Teste de Software. Professor Maurício Archanjo Nunes Coelho

IBM Managed Security Services para Reimplementação e Reativação do Agente

Tópicos da Aula. O que é anunciado. Falha de Comunicação no Desenvolvimento de Software. Engenharia de Software: Conceitos Fundamentais

ITIL v3 Transição de Serviço Parte 1

Testes de software - Teste funcional

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

Metodologia de Gestão de Desenvolvimento de Sistemas da UFVJM

Verificação e Validação

Engenharia de Requisitos

ENGENHARIA DE SOFTWARE. Introdução

UNIDADE III Processo Decisório

Fábrica de Software Instituto de Informática Universidade Federal de Goiás. Plano de Medição

Gerencial Industrial ISO 9000

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Prof. Emiliano S. Monteiro

DOCUMENTO DE VISÃO 1. TÍTULO DO PROJETO. 2. RESPONSÁVEL PELO DOCUMENTO Ciclano

Adriano Maranhão PROFISSIONAIS E ATIVIDADES ENVOLVIDAS EM UM SGBD

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

ORGANIZAÇÃO CURRICULAR TÉCNICO NA ÁREA DE INFORMÁTICA: HABILITAÇÃO TÉCNICO EM INFORMÁTICA NA MODALIDADE A DISTÂNCIA /1

Engenharia de Requisitos

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

LIVRO ENGENHARIA DE SOFTWARE FUNDAMENTOS, MÉTODOS E PADRÕES

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

Introdução aos sistemas de informação

AULA 02 Qualidade em TI

Organização para Realização de Teste de Software

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

ESPECIFICAÇÃO DE PROJETO AUTOR(ES) : João

Transcrição:

Introdução a Teste de Software Teste de software é o processo de execução de um produto para determinar se ele atingiu suas especificações e funcionou corretamente no ambiente para o qual foi projetado. O seu objetivo é revelar falhas em um produto, para que as causas dessas falhas sejam identificadas e possam ser corrigidas pela equipe de desenvolvimento antes da entrega final. Por conta dessa característica das atividades de teste, dizemos que sua natureza é destrutiva, e não construtiva, pois visa ao aumento da confiança de um produto através da exposição de seus problemas, porém antes de sua entrega ao usuário final.o conceito de teste de software pode ser compreendido através de uma visão intuitiva ou mesmo de uma maneira formal. Existem atualmente várias definições para esse conceito. De uma forma simples, testar um software significa verificar através de uma execução controlada se o seu comportamento corre de acordo com o especificado. O objetivo principal desta tarefa é revelar o número máximo de falhas dispondo do mínimo de esforço, ou seja, mostrar aos que desenvolvem se os resultados estão ou não de acordo com os padrões estabelecidos.ao longo deste artigo, iremos discutir os principais conceitos relacionados às atividades de teste, as principais técnicas e critérios de teste que podem ser utilizados para verificação ou validação de um produto, assim como exemplos práticos da aplicação de cada tipo de técnica ou critério de teste. Conceitos básicos associados a Teste de Software Antes de iniciarmos uma discussão sobre teste de software precisamos esclarecer alguns conceitos relacionados a essa atividade. Inicialmente, precisamos conhecer a diferença entre Defeitos, Erros e Falhas. As definições que iremos usar aqui seguem a terminologia padrão para Engenharia de Software do IEEE Institute of Electrical and Electronics Engineers (IEEE 610, 1990). Defeito é um ato inconsistente cometido por um indivíduo ao tentar entender uma determinada informação, resolver um problema ou utilizar um método ou uma ferramenta. Por exemplo, uma instrução ou comando incorreto. Erro é uma manifestação concreta de um defeito num artefato de software. Diferença entre o valor obtido e o valor esperado, ou seja, qualquer estado intermediário incorreto ou resultado inesperado na execução de um programa constitui um erro. Falha é o comportamento operacional do software diferente do esperado pelo usuário. Uma falha pode ter sido causada por diversos erros e alguns erros podem nunca causar uma falha. Caso de Teste: descreve uma condição particular a ser testada e é composto por valores de entrada, restrições para a sua execução e um resultado ou comportamento esperado (CRAIG e JASKIEL, 2002). Procedimento de Teste: é uma descrição dos passos necessários para executar um caso (ou um grupo de casos) de teste (CRAIG e JASKIEL, 2002). Critério de Teste: serve 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 (ROCHA et al., 2001). Os critérios de teste podem ser utilizados como: o Critério de Cobertura dos Testes: permitem a identificação de partes do programa que devem ser executadas para garantir a qualidade do software e indicar quando o mesmo foi suficientemente testado (RAPPS e WEYUKER, 1982). Ou seja, determinar o percentual de elementos necessários por um critério de teste que foram executados pelo conjunto de casos de teste. o Critério de Adequação de Casos de Teste: Quando, a partir de um conjunto de casos de teste T qualquer, ele é utilizado para verificar se T satisfaz os requisitos de teste estabelecidos pelo critério. Ou seja, este critério avalia se os casos de teste definidos são suficientes ou não para avaliação de um produto ou uma função (ROCHA et al., 2001). o Critério de Geração de Casos de Teste: quando o critério é utilizado para gerar um conjunto de casos de teste T adequado para um produto ou função, ou seja, este critério define as regras e diretrizes para geração dos casos de teste de um produto que esteja de acordo com o critério de adequação definido anteriormente (ROCHA et al., 2001). Teste de Unidade: também conhecido como testes unitários. Tem por objetivo explorar a menor unidade do projeto, procurando provocar falhas ocasionadas por defeitos de lógica e de implementação em cada módulo, separadamente. O universo alvo desse tipo de teste são os métodos dos objetos ou mesmo pequenos trechos de código. Teste de Integração: visa provocar falhas associadas às interfaces entre os módulos quando esses são integrados para construir a estrutura do 1

software que foi estabelecida na fase de projeto. Teste de Sistema: avalia o software em busca de falhas por meio da utilização do mesmo, como se fosse um usuário final. Dessa maneira, os testes são executados nos mesmos ambientes, com as mesmas condições e com os mesmos dados de entrada que um usuário utilizaria no seu dia-a-dia de manipulação do software. Verifica se o produto satisfaz seus requisitos. Teste de Aceitação: são realizados geralmente por um restrito grupo de usuários finais do sistema. Esses simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com o solicitado. Teste de Regressão: Teste de regressão não corresponde a um nível de teste, mas é uma estratégia importante para redução de efeitos colaterais. Consiste em se aplicar, a cada nova versão do software ou a cada ciclo, todos os testes que já foram aplicados nas versões ou ciclos de teste anteriores do sistema. Pode ser aplicado em qualquer nível de teste. Técnica Estrutural (ou teste caixa-branca) Técnica de teste que avalia o comportamento interno do componente de software (Figura 4). Essa técnica trabalha diretamente sobre o código fonte do componente de software para avaliar aspectos tais como: teste de condição, teste de fluxo de dados, teste de ciclos e teste de caminhos Teste Funcional (ou teste caixa-preta) Técnica de teste em que o componente de software a ser testado é abordado como se fosse uma caixa-preta, ou seja, não se considera o comportamento interno do mesmo (Figura 6). Dados de entrada são fornecidos, o teste é executado e o resultado obtido é comparado a um resultado esperado previamente conhecido. Haverá sucesso no teste se o resultado obtido for igual ao resultado esperado. O componente de software a ser testado pode ser um método, uma função interna, um programa, um componente, um conjunto de programas e/ou componentes ou mesmo uma funcionalidade. A técnica de teste funcional é aplicável a todos os níveis de teste (PRESSMAN, 2005). Particionamento em classes de equivalência Esse critério divide o domínio de entrada de um programa em classes de equivalência, a partir das quais os casos de teste são derivados. Ele tem por objetivo minimizar o número de casos de teste, selecionando apenas um caso de teste de cada classe, pois em princípio todos os elementos de uma classe devem se comportar de maneira equivalente. Conclusões O teste de software é uma das atividades mais custosas do processo de desenvolvimento de software, pois pode envolver uma quantidade significativa dos recursos de um projeto. O rigor e o custo associado a esta atividade dependem principalmente da criticalidade da aplicação a ser desenvolvida. Diferentes categorias de aplicações requerem uma preocupação diferenciada com as atividades de teste. Um ponto bastante importante para a viabilização da aplicação de teste de software é a utilização de uma infraestrutura adequada. Realizar testes não consiste simplesmente na geração e execução de casos de teste, mas envolvem também questões de planejamento, gerenciamento e análise de resultados. Apoio ferramental para qualquer atividade do processo de teste é importante como mecanismo para redução de esforço associado à tarefa em questão, seja ela planejamento, projeto ou execução dos testes. Após ter sua estratégia de teste definida, tente buscar por ferramentas que se encaixem na sua estratégia. Isso pode reduzir significantemente o esforço de tal tarefa. Além disso, é importante ressaltar que diferentes tipos de aplicações possuem diferentes técnicas de teste a serem aplicadas, ou seja, testar uma aplicação web envolve passos diferenciados em comparação aos testes de um sistema embarcado. Cada tipo de aplicação possui características especificas que devem ser consideradas no momento da realização dos testes. O conjunto de técnicas apresentado neste artigo cobre diversas características comuns a muitas categorias de software, mas não é completo. Para finalizar, podemos destacar outros pontos importantes relacionados às atividades de teste que podemos abordar em próximos artigos, tais como processo de teste de software, planejamento e controle dos testes e teste de software para categorias específicas de software, como aplicações web. O QUE É SISTEMA? Um grupo de itens que interagem entre si ou que sejam interdependentes, formando um todo unificado. 2

Um conjunto de procedimentos organizados ou estabelecidos. Conjunto de elementos, materiais ou idéias, entre as quais se possa encontrar ou definir alguma relação. Disposição das partes ou dos elementos de um todo, coordenados entre si e que funcionam com a estrutura organizada. Conjunto ordenado de meios de ação ou idéias tendente a um resultado. A set off connected itens or devices which operate together. Sistemas de Informação é uma série de elementos ou componentes inter-relacionados que coletam (entrada), manipulam e armazenam (processo), disseminam (saída) os dados e informações e fornecem um mecanismo de feedback. Entradas - ação de capturar/coletar dados dentro da organização ou em seu ambiente externo Processamento - ação de converter dados em forma significativa (informação) Saídas - transferência da informação processada para pessoas ou atividades onde será usada Feedback - saída que retorna aos membros apropriados da organização para ajudá-los a avaliar ou corrigir o estágio de entrada Tipos de Sistemas Automatizado Sistemas On-Line - Atualização das informações em tempo de uso. Ex. : Controle de Passagem aérea. Sistemas Batch - Atualização em lote em tempo programado. Ex. : Controle de chão de fábrica Sistemas Em Tempo-Real - Controle de informação com alta taxa de velocidade. Ex. : Caixa Eletrônico, Orientação de mísseis, comutação telefônica, Sistemas de Apoio à decisão e Sistemas de planejamento estratégico - Tratamento de informações de modo a controlar e dar apoio baseado nas informações armazenadas. Concepção do Sistema Definição do Projeto Identificar as áreas, sistemas e entidades externas envolvidas; Levantar o Principais transações; o Fluxo básico e volumes; o Freqüência dos eventos; 3

o Pontos críticos; o Abordagens do problema que justifique o projeto. Exemplo: Controle de estoque. Áreas Envolvidas Cliente, Setor de Compras, Fornecedor, Recebimento e Gerência. Transações Entrada e saída de produtos do estoque; Emissão de pedido de compras aos fornecedores; Emissão de notas fiscais para clientes; Contagem visual do estoque para emissão de relação de produtos em falta. Fluxos e Volumes São emitidos semanalmente 10 pedidos de compra aos fornecedores; São feitos diariamente contatos telefônicos com pelo menos 3 fornecedores para cotação de preços; O estoque conta com uma variedade de 200 produtos; São emitidas diariamente aproximadamente 50 notas fiscais; A empresa possui um fichário contendo 30 fornecedores e 100 clientes. Freqüência Os pedidos de compra são enviados duas vezes por semana aos fornecedores. Alguns produtos são comprados através de contato telefônico devido à urgência de entrega, e o pedido é enviado junto aos outros nos dias marcados (pelo menos duas compras por dia nessa condição). Diariamente é feito um controle visual do estoque para se verificar a necessidade de produtos.c Pontos Críticos Falta de um controle eficiente do estoque; Demora na verificação dos produtos em estoque; Falta de comunicação entre os diversos setores; Falta de controle de contas a pagar e a receber; Dificuldades de cobrança dos produtos que não foram entregues no dia; Dificuldades na cotação de produtos. Abordagem que Justifique Devido a falta de um controle eficiente os produtos muitas vezes chegam a estragar, pois os prazos de validade chegam a vencer, e também alguns produtos faltam nas prateleiras em decorrência da demora na contagem e conferência do estoque. Não existe um controle das contas a serem pagas, acarretando multas por atraso no pagamento, devido ao controle ser feito por meio de anotações em cadernos. Não existe um controle de contas a receber, acarretando no atraso pelos clientes e dificultando a cobrança pois muitas vezes os pagamentos não são anotados de maneira eficiente. Delineamento do Projeto Estabelecer a abrangência do projeto e identificar seus limites; 4

Identificar as funções principais; Identificar as principais entradas e saídas do sistema e suas finalidades; Identificar os principais critérios de processamento que mereçam algum detalhamento. Benefícios Avaliar os benefícios que se pode obter com a implantação do projeto. Exemplo: Aumentar a participação no mercado com qualidade e eficiência no atendimento e prestação de serviços aos clientes. Manter um cadastro de clientes, produtos e fornecedores com informações confiáveis e atualizadas, possibilitando a consulta de qualquer informação solicitada pelos setores envolvidos no projeto. Criação de relatórios gerenciais contribuindo para a tomada de decisões da gerência.manter o estoque sempre com produtos suficientes para a venda diária, evitando assim a falta de produtos por planejamentos mal feitos ou atrasos na entrega. Recursos Estimar os recursos necessários para implantação do projeto; estimar os recursos materiais e humanos para as fases do projeto. Exemplo: Prazos 240 horas de análise/desenvolvimento; 2 analistas de sistemas; 2 programadores;1 DBA. Recomendações Consiste em estimar os prazos necessários para executar as fases do projeto através de cronogramas. Fazer recomendações sobre cursos, assessorias externa ou interna, visitas a outras empresas que possam facilitar o andamento do projeto. Alternativas Enumerar e fazer uma descrição básica de todas as alternativas possíveis de solucionar o problema; Fazer uma análise de viabilidade de cada alternativa proposta; Fazer uma avaliação de cada alternativa; Ponderar fatores que podem causar impacto sobre as alternativas, como benefícios, direitos e deveres, a longo, curto e médio prazo. Escolha a Solução Elaborar uma pasta com a descrição das alternativas e um resumo do resultado das análises; Escolher em conjunto com os representantes dos usuários de todas as áreas envolvidas, a solução a ser adotada. Hardware e Software Recomendações mínimas sobre os equipamentos de front-end e servidores (back-end); Impressoras; Periféricos aplicados ao sistema (leitoras ópticas, impressoras fiscais, coletores de dados, etc.) Software da aplicação (front-end). SGBD (back-end). Software de apoio (rede, segurança, ligação entre os periféricos) 5