qualidade e teste de software - o que preciso saber
TRANSCRIPT
ABOUT ME !Kamilla Queiróz (MihQueiróz)
• Cearense adotada pelo Rio Grande do Sul• Analista de Testes @NeoGrid• Tecnóloga em Análise e Desenvolvimento de Sistemas• Pós-Graduando Teste e Qualidade de Software• Mantedora do Blog MihQueiroz.com.br• En.tu.si.as.ta e hóspede do Mundo
Contato:• Email: [email protected]• Blog: mihqueiroz.com.br• Twitter: twitter.com/MihQueiroz• Facebook: facebook.com/kamilla.queiroz• LinkedIn: linkedin.com/kamilla.queiroz• SlideShare: slideshare.net/kamilla.queirz
Primeiros Passos
• Qualidade de Software
• Teste de Software
• É importante testar? Porquê?
• Ciclo de Vida (Desenvolvimento Vs Testes)
Qualidade, o que eu entendo?
• O termo QUALIDADE é utilizado em diversas situações:– QUALIDADE de um restaurante• bom atendimento• refeições saborosas• ambiente organizado e higiênico
MAS ESSA NOÇÃO DE QUALIDADE PODE E MUDA DE PESSOA PARA PESSOA
• De acordo com a norma ISO 9000, a definição de QUALIDADE é:
‘QUALIDADE é o grau no qual um conjunto de características inerentes, satisfaz a requisitos’
E Qualidade de Software
• Esse termo não existe (ops!)
• Mas temos:
– GARANTIA DA QUALIDADE– CONTROLE DA QUALIDADE
Garantia da Qualidade (QA)
• É um processo de auditoria dos requisitos de qualidade e de resultados das medições;
• Visa garantir que sejam usados padrões de qualidade e definições operacionais;
Controle da Qualidade (QC)
• É um processo de monitoramento e registro de resultados das atividades de qualidade para avaliar o desempenho;
• Visa obter informações para recomendar mudanças que sejam necessárias;
Qualidade do Processo
• Afeta diretamente a qualidade dos produtos fornecidos
–desta forma, se o processo de DESENVOLVIMENTO DE SOFTWARE for BEM DEFINIDO as chances dos produtos que forem produzidos com base nele terem MELHOR QUALIDADE é alta.
PENSE NISSO...
• QUALIDADE DO PRODUTO é o que buscamos, a QUALIDADE DO PROCESSO é o meio para conseguirmos! – (amiga) Regina Maria Thienne Colombo / IMETRO
Custo da Qualidade
• Engloba todos os custos ocorridos no ciclo de vida de um produto – seja ele de: conformidade ou não-conformidade.
• Deve sempre ser visto como INVESTIMENTO
(amigo) Myers e sua regra 10
• Leia-se:
QUANTO ANTES (mais cedo) descobrimos e corrigimos um defeito MENOR SERÁ SEU CUSTO (mais barato).
Custo da Conformidade
• Custos com prevenção
• Custos com treinamento, planejamento, revisões e homologação
• Custos com inspeções
Custos da Não-Conformidade
• Custos de falha interna;
• Custos com retrabalho, análise de falhas, ações corretivas, atraso no cronograma;
Teste de Software
• Definições encontradas:
– ‘é analisar um programa com a intenção de descobrir erros e defeitos’ , (amigo) Myers.
– ‘é exercitar ou simular a operação de um programa ou sistema’, alguém por aí.
– ‘é avaliar se o software está fazendo o que deveria fazer, de acordo com seus requisitos, e não está fazendo o que não deveria fazer’, outro alguém por aí.
– ‘é qualquer atividade que a partir da avaliação de um atributo ou capacidade de um programa ou sistema seja possível determinar se ele alcança os resultados desejados’, Bill Hetzel.
• Em todo caso, Teste de Software é:
– uma das atividades dentro do processo de desenvolvimento de software;
– tem a finalidade de determinar se certo produto atingiu suas especificações e funcionou corretamente;
• E seu objetivo nada mais é que:
– Revelar o número máximo de falhas, com menor esforço;
– Identificar essas falhas e suas causas, para que as mesmas sejam corrigidas pela equipe de desenvolvimento;
• Quem trabalha com Teste de Software:
– Testador–Analista de Teste–Automatizador–Arquiteto de Teste– Líder de Teste–Gerente de Teste
• Lembrando – para exercer qualquer atividade das mencionadas é necessário:
– ser investigador– ser criativo– ser questionador– ser detalhista– ser pró-ativo
• Abrangência dos Testes– varia muito de quanto de prazo e custo pode-se
investir
• Se os testes forem executados apenas no fim do processo, a abrangência tende a ser menor, em comparação a se forem executados em andamento com o processo de desenvolvimento (desde o inicio);
• Os dois processos andando em paralelo (lado a lado) as chances de testar com maior capacidade e cobertura é muito maior;
Teste e Qualidade
• Algumas questões:– Teste é igual a qualidade?– Se testarmos, teremos qualidade?
Testes por si só não constroem a qualidade, mas podem fornecer confiança
na qualidade de software.
• Detalhe ae...
ERRO != DEFEITO != FALHA
É importante testar? Por quê?
• Alguns (poucos) dentre os vários motivos:
– questões de negócio– qualidade– custo – segurança– confiabilidade
• Quer mais (?)– o ser humano é passível de erro devido à:
• pressão de prazo• códigos complexos• complexidade na infraestrutura• mudanças na tecnologia• muitas interações de sistema
• Mais ainda (?)– falhas causadas por interferências do ambiente:• radiação• magnetismo• campos eletrônicos• poluição
Pois devido a isso podem causar falhas em software embarcado
e influenciar a execução pelas mudanças de condições de hardware.
Ciclo de Vida
• Atividades fundamentais:
– especificação– projeto e implementação– validação– evolução
• Especificação – etapa onde destina-se a estabelecer quais
funções são requeridas pelo sistema e as restrições sobre operação e o desenvolvimento do sistema.
– é nessa etapa onde há a produção de uma documentação de requisito, que é a especificação para o sistema.
– contempla quatro fases:
• estudo de viabilidade;
• levantamento e análise de requisitos;
• especificação de requisitos;
• validação de requisitos
Em qual dessas fases é passível atuação do Teste de Software?
• Projeto e implementação
– etapa da conversão de um especificação em um sistema executável;
– atividades contempladas:• projeto de arquitetura;• especificação abstrata;• projeto de interface;• projeto de componentes;• projeto de estrutura de dados;• projeto de algoritmo;
• Validação– etapa pela qual destina-se a mostrar que um
sistema está de acordo com suas especificações e que atende às expectativas do cliente;
• Evolução– etapa de melhorias e evoluções pelas quais o
sistema necessita evoluir para atender as necessidades mutáveis do cliente;
Validação e Verificação (V&V)
• Como dito (repetindo) – destina-se a mostrar que um sistema está de acordo com suas especificações;
• Tal processo envolve, verificar processos por meio inspeções e verificações em cada estágio do processo – desde a definição dos requisitos até o desenvolvimento do programa;
• Verificação – segundo a norma B87925, é descrito como um processo de avaliação de um sistema ou componente;
– Em outros termos – será que construímos o produto direito?
– Pergunta que cabe: O programa é livre de erros, faz o que deveria fazer?
• Validação – pela a norma B87925, é descrito como determinação da precisão dos produtos do desenvolvimento;
– Visto como – esse é o produto certo?
– Pergunta que cabe: É isso que você realmente quer?
Vamos relembrar?
• Qualidade de Software >> Garantia da Qualidade e Controle da Qualidade;
• Qualidade do Processo & Custo da Qualidade
• Regra 10 de Myers
• Teste de Software
• Papeis em Teste de Software
• Erro – Defeito – Falha
• Ciclo de Vida
• Validação & Verificação
Finito (?) !!
• Obrigado pela atenção!