Prévia do material em texto
Garantia de Qualidade de Software Elementos da garantia de qualidade de software A garantia de qualidade de software abrange uma ampla gama de preocupações e atividades com foco na gestão da qualidade, que podem ser resumidos da seguinte maneira: Padrões uma ampla variedade de padrões de engenharia de software e documentos relacionados foram criados pelo IEEE, ISO e outros grupos de padrões. SQA deve garantir que padrões adotados sejam observados e que a produção esteja de acordo. Avaliações e Críticas Avaliações técnicas com o objetivo de encontrar erros SQA pode realizar auditorias para garantir que os padrões de qualidade estejam sendo respeitados. Testando é um processo do controle de qualidade tem como principal objetivo encontrar erros SQA deve garantir que os testes seja efetivamente planejado e executado. Coletas e estudos de erros e defeitos entender como os erros são introduzidos e quais atividades são mais efetivas para eliminá-los Garantia de Qualidade de Software 1 para melhorar é preciso acompanhar o processo Controle de Mudança A mudança pode causar confusão se não for tratada adequadamente, e a má qualidade quase sempre resulta da confusão. SQA garante que os procedimentos de controle de mudança foram aplicados da forma correta e suficiente. Educação Administração do Fornecedor propor práticas de qualidade as quais o fornecedor deve aderir (quando possível) propor requisitos de qualidade como parte de qualquer contrato com um fornecedor externo. Administração de Segurança políticas de proteção de dados em todos os níveis O SQA garante que os procedimentos e ferramentas corretos sejam usados para garantir a segurança do software. Segurança determinar efeitos da falha do software iniciar procedimentos para mitigar o risco Controle de Risco os engenheiros de software são responsáveis pela análise e mitigação do risco, mas a organização SQA garante que as atividades de gerenciamento de risco sejam realizadas corretamente e que os planos de contingência relacionados ao risco tenham sido estabelecidos. SQA de processo e produto Garantia de Qualidade de Software 2 As práticas e abordagens de SQA que são eficazes em um ambiente de software podem não ser tão eficazes em outro. Entender os requisitos de qualidade precisos para um produto de software e escolher o método e as ações e tarefas de SQA que serão usadas para satisfazer esses requisitos são as respostas para esses problemas. Os dois modelos de processo mais amplamente utilizados são os padrões CMMI e ISO 9000 do Software Engineering Institute. Uma empresa de software pode harmonizar os dois modelos, escolhendo componentes de cada estrutura e combinando-os com as especificações de um produto específico, em vez de instanciar cada estrutura em sua totalidade. A garantia da qualidade em uma empresa de software é realizada por 2 agentes: Engenheiros de Software realizam trabalho técnico Os engenheiros de software abordam a qualidade (e executam procedimentos de controle de qualidade), implementando práticas técnicas sólidas, concluindo avaliações técnicas e realizando testes de software bem-organizados. grupo de SQA encarregado de planejar, supervisionar, manter registros, realizar análises e relatar a garantia de qualidade. Garantia de Qualidade de Software 3 SQA garante que o software seja confiável, funcional e eficiente. garantir que os produtos de software sejam de alta qualidade e atendam às necessidades de seus usuários. A missão do grupo SQA é ajudar a equipe de software a produzir uma saída final de alta qualidade. Um grupo de SQA executa as tarefas: Criar a estratégia de SQA de um projeto todas as partes interessadas revisam o plano depois de criado detalha: avaliações auditorias revisões padrões que se aplicam ao projeto métodos para rastrear e relatar erros produtos de trabalho que o grupo de SQA criará Garantia de Qualidade de Software 4 feedback que será dado a equipe de software. Participa da criação da definição do processo de software para o projeto Equipe de Software: escolhe procedimento para realizar tarefa Equipe de SQA avalia se procedimento escolhido está em conformidade com política organizacional, padrões internos, padrões como ISO9001 e etc. Garantir aderência ao processo de software especificado Localizar, registrar e acompanhar os desvios do processo. Confirmar que ajustes foram feitos Auditar produtos de trabalho de software Garantir que cumpram padrões estabelecidos no processo Acompanha um número limitado de produtos Ocasionalmente atualiza o gerente de projetos Garante que o trabalho de software e o produto desse trabalho estejam sendo documentados Registrar qualquer descumprimento Informar a alta administração Rastrear inconformidades até sua resolução. SQA também coordena o controle e a gestão de mudanças, além de ajudar a coletar métricas de software. Metas, Atributos e Métricas Ações de SQA devem ser executadas com: Exigências de excelência Excelência em projeto Garantia de Qualidade de Software 5 Excelência do código Eficácia do controle de qualidade Existem muitas métricas de software: Confibabilidade A confiabilidade de um programa de computador é um componente-chave da sua qualidade geral. Um programa deve funcionar bem com frequência e consistência. Garantia de Qualidade de Software 6 A confiabilidade pode ser medida imediatamente e estimada usando dados passados e futuros. De acordo com as estatísticas, a probabilidade de operação sem falhas de um programa de computador em um ambiente especificado por um tempo especificado é a definição de confiabilidade de software. Por exemplo, prevê-se que o programa X tenha uma confiabilidade de 0,999 em oito horas completas de processamento. Em outras palavras, é provável que o programa X seja executado corretamente (sem erros) 999 vezes em 1.000 execuções, o que levaria um total de 8 horas de tempo de processamento (tempo de execução). Falha é a não conformidade com os requisitos de software. Existem falhas que podem ser corrigidas em segundos, outras que levam dias. É possível ainda que uma falha introduza novos erros que levam a falhas adicionais. Inicialmente a confiabilidade de um software era calculada da mesma forma que de um hardware. No entanto, hardwares sofrem com desgaste, não é o caso de um software. As falhas de software podem ser vinculadas a problemas de implementação ou design. O tempo médio entre falhas MTBF é um indicador direto de confiabilidade ao examinar sistemas baseados em computador: MTBFMTTFMTTR em que as siglas MTTF e MTTR são tempo médio para falha e tempo médio para reparo, respectivamente. Simplificando, um usuário final está mais preocupado com erros do que com o número total de defeitos. O número total de defeitos em um programa não representa necessariamente a confiabilidade de um sistema, porque os defeitos não têm a mesma taxa de falha. Considere um programa, por exemplo, que operou sem falhas por 3.000 horas de processamento. Existem muitos bugs nesse software que podem passar despercebidos por dezenas de milhares de horas antes de serem encontrados. Esses erros obscuros podem ter um MTBF de 30.000 ou até 60.000 horas de processador. Outras falhas que ainda não foram encontradas podem quebrar Garantia de Qualidade de Software 7 após 4000 ou 5000 horas. O efeito na confiabilidade do software é mínimo, mesmo que todos os erros da primeira categoria sejam corrigidos. Segurança de software detecção e avaliação de possíveis riscos que podem ter um impacto negativo no software e, por fim, levar à falha de todo o sistema. Inclui procedimentos de modelagem e análise. Risco e criticidade são usados para identificar e classificar inicialmente os riscos. Métodos de análise, como análise de árvore de falhas, lógica em tempo real e modelos de rede de Petri podem ser usados para prever a sequência de eventos que podem resultar em riscos, bem como a probabilidadede cada evento ocorrer na sequência para produzir a cadeia. Confiabilidade x Segurança Embora a segurança e a confiabilidade do software estejam ligadas uma à outra, é fundamental reconhecer suas sutis diferenças. A probabilidade de ocorrer uma falha de software é calculada usando análise estatística. No entanto, a incidência Garantia de Qualidade de Software 8 de uma falha nem sempre leva a um risco ou acidente. A segurança de software analisa como os erros causam circunstâncias que podem resultar em um acidente. Garantia de Qualidade de Software 9