teste de software introdução à qualidade

44
Teste de Software: Introdução à Qualidade Camilo Ribeiro Esp. SE, ISTQB, CBTS

Upload: camilo-ribeiro

Post on 01-Dec-2014

7.900 views

Category:

Technology


8 download

DESCRIPTION

Palestra realizada por Camilo Ribero no segundo semestre de 2010 para os alunos dos cursos de sistemas de informação e ciência da computação da PUC Minas, na Unidade São Gabriel

TRANSCRIPT

Teste de Software: Introdução à Qualidade

Camilo Ribeiro Esp. SE, ISTQB, CBTS

Consultor em arquitetura de testes e processos pela Caresoft Tecnologia;Líder de Qualidade e Processos pela Alltcom Sistemas;

Palestrante em universidades como PUC Minas, UNI-BH e UNA.Mais de quatro anos atuando em Teste de Software e Processos;

Participação em mais de 40 projetos de Software;Participação em projetos de implantação do CMMi (todos os níveis);

Graduado em Sistemas para Internet pela Faculdade Pitágoras;Pós graduado em Engenharia de Software pela UFMG;

Aluno da pós-graduação e pesquisa em Ciência da Computação na UFMG;Certificado como especialista em Teste de Software pelo ISTQB e ALATS;

Membro do comitê de inovação em Teste de Software ALATS;Mantedor do blog técnico www.bugbang.com.br;

Especialista em implementação e customização da ferramenta TestLink.

AgendaAgenda

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Breve introdução sobre qualidade e teste de softwareMercado de trabalho e papéis

Verificação, validação e QAMitos sobre teste de software

Introdução ao pensamento de testadorDerivando casos de teste de casos de uso

Técnicas de teste

O que é Qualidade?O que é Qualidade?

Qualidade é um conceito subjetivo que está relacionado diretamente às percepções de cada indivíduo. Diversos fatores como cultura, modelos mentais, tipo de produto ou serviço prestado, necessidades e expectativas influenciam diretamente nesta definição.

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

O que é teste de software?O que é teste de software?

• Testar é o processo de executar um programa ou sistema com a intenção de encontrar defeitos (teste negativo) (Myers, 1979)

• Testar é qualquer atividade que, a partir da avaliação de um atributo ou capacidade, permita determinar se o programa ou sistema obtém os resultados desejados (Hetzel, 1988)

•Testar é verificar se o software está fazendo o que deveria fazer, de acordo com seus requisitos, e se não está fazendo o que não deveria fazer (Rios, Cristalli, Moreira e Souza, 2003)

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

O que é teste de software?O que é teste de software?

Processo que consiste em todas as atividades do ciclo de vida, tanto estáticas quanto dinâmicas, voltadas para o planejamento, preparação e avaliação de produtos de software e produtos de trabalho relacionados a fim de determinar se eles satisfazem os requisitos especificados e demonstrar que estão aptos para sua finalidade e para a detecção de defeitos. (“Testing”, Glossário ISTQB 2007)

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Perfil do profissional de teste de softwarePerfil do profissional de teste de software

Pesquisa realizada pelo Cristiano Caetano em 2007 (pesquisa 2010 em andamento www.testexpert.com.br)Pesquisa Completa: “Cargos e Salários - Quanto ganha o profissional de teste e qualidade de software.pdf”

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Papéis no Rational Unified Process (RUP)Papéis no Rational Unified Process (RUP)

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Papéis e CargosPapéis e Cargos

Papel != Cargo

O RUP usa uma analogia onde os colaboradores de um projeto trocam de “chapéus” várias vezes durante o processo de desenvolvimento de software.

Se assume o papel de gerente de Configuração, não quer dizer que é um Gerente de projetos.

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Como o mercado informal classifica?Como o mercado informal classifica?

Liderança Gestão de projetos

OrganizacionalNegócios e Processos

TécnicaArquitetura de Software

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Certificação profissionalCertificação profissional

Certificação Brasileira de Teste de Software:Associação Latino-Americada de Teste de Software www.alats.org.br

Certified Tester Foundation Level;Certified Tester Advanced Level; International Software Testing Qualifications Boarder www.bstqb.org.br

Certified Associate in Software Testing (CAST);Certified Software Quality Analyst (CSQA);Certified Software Tester (CSTE):Quality Assurance Institutewww.qaibrasil.com.br/

Guia Completo para Certificações em Qualidade e Teste de Software - Versão 2008

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Custo aumenta exponencialmenteCusto aumenta exponencialmente

• Adiar testes de software

Custo relativo para corrigir um defeito. Adaptado de (BOEHM, 1981).

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Verificação, validação e QAVerificação, validação e QA

Se a sua pergunta é... então você está falando de:

Segui o processo? QA – Garantia de qualidade

Fiz a coisa corretamente? Verificação

Fiz a coisa certa? Validação

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Quality Assurance (Garantia de Qualidade)Quality Assurance (Garantia de Qualidade)

“Garantir que o processo seja seguido adequadamente e que seus produtos de trabalho sejam elaborados nos momentos adequados.”

- CMMi for Development 1.2

