O que é Software Quality Assurance?
A garantia da qualidade do software envolve testar o design e a implementação do software e garantir que ele atenda a um padrão mínimo de qualidade. No centro do processo de garantia da qualidade está o teste, que é o método pelo qual todas as etapas do ciclo de desenvolvimento são analisadas para encontrar defeitos, como mau funcionamento ou problemas de segurança. A parte mais conhecida do processo de garantia de qualidade de software é o teste de software e código; no entanto, também abrange outros aspectos do ciclo de engenharia. Outros aspectos da engenharia de software sujeitos a análise de qualidade incluem os estágios de design e implementação.
O conceito geral de garantia de qualidade de software exige que ele inicie na fase de planejamento de software. Um software mal planejado pode ser difícil ou impossível de escrever de uma maneira que atenda às expectativas da organização que o imaginava. O gerenciamento da qualidade no estágio de design envolve o estudo das ramificações das especificações ou metas do projeto, bem como dos planos da organização para atingir seus objetivos. O benefício da análise de qualidade na fase de design é que ela encontra e elimina erros no início, e não mais tarde no ciclo de desenvolvimento, quando os problemas de design são muito mais caros de corrigir.
Um engenheiro de teste de software, também conhecido como analista de qualidade de software, é a principal pessoa responsável pela execução do processo de teste. Essa pessoa projeta e executa os planos de teste que ajudarão uma organização a melhorar a qualidade de seu software. Idealmente, um programador nunca deve testar seu próprio produto, o que significa que dentro de um projeto, um programador e um engenheiro de teste são duas pessoas diferentes.
Os planos de teste são uma parte crítica do sistema de garantia de qualidade, particularmente a fase de teste de software. O objetivo dos planos de teste é determinar as condições que marcam o sucesso ou falha do software. Um plano de teste típico incluirá uma lista abrangente de programas e subprogramas, ou procedimentos que devem ser testados, bem como as técnicas envolvidas no teste. Outra função crítica de um plano de teste é determinar quais defeitos são inaceitáveis. Os planos de teste geralmente são projetados antes do desenvolvimento do código de software real do projeto.
Quando os engenheiros de teste escrevem programas para implementar planos de teste, eles são chamados de scripts de teste. Os scripts de teste são uma parte essencial do processo de garantia de qualidade do software. Seu objetivo é automatizar o teste do código existente de um programa para encontrar defeitos. Além disso, os engenheiros de teste geralmente usam ferramentas de teste projetadas comercialmente para procurar possíveis problemas. Os planos de teste são implementados durante o estágio de codificação do desenvolvimento de software.
Existem várias etapas importantes envolvidas no estágio de teste real do processo de garantia de qualidade do software. Isso inclui testes de unidade, que avalia a integridade de várias seções do código de software, além de injeções de falhas, projetadas para investigar como os programas respondem a dados incorretos. Etapas adicionais incluem teste de carga ou estresse, que vê como um programa funciona sob uso intenso e testes de intrusão ou segurança para testar a resistência de um programa ao acesso não autorizado. Um projeto de software também costuma ser submetido a testes de usabilidade, a fim de verificar se o programa resultante é fácil para outros usarem.
Os especialistas que participam do teste de código de software geralmente são separados em dois grupos, um chamado testador de caixa preta e outro conhecido como testador de caixa branca ou caixa de vidro. O teste da caixa preta é um processo mais superficial que começa no estágio de codificação do software e não examina nenhum código de computador subjacente. Ele investiga a usabilidade de um software, consistência cosmética e a ocorrência de erros e mau funcionamento.
O teste da caixa branca é um processo que começa no início do processo de garantia da qualidade do software, na fase de design. Ele inclui a previsão de possíveis problemas antes que o código seja realmente escrito, além de escrever planos de teste e scripts de teste avançados. Ao contrário do teste de caixa preta, o teste de caixa branca também envolve o estudo do código do computador subjacente.
A garantia de qualidade também se aplica à fase de implementação do software, que é quando o software está quase completo e é instalado nos sistemas de computador para avaliação. Essa fase geralmente é chamada de teste alfa e ocorre quando o produto quase acabado é instalado e testado pela equipe de desenvolvedores. Quando o software é apresentado a clientes em potencial fora da empresa, ele é chamado de teste beta. Se os defeitos aparecerem após o lançamento do software e um patch precisar ser desenvolvido, o teste de regressão será usado para garantir que novos erros não sejam criados pelas atualizações.