Garantia de Qualidade(QualityAssurance)
O que é Qualidade?“Qualidade é o grau no qual um conjunto de características inerentes satisfaz aos requisitos” NBR ISO 9000:2005
Software QualityAssurance (SQA)Software QualityAssurance(SQA) compõe o conjunto de “atividades sistemáticas fornecendo evidências para o uso pretendido para o produto total de software". (LEWIS, 2004, p. 18)Esse tipo de ação é orientada a prevenção.
Porquê prevenção?Defeito encontrado nos requisitos:Se uma falha nos requisitos do sofware é encontrada e corrigida, sua correção é relativamente simples: atualizar a especificação de requisitos.
Porquê prevenção?Se o mesmo erro é encontrado fase de implantação, as correções tardias envolvem:Report de erros pelo cliente;Avaliação do erro pela equipe de desenvolvimento;Correção do erroRe-envio do pacote de desenvolvimento ao cliente;Nova validação pelo cliente; E correções em ciclos se mais erros relacionados forem encontrados.
Software QualityAssurance (SQA)Envolve todo o processo de desenvolvimento de softwareRealizando as devidas monitorações e melhorias de processos pertinentesAssegurando que os padrões, procedimentos acordados estejam sendo seguidos Garantindo que problemas sejam encontrados e ações corretivas sejam tomadas. Teste de software é umas das atividades de QualityAssurance (Garantia de Qualidade).
Testes de SoftwareAjudam a medir a qualidade do software baseando-se nos defeitos(bugs) encontrados.Reduzem o nível de risco* de um sistema como um todo*Risco: um fator que pode resultar em futuras consequências negativas; usualmente expressado como impacto e probabilidade de ocorrer.Contribuem para o cumprimento de itens contratuais ou requisitos legais acordados com o clienteComo? Encontrando e corrigindo defeitos ANTES do sistema ser implantado em ambiente operacional.
Processo de Testes*satifaz requisitos para entrega?
Planejamento e ControleNesta etapa é especificada qual estratégia de testes será adotada:Identificar objetivos do testeDefinir quais atividades e teste serão realizadasDefinir quais técnicas serão aplicadasDeterminar qual o critério de saída: quando as atividades de teste devem ser encerradas?
Análise e DesignTestes são projetados utilizando-se  as técnicas selecionadas.Revisar os documentos e artefatos recebidosLevantar dados para testeProjetar test-cases, definir checklists e/ou qualquer outro artefato* *Com a finalidade de descobrir e eliminar problemas antes da etapa de desenvolvimento do software
ExecuçãoExecução dos testes de acordo com a seqüência planejadaComparação de resultados planejados (ou especificados) com resultados esperadosReport de incidentes Bugs e/ou falhas encontradasGerar logs de saída da execução dos testesRepetição de testes para checagem da correçãoAvaliação de Critério de SaídaA execução dos testes é dada por completo quando os objetivos do teste é atingidoAvaliar se mais testes são necessáriosRealizar tarefas de fechamento:Checar se todos os incidentes foram encerradosChecar que as atividades planejadas foram entreguesAnalisar Lições Aprendidas para releases e projetos futuros e para a melhoria do processo.
Os 7 Princípios-chave Os testes mostram  a presença de defeitos, não sua ausênciaTestes exaustivos são impossíveisTeste o mais cedo quanto possívelDefect ClusteringThe pesticide paradoxTest is Context DependentAbsence of Errors Fallacy
1. Os testes mostram  a presença de defeitos, não sua ausênciaNós testamos para encontrar falhas/defeitosQuando encontramos defeitos hoje, a probabilidades de encontrarmos defeitos futuros não descobertos no sistema diminuiA probabilidade de existência de mais erros em uma seção de um programa é proporcional ao número de erros já encontrados naquele programaUm bom teste tem uma alta probabilidade de detectar erros ainda não descobertos
2. Testes exaustivos não são possívelÉ absolutamente inviável testar tudo**Ou testar todas as combinações de entrada e saída, incluindo as pré-condiçõesIsto exigiram um número astronômico de test cases, ou simulaçõesGeralmente os testes são priorizados de acordo com uma abordagem baseada em riscos ou prioridades
3. Os testes devem começar tão cedo quanto possívelAs atividades de teste devem ser iniciadas quanto mais cedo possível no ciclo de desenvolvimentoAs atividades devem ser focadas em objetivos definidos dentro de uma estratégia de testes
4. Defeitos tendem a se agruparOs defeitos não são distribuídos uniformemente no sistema, geralmente se encontram agrupadosEm outras palavras, a maioria dos defeitos encontrados durante os testes são geralmente confinados a uma pequena parte do sistemaEstes dados servem de base para a priorização dos testes: Por Criticidade
5. O paradoxo do pesticidaSe os mesmos testes são repetidos continuamente, eles tendem a perder sua eficáciaPara evitar, novos Test Cases devem ser desenvolvidos usando novas combinações de dados e novas técnicas que capturem outros defeitos
6. Testes são dependentes de contextoTestes são feitos de forma diferente em diferentes contextosOs testes devem ser aplicados baseando-se nos riscos inerentes ao uso e no ambiente da aplicaçãoTodo software deve ter critérios de saída que devem ser decididos individualmenteExemplo:Sistemas de segurança requerem testes diferentes de sistemas de e-commerce
7. O fato de falhas não existirem, não significa um sistema utilizável (usefull)Encontrar falhas e reparar não garante que os sistema como um todo garanta as expectativas do usuário e suas necessidadesO envolvimento mais cedo do usuário no processo de desenvolvimento e o uso de protótipos são métodos preventivos
ISTQB – International Standards TestingQualityBoardwww.testexpert.com.brQAI – QualityAssurance Global InstituteLivro: Software Testing Foundations: A Study Guide for the Certified Tester Exam, 2nd EditionAndreas Spillner; Tilo Linz; Hans SchaeferFonte:
Qualidade