Ligado ao processo da organização

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

VerificaçãoVerificação

“O propósito da verificação é demonstrar que o produto ou seus produtos de trabalho atendem aos seus requisitos específicos.”

- CMMi for Development 1.2

Ligado a Sintaxe, o como . . .

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

ValidaçãoValidação

“O objetivo da validação é demonstrar que um componente do produto cumpre o seu uso pretendido quando colocado em seu ambiente pretendido.”

- CMMi for Development 1.2

Semântica, o que . . .

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Mitos sobre teste de softwareMitos sobre teste de software

1.Testar é fácil: Entre 20 a 50% do esforço de um projeto é teste de software

2.Testador é aquele que não aprendeu a programar: E os engenheiros (Técnicos)? Analistas de requisitos, negócios, gerentes, coordenadores e outros envolvidos também não aprenderam a programar?

Engenharia de software é trabalho em equipe!

3.O Teste é uma fase após todas as outras: Teste de software participar desde a pré venda dos projetos de software até a produção e remoção .

4.Testadores são menos qualificados, ou podem ser estagiários: Tudo bem, se acredita que o seu cliente pode receber os defeitos provenientes de testes mal planejados, desenhados, executados e medidos.

5.Testes são dispensáveis em projetos com tempo e custo estourando: Além do tempo e do custo, a qualidade também ficará prejudicada?

6.Todo BUG é culpa do desenvolvedor: A literatura e a experiência nos mostram que menos da metade dos defeitos do software, são provenientes de erros dos programadores.

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Transparência do testeTransparência do teste

Requisitos / Negócios (Abstração)

Requisitos / Negócios (Abstração)

Teste de caixa brancaTeste baseado na análise da estrutura interna de um componente ou sistema.

(Glossário ISTQB)

Teste de caixa pretaTeste, funcional ou não funcional, sem referência à estrutura interna do componente ou do sistema.

(Glossário ISTQB)

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Níveis, técnicas e tipos de testeNíveis, técnicas e tipos de teste

Técnicas de Teste

Nível de Teste

Dimensões da Qualidade segundo o RUPFuncionalidade Confiabilidade Usabilidade Desempenho Suportabilidade

Alguns tipos de Teste

Caixa Branca

Teste de Unidade

Teste de Integração Segurança Integridade Carga ConfiguraçãoCaixa

CinzaTeste de Sistema Funcional Regressão Usabilidade

Caixa Preta Teste de

Aceitação Volume Maturidade Estresse Instalação

ComoComoTestarTestar

QuandoQuandoTestarTestar

O queO queTestarTestar

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

O que posso usar para criar testes?O que posso usar para criar testes?

Requisitos

Estórias de UsuárioDados

Casos de uso

Diagramas da UML

Software fechado

Bugs Experiência

Código Fonte

Código Fonte

ChecklistChecklist

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Pense como um testadorPense como um testador

Pensar nas variáveis

Pensar no objetivoAtende os requisitos funcionais?

Pensar no ambienteFunciona do mesmo jeito em todos os browsers ou SOs?

Pensar nos requisitos implícitos e não funcionaisEstá fácil de entender, está rápido?

Pensar no clienteSe eu fosse o cliente eu queria ver . . .

Pensar possíveis problemasAcho que com esses dados pode dar problema

Pensar em definiçõesSe eu fosse o cliente, entenderia esse label?

Pensar no uso em diferentes configurações ou ambientesNo meu IPhone funciona, mas e no BlackBarry?

Seja criativo, detalhista e crítico

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

O que testar em um copo?O que testar em um copo?

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

O que testar em um copo?O que testar em um copo?

Testar o volume (Capacidade)? Testar a transparência? Testar a durabilidade? Testar resistência a frio? Testar resistência a calor? Testar resistência a sons? Testar a resistência física? Testar como fica quando quebrado? Testar o peso? Testar as dimensões? Testar o material usado (Vidro, cristal, outro)? Testar a espessura? . . . . .

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Pirâmide de dependência Pirâmide de dependência

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Caso de UsoCaso de Uso

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Cenários de TesteCenários de Teste

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Casos de testeCasos de teste

A, B, C, D, E

A, B, C, D, E

M, N, O, P, QM, N,

O, P, Q

V, W, X, Y, ZV, W, X, Y, Z

Cenário 3 do Caso de Uso 27

Caso de Teste 1

Caso de Teste 2

Caso de Teste 3

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Elaborando Casos de teste a partir de casos de usoElaborando Casos de teste a partir de casos de uso

1. Leitura do caso de uso2. Desenho dos fluxos do caso de uso

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Elaborando Casos de teste a partir de casos de usoElaborando Casos de teste a partir de casos de uso

3.Identificação das regras e dos momentos em que essas regras são ativadas

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Elaborando Casos de teste a partir de casos de usoElaborando Casos de teste a partir de casos de uso

4.Identificação dos cenários de Teste

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Elaborando Casos de teste a partir de casos de usoElaborando Casos de teste a partir de casos de uso

Cenários e Procedimentos de Teste CT01CT01 CT02CT02 CT03CT03 CT04CT04

CT05CT05 CT06CT06 CT07CT07 CT08CT08

CT09CT09 CT10CT10 CT11CT11 CT12CT12

CT14CT14 CT15CT15 CT16CT16CT13CT13

5.Identificação dos cenários de Teste

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Valores limitesValores limites

Baseado em intervalos matemáticos, onde, devemos testar pelo menos os valores nas extremidades dos intervalos.

Pode ser representado por gráficos, por conjuntos de valores ou por expressões matemáticas.

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Valores limitesValores limites

Todos veículos fabricados entre 15/01/2009 e 20/04/2009 são chamados para recall:

Todos veículos com chassi maior ou igual a WAUZZZ44ZGN082819 e menor que WAUZZZ44ZGN095821 são chamados para recall:

CT0NCT0NCT0NCT0N

CT0NCT0NCT0NCT0N

CT0NCT0NCT0NCT0N

14/01/2009 – false15/01/2009 – false16/01/2009 – true

19/04/2009 – true 20/04/2009 – false 21/04/2009 – false

WAUZZZ44ZGN082818 – false WAUZZZ44ZGN082819 – true WAUZZZ44ZGN082820 – true

WAUZZZ44ZGN095820 – true WAUZZZ44ZGN095821 – false WAUZZZ44ZGN095822 – false

CT0NCT0NCT0NCT0N

CT0NCT0NCT0NCT0N

CT0NCT0NCT0NCT0N

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Valores limitesValores limites

Imagine um sistema onde cada usuário pode publicar alguns avisos para serem exibidos na intranet, um telão ou em um outro dispositivo qualquer. Logado, o usuário informa qual o aviso, e qual o periodo que o aviso deve ser exibido. Ele pode cadastrar quantos avisos desejar, mas, no caso de uso de cadastro de avisos, existe uma regra:

R001 - Um usuário não pode cadastrar dois avisos ocupando o mesmo período.

Como testar essa regra?

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Valores limitesValores limites

Inserir valores válidos (fora dos limites)Inserir um valor exatamente igual

Inserir um valor qualquer

Inserir valores em cada fronteira

Inserir valores dentro dos limites

Inserir valores que contenham os limites

Testar novamente com outro usuário

Agora repedir para a operação de atualização

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Partição de EquivalênciaPartição de Equivalência

Baseado no princípio matemático dos conjuntos, onde, devemos testar pelo menos um elemento de cada conjunto distinto.

Pode ser representado por gráficos, por conjuntos de valores ou por expressões de álgebra relacional.

CT01“A”

CT01“A”

CT02“AB”CT02“AB”

CT03“B”

CT03“B”

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Partição de EquivalênciaPartição de Equivalência

Qualquer veículo pode ser alugado:

VeículosVeículos

CiclomotoresCiclomotoresMotoneta

Caminhão CaminhãoCarroCarro

ÔnibusÔnibusMotocicleta

HelicópteroHelicóptero

1 de cada subconjunto

1 de cada subconjunto

Pick-up

Pick-up

CT01CarroCT01Carro

CT02Pick-up

CT02Pick-up

CT03Caminhão

CT03Caminhão

CT04ÔnibusCT04

Ônibus

CT05Motocicleta

CT05Motocicleta

CT06Motoneta

CT06Motoneta

CT07Helicóptero

CT07Helicóptero

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Teste de SistemaTeste de Sistema

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Um sistema é formado por várias funcionalidades ou “casos de uso”

Teste de SistemaTeste de Sistema

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

Cada funcionalidade do sistema possui diversos fluxos

Teste de SistemaTeste de Sistema

Integra cenários de várias funcionalidades para realizar um processo de negócio!

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

SMQS – Seminário Mineiro de Qualidade de SoftwareSMQS – Seminário Mineiro de Qualidade de Software

Camilo Ribeiro – [email protected] Ribeiro – [email protected]

http://www.smqs2010.base2.com.br/programacao/

Dúvidas?

[email protected]://www.bugbang.com.br

Muito Obrigado!

ReferênciasReferências

• Myers, Glenford J. (1979). The Art of Software Testing. John Wiley and Sons. ISBN 0-471-04328-1.

• B. Hetzel (1988). "The Growth of Software Testing“• •RIOS, E., MOREIRA, T., SOUZA, A., CRISTALLI, R . Base de Conhecimento em Teste de

Software 2ª Edição. Martins, 2007.• RUP 7.5, IBM• ZIELCZYNSKI, Peter, Traceability from Use Cases to Test Cases,

http://www.ibm.com/developerworks/rational/library/04/r-3217/ IBM Rational Technical library, 2006

• BOEHM, B.W., 1981, Software Engineering Economics, Prentice Hall.• ISQTQB Glossário de termos usados no Teste de Software Versão 1.0• Caetano, Cristiano. Quanto ganha um profissional de teste e qualidade de software?

http://testexpert.com.br/?q=node/231 - 2007• Martinho, Fábio – Guia Completo para certificãções em qualidade e teste de software –

Versão 2008 - http://testexpert.com.br/?q=node/1080 - 2008• CMMI Product Team. CMMI® for Development, Version 1.2