Slide 1 Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva Slide 2 Agenda Definições de Teste de software Conceitos básicos associados a Teste de Software Níveis de teste de Software Slide 3 Por que Testar Software? Os Estados Unidos estimam que bugs de software lhes custam aproximadamente 60 bilhões de dólares por ano. – http://www.computerworld.com/s/article/72245/Study_Buggy_software_ costs_users_vendors_nearly_60B_annually O foguete Ariane 5 explodiu por um erro de software. – http://www.sbmac.org.br/bol/bol-2/artigos/ariane5.html Erro de software provoca a morte de 21 pacientes em tratamento de câncer. – http://disciplinas.stoa.usp.br/pluginfile.php/31796/mod_resource/con tent/1/casoICancerPanama.pdf Slide 4 Nenhum software esta livre de falhas ! http://www.techtudo.com.br/noticias/noticia/2014/01/brasileiro-que- encontrou-falha-no-facebook-e-um-cacador-de-bugs.html Slide 5 Definições 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; Slide 6 Objetivo de todo teste: – 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. Definições Slide 7 Definições de Termos Defeito: passo, processo ou definição de dados incorreto, como por exemplo, uma instrução ou comando incorreto. Erro: diferença entre o valor obtido e o valor esperado, ou seja, qualquer estado intermediário incorreto ou resultado inesperado na execução do programa constitui um erro. Falha: produção de uma saída incorreta com relação à especificação. Slide 8 Definições de Termos Slide 9 Testes revelam falhas ! Sistema Ie Oe Entrada de dados de teste Saída de resultado de teste Entradas que causam comportamentos anômalos Saídas que revelam falhas Figura adaptada de Sommerville, Ian - 2011 Slide 10 Verificação e Validação (V&V) O Teste é parte de um amplo processo de verificação e validação (V&V). – Validação: estamos construindo o produto certo? garante que o software atenda às expectativas do cliente. – Verificação: estamos construindo o produto da maneira certa? checa se o software atende a seus requisitos funcionais e não funcionais. Slide 11 Níveis de teste de Software O planejamento dos teste deve ocorrer em diferentes níveis e em paralelo ao desenvolvimento. Slide 12 Os principais níveis de teste são: – Teste de Unidade – Teste de Integração – Teste de Sistema – Teste de Aceitação – Teste de Regressão Níveis de teste de Software Slide 13 Teste de Unidade ou Unitário: – Explora a menor unidade do projeto, procurando provocar falhas ocasionadas por defeitos de lógica e de implementação em cada módulo, separadamente. Uma ferramenta muito utilizada é o Junit. Níveis de teste de Software Slide 14 Teste de Integração: – Visa provocar falhas associadas às interfaces entre os módulos quando esses são interligados para construir a estrutura do software. Níveis de teste de Software Slide 15 Teste de Sistema (teste alfa).: – Avalia o software em busca de falhas por meio da utilização do mesmo, como se fosse um usuário final – 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. Níveis de teste de Software Slide 16 Teste de Aceitação (teste beta): – 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. Níveis de teste de Software Slide 17 Teste de Regressão: – É 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. Níveis de teste de Software Slide 18 Técnicas de Teste de Software Técnica Estrutural – Teste de Caixa Branca Técnica Funcional – Teste de Caixa Preta Slide 19 Caixa Branca – 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 lógicos (PRESSMAN, 2005). Técnicas de Teste de Software Slide 20 Caixa Preta – Dados de entrada são fornecidos, o teste é executado e o resultado obtido é comparado a um resultado esperado previamente conhecido. Ex. Testes em Interfaces Web com Selenium IDE. Técnicas de Teste de Software Slide 21 Outras técnicas de teste podem e devem ser utilizadas de acordo com necessidades de negócio ou restrições tecnológicas: – Teste de desempenho, – Teste de usabilidade, – Teste de carga, – Teste de stress, – Teste de confiabilidade, – Teste de recuperação, Técnicas de Teste de Software Slide 22 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 criticilidade da aplicação a ser desenvolvida. Slide 23 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. Conclusões Slide 24 Referências http://www.devmedia.com.br/artigo- engenharia-de-software-introducao-a-teste- de-software/8035
Comments
Report "Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva."