Ciências da computação dia 183
Engenharia de software --- qualidade de software
Qualidade de software
- modelos de qualidade (semelhante ao ISO) → CMMI, MPS.BR
- trabalho com qualidade = produto de qualidade
- implica: um software confiável, sem defeitos, acessível, seguro, portável, interoperável(sistema capaz de se comunicar com outros)
- pode ser algo subjetivo ao cliente, sendo necessário estipular as expectativas e tentar quebra-las
- gerenciamento total da qualidade → atender as expectativas do cliente; desenvolver processos para melhoria constante
- para garantir a qualidade → usar métodos, técnicas, ferramentas, versionamento, padrões, métricas, registros, etc.
- controle de qualidade → evitar que produtos defeituosos sejam entregues
- garantia de qualidade → fazer o software com o minimo de defeitos
- avaliação → classificação dos processos/produtos
- auditoria → verificar se o produto segue os padrões/normas através de evidências de testes, observações, medições, etc.
Teste de software
- objetivo é encontrar erros, e não fazer os testes passarem
- Falha → software não consegue executar sua função (aparente ao usuário)
- Falta → causa de uma falha
- Erro → instabilidade que vem de uma falta e pode se tornar uma falha
- Dados de teste → amostra do que seria uma entrada real
- Casos de teste → cenários de execução usando os dados de teste e sua saída esperada
- Eficácia dos testes → quanto mais erros você consegue descobrir com o menor esforço
- Teste funcional(caixa preta, black box) → coloca o software para funcionar e vê como ele age com as entradas (analisa partes pequenas do software, como funções, requisitos)
- Teste Estrutural(caixa branca, white box) → Baseado no código, analisá o funcionamento interno (complexidade ciclomática, big O, etc)
Técnicas Para testes black box
- partição por equivalência → quando os possíveis dados de entrada estão em blocos de válidos e inválidos, então pega-se alguns dados validos e inválidos para avaliar
- análise de valor limite → quando seus dados também estão divididos em blocos de válidos e inválidos, mas dessa vez você pega aqueles que estão no limite entre um bloco e outro
- Tabela de decisão → tabela criada a partir das regras de negócio, visando testar todos os casos possíveis (diferentes combinações de entradas)
Técnicas para testes White box
- complexidade ciclomática → vê a quantida de desvios do fluxo principal do programa (quantidade de ifs,for, while, etc). Nesses casos é necessário criar testes para cada caminho possível. Para isso podemos usar uma espécie de autômato, e o numero de caminhos é = numero de transições (E) --- número de estados (N) + 2
V = E --- N + 2