Baixe o app para aproveitar ainda mais
Prévia do material em texto
Testes de Software Prof.: Ari Oliveira Projeto de Desenvolvimento Software Testes de Software 22 │ O software é testado para revelar erros cometidos quando projetado e construído. │ A estratégia de teste responde: ‖ Como conduzir os testes? ‖ Devemos estabelecer um plano formal para nossos testes? ‖ Devemos testar o programa como um todo ou somente parte dele? ‖ Devemos refazer os testes quando acrescentamos novos componentes ao sistema? ‖ Quando devemos envolver o cliente? Testes de Software 33 │ Quem realiza? ‖ Gerente de projeto, engenheiros de software e pelos especialistas em testes │ Por que é importante? ‖ Requer mais trabalho de projeto do que qualquer outra ação da engenharia de software. Se for feito casualmente, perde-se tempo, fazem-se esforços desnecessários, e, ainda pior, erros passam sem ser detectados. │ Etapas Envolvidas: ‖ Começa pelo pequeno e passa para o grande, ou seja, os testes iniciais focalizam um único componente ou um pequeno grupo de componentes relacionados. Depois os componentes devem ser integrados até que o sistema completo esteja pronto. │ Artefato: ‖ Plano que estabelece estratégia global e um procedimento designando etapas específicas de teste e os tipos de testes que serão feitos. Testes de Software 44 │ Validação: Assegurar que o produto final corresponda aos requisitos do usuário ‖ Estamos construindo o produto certo? │ Verificação: Assegurar consistência, completitude e corretitude do produto em cada fase e entre fases consecutivas do ciclo de vida do software ‖ Estamos construindo corretamente o produto? Testes de Software 55 │ Processo de software e estratégia de teste em expiral: Testes de Software 66 │ Identificar erros de lógica e de implementação em cada módulo do software, separadamente; │ Pode ser conduzido em paralelo para diversos componentes; │ Considerações: ‖ O teste de fronteira é uma das tarefas mais importantes do teste de unidade. Falha nas fronteiras: quando o n-ésimo elemento de um conjunto n-dimensional é processado, quando a i-nésima repetição de uma laço com i passadas é chamada, quando o valor máximo ou mínimo permitido é encontrado. ‖ Um bom projeto prevê condições de erro e estabelece caminhos de manipulação de erro para redirecionar ou encerrar ordenadamente o processamento quando ocorre um erro. Abordagem antidefeitos. Testes de Software 77 │ "Se todos funcionam individualmente, porque você duvida que funcionem quando estiverem juntos?” │ O teste de integração é uma técnica sistemática para construir a arquitetura de software ao mesmo tempo que conduz testes para descobrir erros associados com as interfaces. ‖ Integração Descendente – Top-Down ‖ Integração Ascendente – Bottom-up Testes de Software 88 │ Módulos são integrados movendo-se descendentemente na hierarquia de controle, começando com o módulo de controle principal. │ Pode ser realiza de duas formas: ‖ Por profundidade(M1,M2,M5) ‖ Por largura(M2,M3,M4) Testes de Software 99 Testes de Software 1010 │ Início: ‖ Fim da fase de integração. Componentes individuais foram exercitados; ‖ Software completamente montado; ‖ Erros de interface descobertos e corrigidos. │ Validação é considerada bem-sucedida se o software funciona de um modo que pode ser razoavelmente esperado pelo cliente. │ Essas expectativas razoavelmente esperadas são definidas na Especificação de Requisitos: ‖ Critérios de Validação Testes de Software 1111 │ Teste de Aceitação: software sob encomenda é construído para um cliente. │ Software desenvolvido como um produto para vários usuários: ‖ Teste alfa: conduzidos na instalação do desenvolvedor junto com os usuários finais. ‖ Teste beta: conduzido na instalação do usuário final. Desenvolvedor geralmente não está presente. │ Exemplo: ‖ Certificar que a empréstimo de um livro a um aluno não demore mais que três segundos para retornar uma mensagem de sucesso. Testes de Software 1212 │ É uma série de diferentes testes, cujo propósito primordial é pôr completamente à prova o sistema baseado em computador ‖ Teste de recuperação: é um teste de sistema que força o SW a falhar de diversas maneiras e verifica se a recuperação é adequadamente executada. ‖ Teste de segurança: tenta verificar se todos os mecanismos de proteção embutidos em um sistema o protegerão, de fato, de acessos indevidos. ‖ Teste de estresse: executa o sistema de uma forma que exige recursos em quantidade. Essencialmente o analista tenta destruir o programa. ‖ Teste de desempenho: é idealizado para testar o desempenho de “runtime” do SW dentro do contexto de um sistema integrado. Testes de Software 1313 │ Exemplo: ‖ Vários estudantes (milhares) fazem consulta ao mesmo tempo, empréstimos são feitos (cerca de 500 por minuto).Verifica se tempo de resposta está adequado e se um estudante não está consultando um livro que acaba de ser emprestado e ainda não foi atualizado. Testes de Software 1414 │ Caixa-Preta: ‖ Teste realizados na interface do software; ‖ Examina alguns aspectos fundamentais de um sistema, com pouca preocupação em relação à estrutura lógica interna. │ Caixa-Branca: ‖ Exame rigoroso do detalhe procedimental. Os caminhos lógicos e as colaborações entre os componentes são testados. ‖ Casos de teste que garantirão: ¦ que todos os caminhos independentes de um módulo foram exercitados, exercitam todas as decisões lógicas nos seus estados verdadeiro e falso, executam todos os ciclos em seus limites e dentro de suas fronteiras operacionais e exercitam estruturas de dados internas para assegurar a sua validade. Testes de Software 1515 │ Permite derivar uma medida da complexidade lógica de um projeto procedimental e usar essa medida como guia para definir um conjunto base de caminho para execução. │ No código fonte terminado, extrai-se o grafo de fluxo que representa a lógica do código fonte. Testes de Software 1616 │ Focaliza os requisitos funcionais do software; │ Visa encontrar erros nas seguintes categorias: ‖ Funções incorretas ou faltando; ‖ Erros de interface; ‖ Erros em estruturas de dados ou acesso a bases de dados externas, erros de comportamento ou de desempenho, e erros de inicialização e término. Testes de Software 1717 │ O Objetivo do teste é encontrar erros e se eles não forem detectados, o teste não pode afirmar sua ausência; │ Testar tudo é impossível; │ As técnicas de teste são complementares, devendo ser aplicadas em conjunto; │ Para testar com eficiência é preciso conhecer bem o software. Testes de Software 1818 │ Atividade: Identificar ferramentas utilizadas pelas empresas para testes │ Ferramentas para testes das GUI’s │ Ferramentas para testes de performance │ Frameworks para testes de unidade Testes de Software 1919 │ 1. Construa os seguintes algoritmos e construa o gráfico de fluxo para cada um deles: ‖ Um algoritmo que lê um número e imprime a lista dos seus divisores. ‖ Um algoritmo que lê as 4 notas de um aluno e diga se ele passou por média, está em final ou reprovou. Testes de Software EXEMPLOS DE TESTES Testes de Software 2121 │ O que é? │ Experimentos programados com tarefas para uso por diferentes tipos de usuário. │ Para que serve? │ Para testar as funcionalidades do produto, verificando se ele atende aos requisitos de usabilidade e identificar possíveis problemas para melhoria em uma análise de tarefas. │ É um teste de validação (requisitos) Testes de Software 222222 Testes de Software 232323 Testes de Software 242424 Testes de Software252525 Testes de Software 262626 Testes de Software 2727 Número de usuários de um teste P ro b le m a s e n c o n tr a d o s Testes de Software 2828 Testes de Software 2929 Testes de Software Prof.: Ari Oliveira Projeto de Desenvolvimento Software
Compartilhar