Passos para se ter um projeto com
Qualidade
Willian Justen
Desenvolvedor
Visão do cliente
- Bonito
- Tudo Funcionando
- Barato
Visão do chefe
- Não demora muito
- Gera lucros
- Cliente feliz
Visão do programador
Qualidade de Software
McCall
Operação
- Corretitude - Ele faz o que foi pedido?
- Confiabilidade - Ele é preciso?
- Eficiência - Ele tem boa performance?
- Integridade - Oferece segurança?
- Usabilidade - Fácil de usar?
- Adaptabilidade - Ele se adapta as necessidades do usuário?
Transição
- Portabilidade - Consigo movê-lo facilmente?
- Reusabilidade - Posso utilizar parte dele?
- Interoperabilidade - Ele trabalha com outros sofwares em conjunto?
Revisão
- Manutenibilidade - Fácil de corrigir?
- Flexibilidade - Fácil de mudar?
- Testabilidade - Posso testar seu funcionamento?
Como atingir esses fatores no Desenvolvimento?
Escrita do código - variáveis
- Utilize nomes semânticos. - Nada de variável "a"
- Nomes fáceis de escrever e ler. - Muito menos "xkttfjzyal"
- Use substantivos para classes e objetos. - User, Product
- Use verbos para métodos. - getUser, deleteProduct
Escrita do código - métodos
- Devem ser pequenos.
- Possuir uma única responsabilidade.
- Permitir reuso.
- Fácilmente testáveis.
#2
Don't comment bad code, rewrite it.
P. J. Plaugher
#3
Deixe a área de acampamento mais limpa do que encontrou.
#4
Tenha carinho no início
Ou
Conviva com os débitos técnicos.
Por que testar?
- Ajuda a encontrar bugs.
- Facilita refatoração.
- Gera documentação.
- Melhora o design do código.
- Garante que o trabalho tenha qualidade.
TDD
Microtests
Um microteste é um simples e pequeno teste automatizado que prova o comportamento
de um único método.
- Evite ruído entre os testes (Isolamento).
- Escolha os melhores asserts para cada momento.
- Procure usar Mocks para chamadas externas.
- Utilize dele para organizar o design de seu código.
Testes de Integração
É um teste para validar se os componentes estão funcionando em conjunto.
- Cuidado para não criar um teste inútil.
- Isole o máximo possível dos ambientes.
Testes de Aceitação
O teste de aceitação é realizado com o propósito de avaliar a qualidade externa do produto e, na medida do possível, também a qualidade em uso.
- Valide apenas o fluxo de funcionamento do projeto.