motivações para se testar o software

40
Motivações para se testar o software Fernando Fabricio dos Santos

Upload: fernando-fabricio

Post on 12-Apr-2017

91 views

Category:

Software


2 download

TRANSCRIPT

Motivações para se testar o softwareFernando Fabricio dos Santos

Qual a maior motivação para realizar testes?

Expectativa

Realidade

Testes são feitos na vida real?

Pessoas fazem cagadas!

- Pneumáticos- Resistência- Elétricos- Químicos- Impacto- Emissão de poluentes

Indústrias realizam muitos testes

- Pneumáticos- Resistência- Elétricos- Químicos- Impacto- Emissão de poluentes

Indústrias realizam muitos testes

- Pneumáticos- Resistência- Elétricos- Químicos- Impacto- Emissão de poluentes

Indústrias realizam muitos testes

Apollo 1

Não era sobre software?

“Encontrar e corrigir um problema de software após a entrega é muitas vezes, 100 vezes mais caro do que encontrar e corrigir durante a fase de design e requisitos.”

Identificar e corrigir problemas graves depois da entrega pode ser 100 vezes mais custoso que no desenvolvimento.

Esforço para identificar e corrigir problemas

“Cerca de 40-50% do esforço num projeto de software é gasto em retrabalho, o qual é possível evitar.”

- Grande quantidade do trabalho realizado para execução de uma tarefa é desperdiçado, este desperdício pode variar de 40 a 50%

- Quanto maior a maturidade de um time, quanto maior o envolvimento dos personagens do processo no desenvolvimento e quanto maior a interação desses elementos menor é a quantidade de esforço desperdiçado

Quantidade de esforço desperdiçado

“Cerca de 80% de esforço que poderia ser evitado vem de 20% dos defeitos encontrados.”

- A maior parte do esforço que poderia ser evitado vem de um pequeno número de defeitos de software, que pode ser definido como o trabalho feito para mitigar os efeitos de erros ou para melhorar desempenho do sistema.

- Alguns esforços são simplesmente inevitáveis, por exemplo, o trabalho decorrente de adaptação, manutenções preventivas ou alterações solicitadas pelo usuário.

- Os defeitos que causam grandes quantidades de retrabalho são provavelmente aqueles que "quebram" a arquitetura ou que são considerados "inapropriados" tarde no processo de desenvolvimento.

Defeitos causando desperdício

“Análise por pares pode pegar 60% dos defeitos.”

- Revisão de código pode pegar mais de metade dos erros de um produto, independente do nível de maturidade da organização ou da fase que foi aplicado.

- O conhecimento sobre o desenvolvimento é difundido na empresa.

- Força o desenvolvimento de um código limpo e que seja de fácil interpretação.

Code review

OK, e os testes?

Pessoas fazem cagadas!

- O código deve ser particionado de maneira com que as lógicas implementadas possam ser testadas sem dependências de forma isolada.

- Menor custo de execução.

- Evitam regressão.

- Motiva refatoração.

- Garante que alterações não vão ter influências sobre as “unidades” do sistema

Base - Testes unitários

- Verifica comportamentos do software quando executado junto a outras aplicações ou componentes.

- Interage entre as camadas da aplicação.

- Demoram mais para serem executados.

- Exigem um custo computacional maior para sua execução.

Testes integrados

- Testa a funcionalidade final, ou tentam reproduzir um comportamento específico.

- Navegam ou utilizam a aplicação como um cliente.

- Demoram MAIS para serem executados.

- Exigem um custo computacional MAIOR para sua execução.

Testes de aceitação e interface

Testes manuais

Pessoas fazem cagadas!

Testes manuais- Exploração.

- Identificar comportamentos para serem reproduzidos em testes automatizados.

- Precisa falar que são MAIS CUSTOSOS que os outros?

Dúvidas?