what is software quality assurance
O que é garantia de qualidade de software?
Garantia de qualidade de software (SQA) é um processo que garante que todos os processos, métodos, atividades e itens de trabalho da engenharia de software sejam monitorados e atendam aos padrões definidos. Esses padrões definidos podem ser um ou uma combinação de qualquer um, como ISO 9000, modelo CMMI, ISO15504, etc.
O SQA incorpora todos os processos de desenvolvimento de software, desde a definição dos requisitos até a codificação até o lançamento. Seu principal objetivo é garantir a qualidade.
O que você aprenderá:
- Plano de Garantia de Qualidade de Software
- Atividades SQA
- Padrões de garantia de qualidade de software
- Elementos de garantia de qualidade de software
- Técnicas SQA
- Conclusão
- Leitura recomendada
Plano de Garantia de Qualidade de Software
Abreviado como SQAP, o plano de garantia de qualidade de software compreende os procedimentos, técnicas e ferramentas que são empregadas para garantir que um produto ou serviço esteja alinhado com os requisitos definidos no SRS (especificação de requisito de software).

O plano identifica as responsabilidades de SQA de uma equipe, lista as áreas que precisam ser revisadas e auditadas. Ele também identifica os produtos de trabalho SQA.
perguntas e respostas da entrevista da rede pdf
O documento do plano SQA consiste nas seções abaixo:
- Seção de propósito
- Seção de referência
- Seção de gerenciamento de configuração de software
- Relatório de problemas e seção de ação corretiva
- Seção de ferramentas, tecnologias e metodologias
- Seção de controle de código
- Registros: seção de coleta, manutenção e retenção
- Metodologia de teste
Atividades SQA
Dada a seguir está a lista de atividades SQA:
# 1) Criação de um Plano de Gerenciamento SQA:
A atividade mais importante inclui estabelecer um plano adequado sobre como o SQA será realizado em seu projeto.
Junto com a abordagem de SQA que você vai seguir, quais atividades de engenharia serão realizadas, e também inclui a garantia de que você tenha uma combinação certa de talentos em sua equipe.
# 2) Definir os pontos de verificação:
A equipe SQA estabelece diferentes pontos de verificação de acordo com os quais avalia a qualidade das atividades do projeto em cada ponto de verificação / estágio do projeto. Isso garante inspeção de qualidade regular e trabalho de acordo com o cronograma.
# 3) Aplicar técnicas de engenharia de software:
A aplicação de algumas técnicas de engenharia de software ajuda um designer de software a atingir especificações de alta qualidade. Para coletar informações, um designer pode usar técnicas como entrevistas e FAST (Functional Analysis System Technique).
Posteriormente, com base nas informações coletadas, o designer de software pode preparar a estimativa do projeto usando técnicas como WBS (estrutura analítica do trabalho), SLOC (linha de código de origem) e estimativa de FP (ponto funcional).
# 4) Execução de revisões técnicas formais:
Um FTR é feito para avaliar a qualidade e o design do protótipo.
Nesse processo, é realizada uma reunião com a equipe técnica para discutir os reais requisitos de qualidade do software e a qualidade do projeto do protótipo. Esta atividade ajuda a detectar erros na fase inicial do SDLC e reduz o esforço de retrabalho nas fases posteriores.
# 5) Ter uma estratégia de multitestes:
Por estratégia de multitestes, queremos dizer que não se deve confiar em nenhuma abordagem de teste única, em vez disso, vários tipos de teste devem ser realizados para que o produto de software possa ser testado bem de todos os ângulos para garantir melhor qualidade.
# 6) Reforçando a adesão ao processo:
Esta atividade insiste na necessidade de aderência ao processo durante o processo de desenvolvimento de software. O processo de desenvolvimento também deve seguir os procedimentos definidos.
Esta atividade é uma mistura de duas subatividades que são explicadas em detalhes a seguir:
(i) Avaliação do Produto:
Esta atividade confirma que o produto de software está atendendo aos requisitos que foram descobertos no plano de gerenciamento do projeto. Ele garante que os padrões definidos para o projeto sejam seguidos corretamente.
(ii) Monitoramento de Processo:
Esta atividade verifica se as etapas corretas foram realizadas durante o desenvolvimento do software. Isso é feito comparando as etapas realmente executadas com as etapas documentadas.
# 7) Mudança de controle:
Nesta atividade, usamos uma combinação de procedimentos manuais e ferramentas automatizadas para ter um mecanismo de controle de alterações.
Ao validar as solicitações de mudança, avaliando a natureza da mudança e controlando o efeito da mudança, é garantido que a qualidade do software seja mantida durante as fases de desenvolvimento e manutenção.
# 8) Medir o impacto da mudança:
versão completa do software de gestão de igrejas grátis
Se qualquer defeito for relatado pela equipe de QA, a equipe em questão corrigirá o defeito.
Depois disso, a equipe de QA deve determinar o impacto da mudança que é trazida por essa correção de defeito. Eles precisam testar não apenas se a mudança corrigiu o defeito, mas também se a mudança é compatível com todo o projeto.
Para tanto, utilizamos métricas de qualidade de software que permitem aos gerentes e desenvolvedores observar as atividades e mudanças propostas desde o início até o final do SDLC e iniciar ações corretivas sempre que necessário.
# 9) Realização de auditorias SQA:
A auditoria SQA inspeciona todo o processo SDLC real seguido por compará-lo com o processo estabelecido.
Também verifica se o que foi relatado pela equipe nos relatórios de status foi realmente executado ou não. Esta atividade também expõe quaisquer problemas de não conformidade.
# 10) Manutenção de registros e relatórios:
É crucial manter a documentação necessária relacionada ao SQA e compartilhar as informações necessárias do SQA com as partes interessadas. Os resultados dos testes, resultados da auditoria, relatórios de revisão, documentação de solicitações de mudança, etc. devem ser mantidos para referência futura.
# 11) Gerenciar boas relações:
Na verdade, é muito importante manter a harmonia entre o controle de qualidade e a equipe de desenvolvimento.
Frequentemente ouvimos que testadores e desenvolvedores geralmente se sentem superiores uns aos outros. Isso deve ser evitado, pois pode afetar a qualidade geral do projeto.
Padrões de garantia de qualidade de software
Em geral, o SQA pode exigir conformidade com um ou mais padrões.
Alguns dos padrões mais populares são discutidos abaixo:
ISO 9000: Este padrão é baseado em sete princípios de gestão de qualidade que ajudam as organizações a garantir que seus produtos ou serviços estejam alinhados com as necessidades do cliente.
7 princípios da ISO 9000 são representados na imagem abaixo:

