O documento discute os conceitos fundamentais de qualidade e teste de software. Primeiro, define qualidade de software como garantia da qualidade e controle da qualidade. Em seguida, explica que teste de software é importante para revelar erros e reduzir custos, e deve ocorrer ao longo do ciclo de vida do desenvolvimento de software. Por fim, descreve os principais papéis e documentos relacionados a testes de software.
DevQA - Da zona de conforto ao comprometimento com a qualidade
Qualidade e Teste de Software: O que preciso saber
1. Qualidade e Teste de Software
O que preciso saber?
por Kamilla Queiróz
2. Kamilla Queiróz
• Tecnóloga em Análise e Desenvolvimento de
Sistemas – Unitins
• Pós-Graduanda em Qualidade e Teste de
Software pela UNINASSAU – PE
3. Kamilla Queiróz
• Coordenadora e Co-fundadora do GTS-CE
•• CCeerrttiiffiiccaaddaa CCBBTTSS
• Analista de Testes Pleno – Instituto Atlântico
4. Primeiros Passos
• Qualidade de Software
•• TTeessttee ddee SSooffttwwaarree
• É importante testar? Porquê?
• Ciclo de Vida (Desenvolvimento Vs Testes)
5. O que é Qualidade ?
• O termo QUALIDADE é utilizado em diversas
situações:
– QUALIDADE de um restaurante
• bom atendimento
• refeições saborosas
• ambiente organizado e higiênico
6. O que é Qualidade ? (2)
MAS ESSA NOÇÃO DE QUALIDADE PODE
E MUDA DE PESSOA PARA PESSOA
7. O que é Qualidade ? (3)
• 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”
8. Qualidade de Software
• Esse termo não existe (ops!)
• Mas temos:
– GARANTIA DA QUALIDADE
– CONTROLE DA QUALIDADE
9. Garantia da Qualidade (QA)
• É um processo de auditoria dos requisitos de
qualidade e de resultados das medições;
• Visa garantir que sseejjaamm uussaaddooss ppaaddrrõõeess ddee
qualidade e definições operacionais;
10. 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;
11. 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.”
12. PENSE NISSO...
• QUALIDADE DO PRODUTO é o que
buscamos, a QUALIDADE DO PROCESSO é
o meio para conseguirmos! –– ((aammiiggaa)) RReeggiinnaa
Maria Thienne Colombo / INMETRO
13. 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
15. • Leia-se:
QUANTO ANTES (mais cedo) descobrimos e
corrigimos um ddeeffeeiittoo MMEENNOORR SSEERRÁÁ SSEEUU
CUSTO (mais barato).
16. Custo da Conformidade
• Custos com prevenção
• Custos com treinamento, ppllaanneejjaammeennttoo,,
revisões e homoligação
• Custos com inspeções
17. Custos da Não-Conformidade
• Custos de falha interna;
• Custos com retrabalho, análise ddee ffaallhhaass,,
ações corretivas, atraso no cronograma;
18. Teste de Software
• Definições encontradas:
– ‘é analisar um programa com a intenção de
descobrir erros e defeitos’ ,, ((aammiiggoo)) MMyyeerrss..
– ‘é exercitar ou simular a operação de um
programa ou sistema’, alguém por aí.
19. – ‘é 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.
20. • Em todo caso, Teste de Software é:
– uma das atividades dentro do processo de
desenvolvimento de software;
– tem a finalidade de determinar ssee cceerrttoo pprroodduuttoo
atingiu suas especificações e funcionou
corretamente;
21. • E seu objetivo nada mais é que:
– Revelar o número máximo de falhas, com menor
esforço;
– Identificar essas falhas e suas causas, ppaarraa qquuee aass
mesmas sejam corrigidas pela equipe de
desenvolvimento;
22. • Quem trabalha com Teste de Software:
– Testador
– Analista de Teste
– Automatizador
–– AArrqquuiitteettoo ddee TTeessttee
– Líder de Teste
–Gerente de Teste
23. • Lembrando – para exercer qualquer atividade
das mencionadas é necessário:
–– sseerr iinnvveessttiiggaaddoorr
– ser criativo
– ser questionador
– ser detalhista
– ser pró-ativo
24. • 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;
25. 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.
27. É importante testar? Por quê?
• Alguns (poucos) dentre os vários motivos:
– questões de negócio
–– qquuaalliiddaaddee
– custo
– segurança
– confiabilidade
28. • Quer mais (?)
– o ser humano é passível de erro devido à:
•• pprreessssããoo ddee pprraazzoo
• códigos complexos
• complexidade na infraestrutura
• mudanças na tecnologia
• muitas interações de sistema
29. • 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.
30. Ciclo de Vida
• Atividades fundamentais:
– especificação
– projeto ee iimmpplleemmeennttaaççããoo
– validação
– evolução
31. • Especificação
– etapa onde destina-se a estabelecer quais
funções são requeridas pelo sistema e as
restrições sobre operação ee oo ddeesseennvvoollvviimmeennttoo ddoo
sistema.
– é nessa etapa onde há a produção de uma
documentação de requisito, que é a especificação
para o sistema.
32. – 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?
33. • Projeto e implementação
– etapa da conversão de um especificação em um
sistema executável;
– atividades ccoonntteemmppllaaddaass::
• projeto de arquitetura;
• especificação abstrata;
• projeto de interface;
• projeto de componentes;
• projeto de estrutura de dados;
• projeto de algoritmo;
34. • Validação
– etapa pela qual destina-se a mostrar que um
sistema está de acordo com suas especificações e
que atende às expectativas ddoo cclliieennttee;;
• Evolução
– etapa de melhorias e evoluções pelas quais o
sistema necessita evoluir para atender as
necessidades mutáveis do cliente;
35. 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;
36. • 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?
37. • 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?
39. Um extra?
• Documentação (os mais importantes):
– Planos de Teste
• é uma maneira de documentar oo pprroojjeettoo ddee tteessttee ––
definindo o nível de cobertura que deverá ser
alcançado;
– Casos de Teste
• é a especificação mais detalhada do teste, com a
pormenorização de campos de telas, formulários e etc.
40. Vamos relembrar?
• Qualidade de Software >> Garantia da
Qualidade e Controle da Qualidade;
• Qualidade do Processo & CCuussttoo ddaa QQuuaalliiddaaddee
• Regra 10 de Myers
• Teste de Software
41. • Papeis em Teste de Software
• Erro – Defeito – Falha
•• CCiicclloo ddee VViiddaa
• Validação & Verificação
• Modelo V
• Documentação
42. Finito (?) !!
• Obrigado pela atenção!
• Quer aprofundar e entender mais?
•• CCoonnttaattoo
– q.kamilla@gmail.com
– http://mihqueiroz.com.br/resume.html