Baixe o app para aproveitar ainda mais
Prévia do material em texto
Teste de Software Aula 01 Ana Claudia Monte de Andrade professora.anaclaudiamonte@gmail.com Professora universitária desde de 2013, lecionando as disciplinas: Tecnologia da Informação; Inglês para informática; Qualidade de Software; Teste de Software; Auditoria e validação de Sistema; Orientação a estágio Supervisionado; Introdução Lógica Programação; Introdução a Informática; Introdução a informática Sustentável; Jogos Educacionais ; Gestão do Conhecimento Desenvolvimento Para aplicações WEB; Gestão de Processos de Negócios Sistemas de apoio a decisão; Sistemas Distribuídos; Engenharia de Software, e; Redes computadores. Atuando como analista de teste, analista de sistemas e analista de qualidade desde 2007 nas seguintes empresas: Acordos de Convivência: - Horário da aula: Quarta-feira (07:50h – 11:00h) - A aula inicia às 08:00; Celular no silencioso; Atender celular fora da sala de aula; Avaliações 1º AV: Prova (valendo 5); Exercício|Projeto (valendo 5); Seminário: ponto extra (valendo 1) 2º AV: Prova Colegiada. 2º CHAMADA: Prova com todo o assunto. FINAL: Prova com todo o assunto. Exercício | Projeto Em grupo; Entregue no dia da prova (impresso); Cópia será cancelado os dois trabalhos; Presenças Chamadas realizada na aula. Caso o aluno precisar se ausentar por motivos de saúde, enviar comprovante por e-mail e não apenas falar pelo . Vamos dividir os grupos? O que é Teste de Software? Teste é... Verificar se o software está fazendo o que deveria fazer, de acordo com os seus requisitos, e não está fazendo o que não deveria fazer (Rios & Moreira, 2ª Edição). Processo de executar um programa ou sistema com a intenção de encontrar defeitos (Glen Myers, 1979). Testar software é a atividade de comparar o que um item de teste faz com o que é esperado que faça (ISO/IEC-29119). Executar um programa para: Encontrar falhas Medir a qualidade Garantir a confiança Analisar um programa ou sua documentação para prevenir defeitos; Reduzir custos de manutenção corretiva e retrabalho. 13 Objetivo do Teste de Software Com o teste, é possível medir a qualidade do software em termos de defeitos encontrados Teste pode dar a confiança na qualidade do software, se ele encontrar poucos ou nenhum defeito O teste é apenas um “termômetro” da qualidade do produto Testar bem reduz o risco de ter um sistema com má qualidade! 14 Teste x Qualidade Conceitos chaves; Processo; Equipe de testes; Versões/Releases; Ferramentas; Ambiente de testes; Etc... 15 Testar envolve: Conceitos Básicos 16 IEEE Std 610.12 – 1990 Falha (problema ou incidente) Discrepância entre o resultado atual e o resultado esperado. Falta (Defeito ou erro interno) Causa de uma falha. Erro (Engano) Ação humana que produz um resultado incorreto; Debug x Teste Debug É a localização e a correção de faltas (BUGS); Sempre, são executados pelos desenvolvedores. Teste Detecta falhas; É a execução de um objeto de testes a fim de avaliá-lo. 17 Validar =! Verificar Validação “Estamos construindo o produto correto?” O sistema atende às expectativas do cliente/usuário. Verificação “Estamos construindo o produto corretamente?” O software está de acordo com suas especificações (As especificações do software nem sempre estão de acordo com as expectativas dos usuários). Boehm (1979) Escrita de Testes 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. Procedimento de Teste: é uma descrição dos passos necessários para executar um caso (ou um grupo de casos) de teste. Suíte de Testes: um conjunto de casos de testes. Craig e Jaskiel, 2002. Processo de Teste Um processo de teste de software é um conjunto de passos parcialmente ordenados constituídos por atividades, métodos e práticas, usados para testar um produto de software. Processo de Teste Independentemente da fase de teste, o processo de teste inclui as seguintes atividades: Planejamento de Teste; Análise de Requisitos de Teste (normalmente realizado em conjunto com o Planejamento de Teste); Projeto de Casos de Teste; Implementação de Casos de Teste; Execução, e; Análise. Planejamento de Teste Questões importantes: Quem deve realizar os testes? O que testar? Que partes devem ser mais cuidadosamente testadas? (Análise de Requisitos de Teste) Quanto teste é adequado? Quando testar? Como o teste deve ser realizado? Quem deve realizar os testes? Desenvolvedores Compartilhamento de Responsabilidades entre Desenvolvedores e Testadores Independentes Testadores Independentes Quem deve realizar os testes? Desenvolvedor: Código é resultado de seu trabalho. Logo, procurar defeitos é, de certo modo, a destruição do mesmo, e o próprio desenvolvedor não tem motivação psicológica para projetar casos de teste que demonstrem que seu produto tem defeitos (dissonância cognitiva). Dificilmente o desenvolvedor consegue criar um caso de teste que rompa com a lógica de funcionamento de seu próprio código (Koscianski e Soares, 2006). Quem deve realizar os testes? Compartilhamento de Responsabilidades: Divisão por Fases: Desenvolvedores testam unidades, muitas vezes em paralelo com a implementação das mesmas. Testadores independentes testam integração e sistema. Divisão por Atividades do Processo de Teste: Testadores independentes são responsáveis pelo Planejamento, Análise e Projeto de Casos de Teste. Desenvolvedores são responsáveis pela construção e execução dos casos de teste. Quem deve realizar os testes? Testador Independente: Assume a “perspectiva de teste”. Pode representar papéis distintos (testador de unidade, de integração e de sistema). Se responsável por todos os testes, em todas as fases, pode tornar o processo lento e pouco produtivo. Quem deve realizar os testes? Compartilhamento de Responsabilidades: Divisão por Fases: Desenvolvedores testam unidades, muitas vezes em paralelo com a implementação das mesmas. Testadores independentes testam integração e sistema. Divisão por Atividades do Processo de Teste: Testadores independentes são responsáveis pelo Planejamento, Análise e Projeto de Casos de Teste Desenvolvedores são responsáveis pela construção e execução dos casos de teste. 28 O que testar? Não testar nada Testar parcialmente Testar tudo Esforços devem ser concentrados nas partes mais importantes e/ou frágeis; Um bom teste é ao mesmo tempo econômico e encontra o máximo de defeitos; Análise de Requisitos de Teste: Quais as partes mais importantes? Quais as mais frágeis? Enfim, que partes devem ser mais cuidadosamente testadas? O que testar? Quanto teste é adequado? É impossível testar tudo! Cobertura de Teste pode ser medida pelo menos de duas maneiras (McGregor e Sykes, 2001): Em relação a requisitos: quanto dos requisitos especificados foi testado? Considerar requisitos funcionais (casos de uso, fluxos de eventos) e não funcionais. Em relação à execução de linhas de código (teste de caminhos possíveis). 31 Quanto teste é adequado? O esforço de teste deve ser compensatório, ou seja, deve haver um balanceamento entre tempo/custo do teste e a quantidade de defeitos encontrados. O número de defeitos encontrados segue uma curva logarítmica, ou seja, embora ainda possam existir defeitos, o esforço para encontrá-los passa a ser muito grande, fazendo com que a atividade de teste comece a ser percebida como muito custosa (Koscianski e Soares, 2006). 32 Estimativas e Riscos Como qualquer atividade de planejamento, planejar testes envolve a gerência de riscos e a realização de estimativas de esforço, recursos (pessoas, equipamentos, software), tempo e custo. Fatores que afetam as estimativas / riscos: Software sendo testado: tipo de software, plataforma de implementação etc. Equipamentos e software requeridos para o teste Modelo organizacional (testadores x desenvolvedores) Nível de Cobertura. Usar dados históricos. Teste xDesenvolvimento 33 34 Artefatos de Testes O Testador Prover informações que ajudam a decidir sobre a possível qualidade de um produto e na tomada de decisões Pode assumir diferentes papeis na equipe de testes 35 Papéis - Equipe de Testes Composta por: Líder de Testes Arquiteto de Testes; Projetista de Testes; Implementador/Automatizador de Testes; Executor de Testes; 36 Dúvidas? Vamos trabalhar?
Compartilhar