Nível CMMI: CMMI significa Integração do modelo de maturidade de capacidade . Este modelo teve origem na engenharia de software. Pode ser empregado para direcionar a melhoria do processo em um projeto, departamento ou em uma organização inteira.
5 níveis de CMMI e suas características são descritos na imagem abaixo:

Uma organização é avaliada e recebe uma classificação de nível de maturidade (1-5) com base no tipo de avaliação.
Integração do modelo de maturidade de teste (TMMi): Baseado no CMMi, esse modelo foca nos níveis de maturidade em gerenciamento e teste de qualidade de software.
5 níveis TMMi são representados na imagem abaixo:
como retornar string array em java

Conforme uma organização avança em um nível de maturidade mais alto, ela alcança uma capacidade maior de produzir produtos de alta qualidade com menos defeitos e atende de perto os requisitos de negócios.
Elementos de garantia de qualidade de software
Existem 10 elementos essenciais do SQA que são listados abaixo para sua referência:
- Padrões de engenharia de software
- Revisões técnicas e auditorias
- Teste de software para controle de qualidade
- Coleta e análise de erros
- Mudar a gestão
- Programas educacionais
- Gestão de fornecedores
- Gerenciamento de segurança
- Segurança
- Gerenciamento de riscos
Técnicas SQA
Existem várias técnicas para SQA. A auditoria é a principal técnica amplamente adotada. No entanto, também temos algumas outras técnicas importantes.
Várias técnicas de SQA incluem:
- Auditoria: A auditoria envolve a inspeção dos produtos de trabalho e suas informações relacionadas para determinar se o conjunto de processos padrão foi seguido ou não.
- Revendo : Reunião em que o produto de software é examinado pelas partes interessadas internas e externas para obter seus comentários e aprovação.
- Inspeção de código: É o tipo mais formal de revisão que faz testes estáticos para encontrar bugs e evitar o crescimento de defeitos nos estágios posteriores. É feito por um mediador / colega treinado e é baseado em regras, lista de verificação, critérios de entrada e saída. O revisor não deve ser o autor do código.
- Inspeção de projeto: A inspeção de design é feita usando uma lista de verificação que inspeciona as áreas de design de software abaixo:
- Requisitos gerais e design
- Especificações funcionais e de interface
- Convenções
- Rastreabilidade de requisitos
- Estruturas e interfaces
- Lógica
- atuação
- Tratamento e recuperação de erros
- Testabilidade, extensibilidade
- Acoplamento e coesão
- Simulação: A simulação é uma ferramenta que modela a situação da vida real para examinar virtualmente o comportamento do sistema em estudo.
- Teste funcional: É uma técnica de QA que verifica o que o sistema faz sem considerar como o faz. Esse tipo de teste de caixa preta concentra-se principalmente em testar as especificações ou recursos do sistema.
- Estandardização: A padronização desempenha um papel crucial na garantia da qualidade. Diminui a ambigüidade e suposições, garantindo assim a qualidade.
- Análise estática: É uma análise de software que é feita por uma ferramenta automatizada sem realmente executar o programa. Esta técnica é muito utilizada para garantia de qualidade em software médico, nuclear e de aviação. Métricas de software e engenharia reversa são algumas formas populares de análise estática.
- Passo a passo: O passo a passo do software ou passo a passo do código é um tipo de revisão por pares onde o desenvolvedor orienta os membros da equipe de desenvolvimento a examinar o produto e levantar dúvidas, sugerir alternativas, fazer comentários sobre possíveis erros, violações de padrões ou quaisquer outros problemas.
- Teste de caminho: É um técnica de teste de caixa branca onde a cobertura completa do ramal é garantida executando cada caminho independente pelo menos uma vez.
- Teste de estresse: Este tipo de teste é feito para verificar a robustez de um sistema, testando-o sob carga pesada, ou seja, além das condições normais.
- Six Sigma: Six Sigma é uma abordagem de garantia de qualidade que visa produtos ou serviços quase perfeitos. É amplamente aplicado em muitos campos, incluindo software. O objetivo principal do six sigma é a melhoria do processo para que o software produzido seja 99,76% livre de defeitos.
Conclusão
SQA é uma atividade abrangente que é empregada em todo o ciclo de vida do software.
A garantia da qualidade do software é muito importante para o seu produto ou serviço de software ter sucesso no mercado e sobreviver às expectativas do cliente.
Existem várias atividades, padrões e técnicas que você precisa seguir para garantir que o software entregue seja de alta qualidade e esteja alinhado com as necessidades do negócio.
Espero que você tenha uma ideia clara sobre o conceito de Garantia de Qualidade de Software por meio deste artigo informativo !!
Leitura recomendada
- Certificações de Teste de Software e Garantia de Qualidade - Parte 2
- Quais são os atributos de qualidade?
- Deus falso da qualidade versus seres humanos verdadeiros - quem é responsável pela qualidade do software?
- Diferença entre garantia de qualidade e controle de qualidade (QA vs QC)
- Guia de currículo de teste de software perfeito (com amostra de currículo de testador de software)
- Como usar a técnica Poka-Yoke (à prova de erros) para melhorar a qualidade do software
- Compreensão mútua em testes: uma chave para entregar um software de qualidade
- Trabalho de assistente de controle de qualidade de teste de software