O que é Qualidade de Software?
Analisando a qualidade de software podemos ter duas visões:
A Visão Técnica
“Qualidade de software é a conformidade com requisitos funcionais e de desempenho explicitamente declarados, padrões de desenvolvimento explicitamente documentados e características implícitas, que são esperadas em todo software desenvolvido profissionalmente.” PRESSMAN, 2002
Ou seja, tudo aquilo que foi detalhado no levantamento das necessidades. Neste momento o teste é importante, pois devemos testar se aquilo que o cliente pediu é realmente o que está sendo entregue pelo sistema.
A Visão Subjetiva
A qualidade no software diz respeito também ao grau de satisfação em que os usuários avaliam determinado produto ou serviço, tornando a qualidade algo subjetivo e pessoal.
Esse item está muito voltado a percepção do usuário, algo que não pode ser medido por testes, sendo algo bem subjetivo. Envolvendo além dos aspectos funcionais, a usabilidade, prazos, etc.
Características de Qualidade de Software
Para garantir a qualidade, podemos responder um conjunto de perguntas agrupados em 5 pilares, que vão muito além de puramente teste:
Funcionalidade
- Propõe-se a fazer o que é apropriado?
- Gera resultados corretos ou conforme acordados?
- É capaz de interagir com os sistemas especificados?
- Evita acesso não autorizado, acidental ou deliberado a programas de dados?
- Está de acordo com normas e convenções previstas em leis e descrições similares?
Manutenibilidade
- É fácil encontrar uma falha quando ocorre?
- É fácil modificar e remover defeitos?
- Há grandes riscos de bugs quando se faz alterações?
- É fácil adaptar a outros ambientes sem aplicar outras ações ou meios além dos fornecidos para esta finalidade no software considerado?
Usabilidade
- É fácil entender os conceitos utilizados?
- É fácil apreender a usar?
- É fácil de operar e controlar a operação?
Eficiência
- Quanto recurso utiliza?
- Qual é o tempo de resposta e de processamento?
Portabilidade
- É fácil adaptar a outros ambientes sem aplicar outras ações ou meios além dos fornecidos para esta finalidade no software considerado?
- É fácil instalar em outros ambientes?
- É fácil substituir por outro software?
- Está de acordo com padrões ou convenções de portabilidade?
Processo de Desenvolvimento com Qualidade
O processo de qualidade envolve o time todo durante todo o processo de desenvolvimento.
Durante a análise de negócio há uma interação, já que o analista executa testes voltados ao negócio, validando se aquilo que o desenvolvedor implementou atende às necessidades do negócio.
Já na análise e desenvolvimento de sistemas, são desenvolvidos cenários para esclarecer as dúvidas dos desenvolvedores, a criação de automações para os testes, objetivando dar uma maior agilidade no futuro além de evitar repetições desnecessárias.
Finalmente o teste é executado na qualidade, com isso os riscos de problemas são mitigados ao extremo.
Todo esse modelo roda dentro de sprints, que já possuem temos para os testes e validações especificados no planejamento, uma vez que as métricas já estão definidas, hoje, 30% do valor do tempo diz respeito à verificação e testes.
Conforme o desenvolvimento vai evoluindo, os cenários de testes e validações são automatizados pela equipe te automação da qualidade, enriquecendo assim o conhecimento e a habilidade de validar a implementação.
Artefatos de Apoio à Qualidade
Existem alguns artefatos que ajudam muito na garantia da qualidade, eles são incrementados conforme a evolução do produto. Alguns artefatos usados hoje no time de Legais do ERP:
- Análise de negócio: detalhamento do que será desenvolvido para entender o negócio do cliente. Esta é a principal etapa do desenvolvimento, pois aqui são levantadas as necessidades do cliente pelo analista.
- Mapas mentais de testes: um detalhamento dos testes executados em cada módulo.
- Base referência da qualidade: contém configurações referentes às novas funcionalidades, e conformidades com a lei.
- Análise de erros: retrospectiva para entender o que foi bom e ruim, melhorando continuamente o processo de validação/testes.
- Novas automações: erros encontrados e novas automações para novos processos (tendo um template padrão), sendo usadas hoje 2 ferramentas:
- Selenium: testas as aplicações WEB.
- TestComplete: testa as aplicações desktop.
Lembrando que isso tudo é embasado em uma análise de negócio detalhada, que contempla o máximo possível de referências para testes. Hoje o próprio SISCON oferece esse recurso, possibilitando o registro dentro da própria SMS.
Adicionando a isso, o ERP hoje possui um processo de entrega contínua, baseado em 4 etapas que garantem a qualidade:
- Testes em branch RC (release candidate) durante desenvolvimento.
- Merge na release de desenv apenas do que está OK.
- Testes automatizados na release de desenv com todas as implementações.
- Entrega do Pacote através do processo de entrega de release.
Para Saber Mais
Quer saber mais sobre qualidade? Na wiki, temos um artigo que explica todo o processo de qualidade: Guru da Qualidade.
Temos também um BE.TECH inteiro sobre o assunto gravado pela Margareth Parey Valli, confira:
Gostou deste post? Deixa seu comentário, te vejo na próxima publicação, um abraço,
Danton C. Franco Junior
#TimeTec