Testes de Software Aula 1 Universidade Federal do Ceará
Objetivo Estes slides fazem parte do material de treinamento produzido pela Célula de Testes e Qualidade de Software (CTQS) do Grupo de Redes de Computadores, Engenharia de Software e Sistemas (GREat) Encontro 2
Qualidade de Software Segundo o IEEE, o termo qualidade pode ser entendido no contexto da Engenharia de Software como o grau no qual um sistema, componente ou processo satisfaz os requisitos especificados e as necessidades e expectativas do cliente/usuário. Fonte : http://beta.ramosdainformatica.com.br 3
Como garantir a Qualidade Aplicação de métodos e ferramentas Que auxiliem a qualidade das especificações, do projeto, do código. Aplicações de padrões Para documentação ou codificação Atividades de Verificação Objetivo: Assegurar consistência, completitude e corretude do produto em cada fase e entre fases consecutivas Estamos desenvolvendo certo o produto? Atividades de Validação Objetivo: Assegurar que o produto final corresponda aos requisitos do usuário Estamos desenvolvendo o produto certo? 4
Teste de Software É o processo de executar um programa com a intenção de encontrar erros [Myers 2011] Técnica dinâmica de V&V Fonte: http://blog.imotion-info.com/2011/12/html-5-o-que-e-isso/ 5
Teste de Software Teste é uma atividade em que um sistema ou componente é executado sob condições específicas, os resultados são observados ou registrados, e é feita uma avaliação de algum aspecto do sistema ou componente [IEEE Standard Glossary 1990] Fonte: http://br.masternewmedia.org/ 6
Teste de Software Teste de software consiste em uma verificação dinâmica do comportamento de um programa com um conjunto finito de casos de testes adequadamente selecionados a partir do domínio de execuções, geralmente infinito, contra o comportamento esperado [Swebok Guide 2004] Fonte: http://ousadiasa.blogspot.com.br/ 7
Por que errar é humano Por que testar um software Por que gera Economia, o custo de reparar um erro é menor que reparar uma falha. Por que garante a Qualidade, garante que o software atende todos os requisitos. Por que da Confiabilidade, verifica o maior intervalo de tempo em que o software permanece funcionando sem ocorrer falhas. Fonte:http://www.sofist.com.br Fonte:http://assistenciatecnica.uol.com.br/dicas/porque-pc-reinicia-sozinho.html 8
Erros na atualização do Windows 7 impedem boot do sistema A atualização (KB2823324), para corrigir falhas no Windows 7, liberada pela Microsoft no dia 09/04/2013, acabou gerando erros que estão impedindo o boot do sistema. O bug faz com que uma tela azul impeça o boot Fonte:http://www.techtudo.com.br/noticias/noticia/2013/04/erros-na-atualizacao-do-windows-7-impedem-boot-do-sistema.html Encontro 9
Falha em software quase derrubou avião da Qantas Em 7 de outubro de 2008, um Airbus A330 da companhia australiana Qantas fez dois mergulhos violentos em direção ao chão. O motivo seria uma falha no computador de bordo. O resultado dessa montanha-russa aérea deixou um saldo de 110 pessoas feridas. Fonte:http://info.abril.com.br/noticias/ti/falha-em-software-quase-derrubou-aviao-da-qanta-27122011-4.shl 10
Ariane 5: um erro numérico (overflow) levou à falha no primeiro lançamento Em 4 de junho de 1996, menos de um minuto após o lançamento, o foguete francês Ariane 501 se autodestruiu. A avaliação indica um erro no software de controle como a origem na falha do lançamento. Fonte: http://www.dutchspace.nl/pages/products/content.asp?id=143&langtype=1033 http://www.sbmac.org.br/bol/bol-2/artigos/ariane5.html 11
Erro O erro é considerado uma ação humana, que resulta em um software com defeitos Falha Defeito Um defeito pode ocorrer devido a omissão de informações, definições de dados ou comandos/instruções incorretas dentre outros fatores De acordo com o padrão IEEE (1983) uma falha ocorre quando um programa não se comporta conforme o esperado ou apresenta resultados diferentes do planejado Fonte:http://qabrasil.blogspot.com.br/2010/07/principais-diferencas-entre-erro.html 12
Os Sete Princípios Objetivodos Testes 1º Testes indicam a presença de defeitos E nunca indicam a ausência de defeitos Fonte: http://http://www.uol.com.br/ 13
Os Sete Princípios dos Testes 2º Testes exaustivos são impossíveis Validar todos as combinações de entradas e pré-condições não é viável Fonte :http://www.sncsalvador.com.br/ 14
Os Sete Princípios dos Testes 3º Antecipação dos Testes A atividade de testes deve começar o mais breve possível Fonte :http://simulacaodiscreta.wordpress.com/2010/05/05/servidor-publico-brasileiro/ 15
Os Sete Princípios dos Testes 4º Agrupamento de Defeitos A maior parte dos defeitos são encontrados em uma pequena quantidade de módulos Fonte :http://www.cardquali.com/lei-de-pareto-aplicado-graficas/ 16
Os Sete Princípios dos Testes 5º O Paradoxo do Pesticida Pode ocorrer de um mesmo conjunto de testes que são repetidos várias vezes não encontrarem novos defeitos após um determinado momento. Para superar este paradoxo do pesticida, os casos de testes necessitam ser freqüentemente revisado e atualizado Fonte: http://www.muhrgalleri.area81.se/#11.25 17
Objetivo Os Sete Princípios dos Testes 6º Testes dependem do Contexto Testes são realizados de forma diferente conforme o contexto. Por exemplo, o software do banco é testado de forma diferente do software de comércio local Fonte: http://www.anoesemchamas.com.br 18
Objetivo Os Sete Princípios dos Testes 7º A falácia de ausência de erros De nada adianta o sistema estar funcionando corretamente se ele não atender a necessidade real do usuário Fonte: http://www.idadecerta.com.br/blog/?tag=falacia 19
Caso de Teste Consiste de um conjunto de valores de entrada, pré-condições de execução, resultados esperados e pós-condições de execução, desenvolvidos para cobrir certas condições de teste Fonte: Araújo, I. L.; Andrade, R. M. C.; Neto, P. A. S. (2013). Uma Solução para Geração Automática de Casos de Testes para Linhas de Produto de Software Sensíveis ao Contexto. In WTDG GREat, Fortaleza, CE 20
Procedimento de teste O procedimento de teste contém a sequência de ações para realização de um teste (IEEE 1990) Fonte: Araújo, I. L.; Andrade, R. M. C.; Neto, P. A. S. (2013). Uma Solução para Geração Automática de Casos de Testes para Linhas de Produto de Software Sensíveis ao Contexto. In WTDG GREat, Fortaleza, CE 21
Processo de Teste Básico Consiste das seguintes atividades [ISTQB 2007] Planejamento e controle Análise e modelagem Implementação e execução Avaliação dos critérios de saída e relatórios Atividades de encerramento de teste Fonte: http://www.firewalldefender.net/ 23
Processo de Teste Básico Planejamento e controle do teste O planejamento de teste é a atividade que consiste em definir os objetivos e especificar as atividades de forma a alcançá-los O controle do teste é a constante atividade que compara o progresso atual com o que foi planejado, reportando o status e os desvios do plano Fonte: http://www.ufrgs.br/fce/?p=3106 24
Processo de Teste Básico Análise e modelagem do Teste São atividades onde os objetivos gerais do teste são transformados em condições e modelos de teste tangíveis São compostas pelas seguintes atividades principais Revisar a base de testes Avaliar a testabilidade dos requisitos e do sistema Projetar e priorizar os casos de testes de alto nível Identificar as necessidades de dados para teste, suportando as condições e casos de teste Fonte: http://dinheirama.com 25
Processo de Teste Básico Análise e modelagem do Teste Identificar e priorizar as condições ou requisitos de testes e dados de testes baseados na análise dos itens de teste, na especificação, no comportamento e na estrutura Planejar a preparação do ambiente de teste e identificar a infraestrutura e ferramentas necessárias Criar uma rastreabilidade bidirecional entre os requisitos e os casos de teste Fonte: http://gestaoeprocessos.blogspot.com.br/ 26
Processo de Teste Básico Implementação e execução de teste É a atividade onde os procedimentos ou os scripts de teste são especificados pela combinação dos casos de teste em uma ordem particular Inclui todas as outras informações necessárias e a preparação do ambiente para a execução do teste São compostas por atividades como verificar se o ambiente está preparado corretamente e comparar resultados obtidos com os resultados esperados Fonte: http://msdn.microsoft.com/pt-br/library/ 27
Processo de Teste Básico Avaliação do critério de saída e relatório É a atividade onde a execução do teste é avaliada mediante os objetivos definidos Deve ser feita para cada nível de teste Algumas atividades Checar os registros de teste (logs) mediante o critério de encerramento especificado no planejamento de teste Avaliar se são necessários testes adicionais ou se o critério de saída especificado deve ser alterado Fonte: https://www.jaspersoft.com/ 28
Processo de Teste Básico Atividades de encerramento de teste É a atividade onde são coletados os dados de todas as atividades para consolidar a experiência, testware, fatos e números. Atividades principais Finalizar e arquivar o testware, o ambiente de teste e infraestrutura de teste para o reuso Entregar o testware para a manutenção da organização Analisar as lições aprendidas para se determinar as mudanças necessárias para futuros releases e projetos Utilizar as informações coletadas para melhorar a maturidade de teste Fonte: http://www.ead.sebrae.com.br/ 29
Referências IEEE Computer Society (2004) Guide to the Software Engineering Body of Knowledge (SWEBOK), California, EUA. IEEE Computer Society (1990) Stantard Glossary of Software Engineering Terminology. NY, USA ISTQB (2007). Base de Conhecimento para Certificação em Teste, Foundation Level Syllabus, Versão 2007br Myers, G.; Sandler, C. e Badgett, T. (2011). The Art of Software Testing, ITPro collection, Wiley.
ctqs@great.ufc.br ctqsgreat great.ufc.br/ctqs @CtqsGreat