Qualidade

  • 1.
  • 2.
    O que éQualidade?“Qualidade é o grau no qual um conjunto de características inerentes satisfaz aos requisitos” NBR ISO 9000:2005
  • 3.
    Software QualityAssurance (SQA)SoftwareQualityAssurance(SQA) compõe o conjunto de “atividades sistemáticas fornecendo evidências para o uso pretendido para o produto total de software". (LEWIS, 2004, p. 18)Esse tipo de ação é orientada a prevenção.
  • 4.
    Porquê prevenção?Defeito encontradonos requisitos:Se uma falha nos requisitos do sofware é encontrada e corrigida, sua correção é relativamente simples: atualizar a especificação de requisitos.
  • 5.
    Porquê prevenção?Se omesmo erro é encontrado fase de implantação, as correções tardias envolvem:Report de erros pelo cliente;Avaliação do erro pela equipe de desenvolvimento;Correção do erroRe-envio do pacote de desenvolvimento ao cliente;Nova validação pelo cliente; E correções em ciclos se mais erros relacionados forem encontrados.
  • 6.
    Software QualityAssurance (SQA)Envolvetodo o processo de desenvolvimento de softwareRealizando as devidas monitorações e melhorias de processos pertinentesAssegurando que os padrões, procedimentos acordados estejam sendo seguidos Garantindo que problemas sejam encontrados e ações corretivas sejam tomadas. Teste de software é umas das atividades de QualityAssurance (Garantia de Qualidade).
  • 7.
    Testes de SoftwareAjudama medir a qualidade do software baseando-se nos defeitos(bugs) encontrados.Reduzem o nível de risco* de um sistema como um todo*Risco: um fator que pode resultar em futuras consequências negativas; usualmente expressado como impacto e probabilidade de ocorrer.Contribuem para o cumprimento de itens contratuais ou requisitos legais acordados com o clienteComo? Encontrando e corrigindo defeitos ANTES do sistema ser implantado em ambiente operacional.
  • 8.
    Processo de Testes*satifazrequisitos para entrega?
  • 9.
    Planejamento e ControleNestaetapa é especificada qual estratégia de testes será adotada:Identificar objetivos do testeDefinir quais atividades e teste serão realizadasDefinir quais técnicas serão aplicadasDeterminar qual o critério de saída: quando as atividades de teste devem ser encerradas?
  • 10.
    Análise e DesignTestessão projetados utilizando-se as técnicas selecionadas.Revisar os documentos e artefatos recebidosLevantar dados para testeProjetar test-cases, definir checklists e/ou qualquer outro artefato* *Com a finalidade de descobrir e eliminar problemas antes da etapa de desenvolvimento do software
  • 11.
    ExecuçãoExecução dos testesde acordo com a seqüência planejadaComparação de resultados planejados (ou especificados) com resultados esperadosReport de incidentes Bugs e/ou falhas encontradasGerar logs de saída da execução dos testesRepetição de testes para checagem da correçãoAvaliação de Critério de SaídaA execução dos testes é dada por completo quando os objetivos do teste é atingidoAvaliar se mais testes são necessáriosRealizar tarefas de fechamento:Checar se todos os incidentes foram encerradosChecar que as atividades planejadas foram entreguesAnalisar Lições Aprendidas para releases e projetos futuros e para a melhoria do processo.
  • 12.
    Os 7 Princípios-chaveOs testes mostram a presença de defeitos, não sua ausênciaTestes exaustivos são impossíveisTeste o mais cedo quanto possívelDefect ClusteringThe pesticide paradoxTest is Context DependentAbsence of Errors Fallacy
  • 13.
    1. Os testesmostram a presença de defeitos, não sua ausênciaNós testamos para encontrar falhas/defeitosQuando encontramos defeitos hoje, a probabilidades de encontrarmos defeitos futuros não descobertos no sistema diminuiA probabilidade de existência de mais erros em uma seção de um programa é proporcional ao número de erros já encontrados naquele programaUm bom teste tem uma alta probabilidade de detectar erros ainda não descobertos
  • 14.
    2. Testes exaustivosnão são possívelÉ absolutamente inviável testar tudo**Ou testar todas as combinações de entrada e saída, incluindo as pré-condiçõesIsto exigiram um número astronômico de test cases, ou simulaçõesGeralmente os testes são priorizados de acordo com uma abordagem baseada em riscos ou prioridades
  • 15.
    3. Os testesdevem começar tão cedo quanto possívelAs atividades de teste devem ser iniciadas quanto mais cedo possível no ciclo de desenvolvimentoAs atividades devem ser focadas em objetivos definidos dentro de uma estratégia de testes
  • 16.
    4. Defeitos tendema se agruparOs defeitos não são distribuídos uniformemente no sistema, geralmente se encontram agrupadosEm outras palavras, a maioria dos defeitos encontrados durante os testes são geralmente confinados a uma pequena parte do sistemaEstes dados servem de base para a priorização dos testes: Por Criticidade
  • 17.
    5. O paradoxodo pesticidaSe os mesmos testes são repetidos continuamente, eles tendem a perder sua eficáciaPara evitar, novos Test Cases devem ser desenvolvidos usando novas combinações de dados e novas técnicas que capturem outros defeitos
  • 18.
    6. Testes sãodependentes de contextoTestes são feitos de forma diferente em diferentes contextosOs testes devem ser aplicados baseando-se nos riscos inerentes ao uso e no ambiente da aplicaçãoTodo software deve ter critérios de saída que devem ser decididos individualmenteExemplo:Sistemas de segurança requerem testes diferentes de sistemas de e-commerce
  • 19.
    7. O fatode falhas não existirem, não significa um sistema utilizável (usefull)Encontrar falhas e reparar não garante que os sistema como um todo garanta as expectativas do usuário e suas necessidadesO envolvimento mais cedo do usuário no processo de desenvolvimento e o uso de protótipos são métodos preventivos
  • 20.
    ISTQB – InternationalStandards TestingQualityBoardwww.testexpert.com.brQAI – QualityAssurance Global InstituteLivro: Software Testing Foundations: A Study Guide for the Certified Tester Exam, 2nd EditionAndreas Spillner; Tilo Linz; Hans SchaeferFonte: