• Nenhum resultado encontrado

CursoTestesAutomatizados-Aula01

N/A
N/A
Protected

Academic year: 2021

Share "CursoTestesAutomatizados-Aula01"

Copied!
30
0
0

Texto

(1)

Testes Automatizados

de Software

Aula 01

(2)

Agenda

Qualidade de SoftwareDefinições

Dimensões

Qualidade e ProdutividadePor que testar um software

Definições de TesteMotivação

Por que é Difícil Testar um Software?Investimento em Teste de Software

(3)

Definições de Qualidade de Software

“O conjunto de características de um produto que

satisfazem uma dada necessidade.” [American

Society for Quality]

“Conformidade com os requisitos.” [Philip Crosby].

“O composto de produto e serviços que atendem às

(4)

Dimensões de Qualidade de Software

Funcionalidade: avalia o funcionamento da

aplicação em relação aos cenários de uso.

Usabilidade: avalia a qualidade sob a perspectiva

de adequação da aplicação ao usuário.

 Suportabilidade: avalia a aplicação sobre aspectos de manutenção e suporte em produção.

Confiabilidade: avalia a consistência do

comportamento da aplicação.

Performance: avalia a aplicação em situações de

(5)

Qualidade e Produtividade

Como obter a qualidade e a produtividade

(6)

Qualidade e Produtividade

Métodos de Engenharia de Software Como obter a qualidade e a produtividade

(7)

Qualidade e Produtividade

Métodos de Engenharia de Software Revisões Técnicas Formais Como obter a qualidade e a produtividade

Ajudam a garantir a qualidade do produto produzido como uma consequência de cada passo da engenharia de software

(8)

Qualidade e Produtividade

Métodos de Engenharia de Software Revisões Técnicas Formais Padrões e Procedimentos Como obter a qualidade e a produtividade

(9)

Qualidade e Produtividade

Métodos de Engenharia de Software Revisões Técnicas Formais Padrões e Procedimentos Garantia da Qualidade Como obter a qualidade e a produtividade

(10)

Qualidade e Produtividade

Métodos de Engenharia de Software Revisões Técnicas Formais Padrões e Procedimentos Garantia da Qualidade Medições Como obter a qualidade e a produtividade

(11)

Qualidade e Produtividade

Métodos de Engenharia de Software Revisões Técnicas Formais Padrões e Procedimentos Garantia da Qualidade Medições Normas e Modelos de Qualidade

Definem procedimentos para atingir a qualidade. Norma: ISO 15504, ISO 9000-3, ISO 9126

Modelos: CMM e CMMi

Como obter a qualidade e a produtividade

(12)

Qualidade e Produtividade

Métodos de Engenharia de Software Revisões Técnicas Formais Padrões e Procedimentos Garantia da Qualidade Medições Normas e Modelos de Qualidade Atividades de Testes Como obter a qualidade e a produtividade

(13)

Definições de Teste

Qual a melhor resposta?

Não há diferença entre testar e debugar

O objetivo do teste é provar que o software

funciona

O objetivo do teste é provar que o software não

funciona

O objetivo do teste não é provar nada, mas sim

reduzir o risco percebido dele não funcionar para um determinado valor

Testar não é um ato e sim uma disciplina mental

(14)

Definições de Teste

Qual a melhor resposta?

Não há diferença entre testar e debugar

O objetivo do teste é provar que o software

funciona

O objetivo do teste é provar que o software não

funciona

O objetivo do teste não é provar nada, mas sim

reduzir o risco percebido dele não funcionar para um determinado valor

Testar não é um ato e sim uma disciplina mental

(15)

Definições de Teste

Afirmações mais comuns sobre teste de software:Garantir que o programa corresponde à sua

especificação.

Descobrir defeitos de software.

Certifica-se de que o software não faz o que não

está proposto fazer.

Ter a confiança de que o software terá um

desempenho adequado.

Entender o risco existente em liberar um sistema

(16)

Definições de Teste

Algumas Definições Formais:

Teste é o processo de executar um software com

o objetivo de verificar se ele satisfaz requisitos específicos e de detectar erros [British Computer Society – SIGST].

Teste é uma atividade direcionada para avaliar

um atributo ou capacidade de um programa ou sistema e determinar se o mesmo satisfaz os resultados requeridos [Hetzel].

(17)

Definições de Teste

Algumas Definições Formais (cont.):

Teste é o processo de executar um programa ou

sistema com a intenção de encontrar erros [Myers].

Teste são técnicas de controle da qualidade baseadas na realização de experimentos

controlados [Staa].

Teste é o processo pelo qual se explora e

entende o estado dos benefícios e riscos associados com a versão de um sistema de software [Bach].

(18)

Motivações para Teste de Software

Por questão de qualidade

Para buscar a satisfação do cliente através da

conformidade do sistema entregue com os seus requisitos

Por questão de negócio

Para avaliar os riscos para o negócio associados

(19)

Motivações para Teste de Software

Por questão de segurança

Para evitar acessos indevidosPor questão de economia

Para diminuir o custo com manutenção corretivaEstatísticas indicam que 32% do tempo de uma

analista é gasto em retrabalho devido à

manutenção corretiva causada por falhas de especificação, projeto ou de implementação

(20)

Motivações para Teste de Software

Por questão de confiabilidade

Garantir que defeitos encontrados foram

corrigidos

A confiabilidade, um dos atributos de qualidade

de software, é a probabilidade de que o software não falhe num período de tempo de execução definido e num ambiente especificado.

(21)

Por que é Difícil Testar um Software?

O teste pode demonstrar a presença de defeitos,

mas não pode provar que eles não existem

Testar tudo (todas as combinações de entradas e

pré-condições) não é viável, exceto para casos triviais

Teste é um processo caro

(22)

Por que é Difícil Testar um Software?

Software é complexo, intangível e altamente

modificável

Teste lida com pessoas (testadores,

desenvolvedores, líderes de projeto, unidade de negócio, . . .)

Preocupação com teste somente na fase final do

projeto

Teste exige: conhecimento, recursos, planejamento,

tempo, compromisso e integração com outras áreas.

(23)

Investimento em Teste de Software

Existem vários exemplos onde a falha de um

sistema causa prejuízos diretos (dinheiro) ou indiretos (perda de mercado)

Esses exemplos ocorrem principalmente em

sistemas:

Onde o nível de segurança é críticoOnde o negócio é crítico

Onde as aplicações são críticas

(24)

Investimento em Teste de Software

Quando o Teste é considerado como um

investimento surgem perguntas como:

Será possível economizar recursos em algum

ponto para executar as atividades de Teste?

Que tipo de retorno terei sobre o meu

investimento em Testes?

Que tipo de técnicas de teste utilizarei para ter o

maior retorno sobre o investimento realizado?

(25)

Investimento em Teste de Software

Quando o Teste é considerado como um

investimento surgem perguntas como (cont.):

Com que tipos de risco eu preciso me

preocupar?

Quando devo investir em testes?Quando devo parar de testar?

De que forma os testes afetam o meu ciclo de

(26)

Investimento em Teste de Software

Quanto a Qualidade custa?

Cqualidade = Cconformidade + Cnão-conformidade

Custo da Conformidade: inclui Testes (encontrar

defeitos) e Garantia da Qualidade (prevenção de defeitos)

Custo da Não-Conformidade: inclui corrigir

defeitos, re-teste, imagem da empresa, garantia de contratos, . . .

(27)

Investimento em Teste de Software

(28)

Investimento em Teste de Software

O retorno de testes pode ser zero ou mesmo

negativo, se:

Gastar esforço em cenários que o usuário nunca

irá utilizar

Corrigir defeitos que o usuário nunca irá perceber

(29)

Investimento em Teste de Software

Os melhores investimentos são em testes que

encontrem defeitos que os usuários aprovarão sua correção. Mas para isso, é necessário:

Entender a utilização do sistema pelos usuáriosPlanejar os melhores testes

Relacionar os testes com os maiores riscos dos

(30)

Investimento em Teste de Software

Portanto:

Investir em testes pode reduzir de forma

significativa os custos de um software

Porém, só irá obter bons resultados se escolher os

testes corretamente:

Os melhores retornos são aqueles onde os

testes são focados nos maiores riscos

As atividades de teste devem ficar diluídas em

Referências

Documentos relacionados

Sendo assim, esse trabalho é um estudo de caso cujo a finalidade é identificar os riscos dos principais processos de uma Indústria farmacêutica através do desenvolvimento

Como se pode perceber, ao final dessa apreciação do brincar como instrumento para o desenvolvimento sociocognitivo, os brinquedos e as brincadeiras são objetos e atividades

O presente trabalho tem como objetivo geral avaliar a precisão do Modelo Digital de Terreno - MDT, gerado a partir dos dados obtidos por imagens digitais de um Veículo Aéreo

Resumo O presente artigo tem como objetivo analisar a importância do brincar para o desenvolvimento afetivo da criança de 0 a 6 anos, como também identificar as concepções

Em relação ao Respondente4 ele já havia usado a ferramenta em outra instituição antes de iniciar suas atividades na UTFPR Campus Pato Branco e é possível creditar sua

Neste trabalho foram analisados os dados coletados em perímetro urbano e rural no município de Serranópolis do Iguaçu com a finalidade de investigar e avaliar o

Obtivemos as respostas listadas a seguir: Sujeito 1: “Brincar na educação infantil é muito importante para o desenvolvimento da criança que nessa fase tem o lúdico como elemento

No Quadro 14, está a representação da incompatibilidade número 10 onde na modelagem BIM, conforme o projeto estrutural, a passagem da eletrocalha foi projetada a 2,97m