Prévia do material em texto
SQA – Software quality assurance SST Passos, Ubiratan Roberte Cardoso SQA – Software quality assurance / Ubiratan Roberte Cardoso Passos Ano: 2020 nº de p.: 11 Copyright © 2020. Delinea Tecnologia Educacional. Todos os direitos reservados. SQA – Software quality assurance 3 SQA – Software quality assurance Neste momento, vamos estudar sobre a Garantia da Qualidade de Software (SQA), que consiste em sistemática de desenvolvimento a ser adota visando produto de qualidade, construído sobre diretrizes de padrões internacionais como o IEEE (Institute of Electrical and Electronic Engineers) e a ISO (International Organization for Standardization). A seguir, identificaremos quais são as atividades relacionadas à gestão de qualidade do software e detalharemos quais são as tarefas a serem desempenhadas pelo grupo de SQA com visando qualidade de requisitos, de projeto, de código e da eficácia do controle. Garantia da qualidade de software Mesmo nos dias atuais, ainda que a qualidade seja um dos assuntos mais discutidos dentro da engenharia de software, alguns desenvolvedores continuam a acreditar que a qualidade de software é algo com o qual se deve a começar a se preocupar somente depois que o código for gerado. O fato é que nada poderia estar tão longe da verdade quanto este pensamento. A garantia da qualidade de software, SQA (Software Quality Assurance), também conhecida como gestão da qualidade, é uma atividade que deve ser aplicada em todas as etapas da gestão de qualidade. 4 O problema da gestão da qualidade não é o que as pessoas não sabem a seu respeito, mas sim o que eles pensam que sabem. Nesse aspecto, a qualidade tem muita semelhança com futebol. Todo mundo acredita saber muito sobre o assunto. Todos sentem que são capazes de responder a qualquer pergunta e indicar as melhores soluções, mesmo que nem sempre saibam responder por que aquilo. Todo mundo pensa que, basta estar bem posicionado, fazer as coisas direito e pronto, nada pode dar errado. E, obviamente, a maioria das pessoas acredita que seus problemas são causados pelos outros (se ao menos eles se preocupassem em fazer as coisas certas...). Atenção A garantia da qualidade de software é uma atividade que engloba: 1. Um processo de SQA. 2. Tarefas específicas de garantia da qualidade e controle da qualidade (inclusi- ve revisões técnicas e uma estratégia de testes multiescalonados). 3. Prática efetiva de engenharia de software (métodos e ferramentas). 4. Controle de todos os artefatos de software e as mudanças feitas nesses pro- dutos. 5. Um procedimento para garantir a conformidade com os padrões de desen- volvimento de software (quando aplicáveis). 6. Mecanismos de medição e de relatórios. O controle de qualidade é composto por uma série de ações de engenharia de software que ajudam a garantir que cada produto resultante do processo seja capaz de atingir a suas metas de qualidade. 5 Controle de qualidade Fonte: Plataforma Deduca (2020). Modelos são revistos procurando garantir que estejam completos e consistentes. O código é inspecionado de modo que erros sejam revelados e corrigidos antes mesmo que se iniciem os testes. Uma série de etapas de testes é aplicada, permitindo assim descobrir erros na lógica de processamento, manipulação dos dados e comunicação da interface. Também é realizada uma série de medições e feedbacks, que permitem que a equipe ajuste o processo quando algum dos produtos deixar de atender às metas de qualidade estabelecidas. Elementos de garantia da qualidade de software Garantir a qualidade de um produto de software requer esforço, dedicação e direcionamento. A garantia da qualidade engloba um amplo espectro de preocupações e atividades ligadas à gestão da qualidade de software, as quais Horch (2003) sintetiza da seguinte forma: 6 Padrões O IEEE, a ISO e outras organizações de padronizações produziram uma ampla gama de padrões para engenharia de software e seus respectivos documentos. Os padrões podem ser adotados voluntariamente por uma organização de engenharia de software ou até mesmo impostos pelo cliente ou outros interessados. O papel da SQA é garantir que padrões que tenham sido adotados sejam seguidos e que todos os produtos resultantes estejam em conformidade com eles. Revisões e auditorias As revisões técnicas são uma atividade de controle de qualidade realizada por engenheiros de software para engenheiros de software. Seu intuito é o de revelar erros. Auditorias são um tipo de revisão efetuado pelo pessoal de SQA com o intuito de assegurar-se de que as diretrizes de qualidade estejam sendo seguidas no trabalho de engenharia de software. Testes Os testes de software são uma função de controle de qualidade com um objetivo principal — descobrir erros. O papel da SQA é garantir que os testes sejam planejados apropriadamente e conduzidos eficientemente de modo que se tenha a maior probabilidade possível de alcançar seu objetivo primário. Coleta e análise de erros/defeitos A única forma de melhorar é medir o nosso desempenho. A SQA reúne e analisa dados de erros e defeitos para melhor compreender como os erros são introduzidos e quais atividades de engenharia de software melhor se adequam a sua eliminação. Gerenciamento de mudanças As mudanças são um dos aspectos mais negativos de qualquer projeto de software. Se não forem administradas apropriadamente, podem gerar confusão, e confusão quase sempre leva a uma qualidade inadequada. A SQA garante que práticas adequadas de gerenciamento de mudanças tenham sido instituídas. 7 Educação Toda organização de software quer melhorar suas práticas de engenharia de software. Um fator fundamental para o aperfeiçoamento é a educação dos engenheiros de software, seus gerentes e outros interessados. A organização de SQA assume a liderança no processo de aperfeiçoamento do software e é um proponente fundamental e patrocinador de programas educacionais. Gerência dos fornecedores Adquirem-se três categorias de software de fornecedores externos de software: a) pacotes prontos, comerciais; b) um shell personalizado que fornece um esqueleto básico, personalizado de acordo com as necessidades do comprador; c) software sob encomenda que é projetado e construído de forma personalizada a partir de especificações fornecidas pela empresa- cliente. O papel do grupo de SQA é garantir software de alta qualidade por meio da sugestão de práticas específicas de garantia da qualidade que o fornecedor deve (sempre que possível) seguir, e incorporar exigências de qualidade como parte de qualquer contrato com um fornecedor externo. Administração da segurança Com o aumento dos crimes cibernéticos e novas regulamentações governamentais referentes à privacidade, toda organização de software deve instituir políticas que protejam os dados em todos os níveis, estabelecer proteção por meio de firewalls para as aplicações da Internet (WebApps) e garantir que o software não tenha sido alterado internamente, sem autorização. A SQA garante o emprego de processos e tecnologias apropriadas para ter a segurança de software desejada. Proteção O fato de o software ser quase sempre um componente fundamental de sistemas que envolvem vidas humanas, o impacto de defeitos ocultos pode ser catastrófico. A SQA pode ser responsável por avaliar o impacto de falhas de software e por iniciar as etapas necessárias para redução de riscos. 8 Administração de riscos Embora a análise e a redução de riscos seja preocupação dos engenheiros de software, o grupo de SQA garante que as atividades de gestão de riscos sejam conduzidas apropriadamente e que planos de contingência relacionados a riscos tenham sido estabelecidos. Além de cada uma dessas preocupações e atividades, a SQA trabalha para garantir que atividades de suporte ao software sejam realizadas ou produzidas, tendo a qualidade como preocupação dominante. Tarefas, metas e métricas da SQA A garantia da qualidadede software é formada por um conjunto de tarefas associadas a dois elementos distintos – os engenheiros de software, que realizam todo o trabalho técnico, e um grupo de SQA, responsáveis pelo planejamento, supervisão, manutenção de registros, análise e relatórios referentes à garantia da qualidade. Nesse contexto, os engenheiros tratam da qualidade pela aplicação de medidas e métodos técnicos consistentes, conduzindo revisões técnicas e realizando os bem planejados testes de software. São tarefas da SQA: Tendo como prerrogativa ajudar a equipe de software a obter um produto final de alta qualidade, o SQA segue um conjunto de ações que são recomendadas pelo SEI (Software Engineering Institute), que tratam do planejamento, da supervisão, da manutenção de registros, da análise e dos relatórios relativos à garantia da qualidade. Essas ações são realizadas por um grupo de SQA independente que: • Prepara um plano de SQA para um projeto. • Participa no desenvolvimento da descrição da gestão de qualidade do pro- jeto. • Revisa as atividades de engenharia de software para verificar sua conformi- dade com a gestão de qualidade definida. • Audita produtos de software resultantes designados para verificar sua con- formidade com aqueles definidos como parte da gestão de qualidade. 9 • Garante que os desvios no trabalho de software e produtos resultantes sejam documentados e tratados de acordo com um procedimento documentado. • Registra qualquer não aderência e relata ao gerenciamento superior. O Software Engineering Institute (SEI) é um centro de pesquisa e desenvolvimento patrocinado pelo Departamento de Defesa dos Estados Unidos e provê uma prática avançada de engenharia de software, qualificando graus de qualidade de software. Curiosidade As ações de SQA descritas acima são realizadas para atingir um o seguinte conjunto de metas pré-programadas: 1. Qualidade dos requisitos. A correção, a completude e a consistência do mo- delo de requisitos terão forte influência sobre a qualidade de todos os produ- tos seguintes. A SQA deve assegurar-se de que a equipe de software tenha revisto apropriadamente o modelo de requisitos para a obtenção de um alto nível de qualidade. 2. Qualidade do projeto. Todo elemento do modelo de projeto deve ser avaliado pela equipe de software para garantir que apresente alta qualidade e que o próprio projeto esteja de acordo com os requisitos. Ou seja, a SQA busca atri- butos do projeto que sejam indicadores de qualidade. 3. Qualidade do código. O código-fonte e os produtos relacionados (por exem- plo, outras informações descritivas) devem estar em conformidade com os padrões locais de codificação e apresentar características que irão facilitar a manutenção. A SQA deve isolar esses atributos que permitem uma análise razoável da qualidade do código. 4. Eficácia do controle de qualidade. A equipe de software deve aplicar os re- cursos limitados de forma a obter a maior probabilidade possível de atingir um resultado de alta qualidade. A SQA analisa a alocação de recursos para revisões e realiza testes para verificar se eles estão ou não sendo alocados da maneira mais efetiva. 10 Fechamento A garantia da qualidade de um produto de software é obtida a partir da adequação do processo de desenvolvimento aos preceitos da engenharia de software e envolve, dentre outros requisitos, o cumprimento de padrões técnicos, a realização de auditorias técnicas, a estrutura de testes para descobrir erros, o processo de gerenciamento de mudanças e a administração de riscos. Detalhamos que a garantia de qualidade de um software é uma atividade que envolve um processo de SQA, uma tarefa de controle de qualidade, práticas de engenharia de software, controle dos artefatos de software além de procedimentos visando conformidades com padrões de desenvolvimento e cumprimento de metas. 11 Referências HORCH, J. Practical Guide to Software Quality Management. 2d ed. [S.l.]: Artech House, 2003.