Baixe o app para aproveitar ainda mais
Prévia do material em texto
Garantias da Qualidade de Software Apresentação Garantia de qualidade de software é diferente de controle de qualidade de software. A garantia de qualidade atua no monitoramento de processos que visem a garantir que as estratégias de controle de qualidade sejam executadas adequadamente. Por exemplo, como saber se os projetos estão estimando tempo suficiente para os testes de software? Isso só é possível acompanhando o plano de testes, que é um documento de garantia de qualidade de software no contexto de produto. Nesta Unidade de Aprendizagem você conhecerá o conceito de garantia da qualidade de software, tanto aplicado a processos quanto a produtos, verá também métodos de análise das garantias de qualidade e sua aplicação, bem como um plano de testes para garantia de qualidade de produto. Bons estudos. Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados: Definir as garantias da qualidade de software.• Analisar as garantias da qualidade de software.• Aplicar os métodos das garantias de software.• Desafio A garantia de qualidade de software é, juntamente com o controle de qualidade, um importante aliado do cliente para que ele possa confiar no produto que está adquirindo. A garantia de qualidade assegura que os processos da empresa estão sendo seguidos e ajuda a otimizá-los, adequando-os da melhor forma possível ao contexto da empresa. Você é estagiário da área de garantia de qualidade de uma empresa que desenvolve softwares e recebeu a seguinte demanda. Descreva este processo de forma textual e gráfica. Ele deve conter os seguintes elementos: - Nome do processo - Insumos (materiais necessários) - Resultado (o que será entregue ao final da execução do processo) - Passos para execução (o que deve ser feito) - Fluxos alternativos (desvios que o processo pode ter) - Fluxograma do processo (principal e alternativo) Infográfico A garantia da qualidade de software envolve diversos processos. O profissional que trabalha com garantia da qualidade precisa conhecer, por exemplo, a norma ISO 9000, para saber que ela não é aplicada no desenvolvimento de software, mas sim em processos da empresa, e que, por outro lado, os modelos de maturidade CMMI e MPS.BR auxiliam na garantia da qualidade de processos especificamente de desenvolvimento de sistemas. Veja no Infográfico conceitos importantes a respeito de garantia da qualidade de software. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/24821925-b9f7-42df-a88e-669646b46ba1/9e9dc401-b090-4aef-8667-10f32e88fab8.jpg Conteúdo do livro A garantia da qualidade de software envolve atenção a tudo o que acontece no processo de desenvolvimento de software, desde os processos iniciais até a forma como é realizada a implantação do software no cliente. Alguns modelos, como, por exemplo, o modelo U, ajudam a entender esse processo de garantia da qualidade. Algumas normativas e modelos de maturidade auxiliam também a estruturar os projetos, como, por exemplo, CMMI e MPS.BR. No capítulo Garantias da qualidade de software, do livro Qualidade de software, você conhecerá o modelo U de garantia de qualidade de software, a norma ISO 9000 e os modelos de maturidade CMMI E MPS.BR. Bons estudos. QUALIDADE DE SOFTWARE Aline Zanin Garantias da qualidade de software Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: Definir as garantias da qualidade de software. Analisar as garantias da qualidade de software. Aplicar os métodos das garantias de software. Introdução A garantia da qualidade de software, do inglês quality assurance, pode ser definida como as atividades que dão suporte aos processos continua- mente estabelecidos, visando a fornecer confiabilidade a esses processos. Para esse fim, os processos estão em contínua revisão, melhoria e adap- tação, para produzir produtos que atendam aos requisitos estipulados pelo cliente e que sejam adequados para o uso pretendido. A garantia de qualidade de software está associada com todas as atividades que formam o ciclo de desenvolvimento de um software, desde o primeiro contato com o cliente até a programação do software em si. Dessa forma, a área de garantia da qualidade se preocupa com a verificação e a validação do software, a verificação quanto aos processos e às definições (garantia da qualidade de processos) e a validação quanto ao produto (garantia da qualidade de produto). Para esse fim, diversas são as técnicas, os modelos e as atividades empregadas, conforme Campos ([2019]). Neste capítulo, você vai estudar o conceito de garantia da qualidade e vai analisar algumas das técnicas que podem ser utilizadas para a garantia da qualidade. Por fim, algumas dessas técnicas serão demonstradas por meio de exemplos de aplicação. Garantias da qualidade de software A garantia da qualidade de software, ou os modelos de garantia da qualidade de software, como o próprio nome diz, tem como objetivo garantir que o software seja entregue ao cliente fi nal com qualidade e que o processo de verifi cação dessa qualidade seja conduzido de forma organizada. Para que esse processo de garantia de qualidade de software tenha êxito em seu objetivo e possa ser executado pela equipe sem causar um consumo excessivo de tempo ou uma desmotivação do time, é necessário que esteja completamente integrado ao processo de desenvolvimento de software. Um bom processo de garantia de qualidade pode ser visto como uma relação de um para um com cada fase do processo de desenvolvimento de software; ou seja, realiza-se uma etapa de garantia da qualidade de software para cada etapa de desenvolvimento. Todo esse processo deve ser feito visando e reforçando a colaboração entre as áreas e a ciência por parte dos profissionais de um objetivo comum no time, segundo Bartié (2002). Garantia de qualidade e controle de qualidade são áreas diferentes da engenharia de software. A área de controle de qualidade age diretamente sobre o produto e realiza a execução dos processos, enquanto a área de garantia da qualidade estrutura tanto o controle de processos quanto o controle de produtos e garante que estes estejam sendo executados. Diversos são os modelos que podem ser utilizados para a garantia da qualidade. Esses processos incluem garantia da qualidade de processos e garantia da qualidade de produtos, verificação e validação. Um dos processos é o modelo de qualidade de software em U, que será descrito a seguir. Modelo de qualidade de software em U As fases do modelo de qualidade de software podem ser organizadas em um formato de U, sendo, nesse caso, o modelo de qualidade de software chamado de modelo U. Nesse modelo, as fases são executadas sequencialmente. O objetivo é garantir que durante o ciclo de desenvolvimento de software sejam Garantias da qualidade de software2 produzidos efetivamente todos os produtos previstos na metodologia empregada e que o software entregue esteja de acordo com o requisito esperado. Esse modelo considera dois tipos de testes de software: testes de verificação e testes de validação. Os testes de verificação validam o processo de engenha- ria de software, e os testes de validação garantem a qualidade do produto de software. Analisando a Figura 1, podemos verificar a divisão das etapas do modelo U conforme esses dois tipos de testes. As etapas que compreendem o modelo U são as seguintes: Testes de verificação: Verificação do modelo de negócios — aqui, os testes verificam se foram levantadas informações suficientes sobre o modelo de negócios do cliente e como essas informações foram levantadas. Verificação da especificação de requisitos — aqui, os testes verificam se a partir do modelo de negócio do cliente foram definidos requisitos compatíveis, que vão agregar valor ao cliente por meio do produto de software. Verificação daanálise e da modelagem — nessa etapa é verificado se a modelagem do sistema atende ao especificado nos requisitos e como essa modelagem é feita. Verificação da implementação — aqui se inicia a etapa de implemen- tação; é verificada a estrutura para realização da implementação do sistema e o processo que será seguido para a implementação. Testes de validação: Validação da unidade especificada ou modificada — nessa etapa é validada uma pequena unidade ou um componente de software que foi desenvolvido ou modificado. Validação da integração da unidade especificada ou modificada — nessa etapa é validada a integração dessa pequena unidade, ou componente de software, que foi desenvolvida ou modificada com o restante do sistema ou com sistemas externos, conforme a necessidade. Validação do sistema especificado ou modificado — aqui é realizada a validação do sistema como um todo, de suas funcionalidades imple- mentadas e seus requisitos. Validação da disponibilização da solução — nessa etapa, o software já foi entregue ao cliente por meio de sua implementação; aqui é acom- panhado se a implementação foi feita de forma correta e se o software 3Garantias da qualidade de software apresenta no cliente o mesmo comportamento que apresentou no am- biente de testes. Figura 1. Modelo de processo de qualidade de software em U. Fonte: Adaptada de Bartie (2002). 5 Implementação Verificação da implementação 3 Análise e modelagem Verificação, análise e modelagem 5 Unidade especificada ou modificada Validação da unidade 6 Integração especificada ou modificada Validação da integração 7 Sistema especificado ou modificado Validação da integração 8 Disponibilização da solução Validação do aceite 1 Modelo de negócios Verificação de negócios 2 Especificação de requisitos Verificação de requisitos TESTE DE VERIFICAÇÃO TESTES DE VALIDAÇÃO Clientes patrocinadores usuários Testes de verificação O processo de desenvolvimento de software considera duas etapas principais, sendo elas: planejamento, em que são coletadas as informações e é planejada a arquitetura do software, e desenvolvimento, em que o sistema é de fato desen- volvido. Os testes de verifi cação são realizados na etapa de planejamento e têm como objetivo avaliar se a documentação e o processo utilizado nessa etapa estão sendo feitos de forma correta. Nesse momento, não existem componentes tecnológicos, mas, sim, documentos que especifi cam o comportamento do software a ser construído. Os testes de verificação são aplicados de acordo com o estágio de desen- volvimento. São realizados testes: na etapa de levantamento das necessidades do cliente e das caracterís- ticas específicas para o software; Garantias da qualidade de software4 na etapa de identificação de requisitos funcionais e não funcionais do software; na etapa de definição do modelo de arquitetura e da solução tecnológica; na etapa de construção do software. Testes de validação Os testes de validação são um processo formal de avaliação de software e podem ser aplicados em componentes isolados, em módulos ou em funciona- lidades já implementadas no sistema, ou mesmo no sistema como um todo. O objetivo desses testes é avaliar a conformidade do software com os requisitos especifi cados nas etapas iniciais do projeto. A principal característica desses testes é a necessidade de o software já estar em execução para ser testado devidamente. Diversas são as categorias de testes que podem ser aplicados durante o processo de desenvolvimento de software, sendo que as atividades de planejamento, modelagem, execução e conferência dos testes deverão ocorrer em paralelo às atividades de construção do software. As validações serão aplicadas respeitando-se os estágios de desenvolvi- mento. São realizados: testes em componentes executáveis; testes de interface entre componentes; testes em sistemas ou módulos completos; aceite de um sistema ou módulo pelo cliente. Testes de verificação e testes de validação fazem parte do modelo U de qualidade, sendo que cada um desses tipos de teste compreende diversas atividades que precisam ser executadas, visando a garantir a qualidade do software. Na próxima seção, vamos analisar algumas das técnicas de garantia de qualidade de software, tanto de verificação quanto de validação. Análise das garantias de qualidade de software O processo de garantia da qualidade considera um olhar detalhado para a qua- lidade tanto do processo quanto do produto. No processo, podemos quantifi car a sua qualidade por meio de métricas e, nos produtos, por meio de técnicas de verifi cação e validação. Todo esse processo de garantia da qualidade pode ser 5Garantias da qualidade de software avaliado, por exemplo, pela normativa ISO 9000, por auditorias, por inspeções formais ou por testes de software, conforme Campos ([2019]). A área de garantia da qualidade tem alguns papéis fundamentais, conforme aponta Bastos et al. (2007): ajuda a estabelecer processos; determina programas de medida para avaliar processos; identifica fraquezas de medida para avaliar processos; é uma responsabilidade de gerenciamento; está relacionada com todos os produtos que serão gerados por um processo; avalia se o controle de qualidade está funcionando. Conforme citado, uma das principais formas de garantia da qualidade é por meio de auditorias. Vamos analisar algumas das principais auditorias que podem ser feitas em processos de desenvolvimento de software, considerando os cenários em que cada uma pode ser aplicada. A normativa ISO 9000 é utilizada para a garantia da qualidade de processos nos mais diversos aspectos. Empresas de todos os segmentos utilizam a ISO 9000, inclusive como estratégia de marketing para seus produtos. Essa norma teve origem na norma britânica BS 570, publicada em 1979 pelo SBI (British Standards Institute), baseada em padrões militares. Em 1987, a norma foi revisada, mudando seu foco de exclusivamente empresas de manufatura para outras empresas prestadoras de serviços. No ano seguinte, o documento foi aceito pela ISO como padrão mundial. A ISO 9000 é um conjunto de normas genéricas que serve a qualquer organização, de qualquer ramo de atividade, que queira realizar o controle de qualidade de seus produtos e serviços. Essa norma é mais conhecida pela sua versão 9001. A ISO 9001 descreve exigências para o sistema de gerência de qualidade da empresa. A qualidade de produtos e serviços não é estabele- cida pela norma, mas, sim, pela própria empresa e pelas exigências de seus clientes. A norma ISO 9001 define processos que descrevem como a empresa deve realizar determinadas atividades (ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, 2015). Os documentos que definem os processos são chamados pela ISO 9000 de procedimentos. Garantias da qualidade de software6 Uma empresa que tem ISO 9001 para os seus processos terá, por exemplo, um pro- cedimento que define como a telefonista deve atender ao telefone, isto é, qual frase deve ser dita ao receber uma ligação. Já o CMM e o CMMI são dois dos principais modelos para melhoria de processos especificamente para software, criados pelo Software Engineering Institute — SEI. CMM é o acrônimo de capability maturity model ou modelo de capacidade de maturidade. Por esse modelo ser focado especificamente em software, ele não avalia outras áreas da empresa, como recursos humanos ou setor financeiro, conforme lecionam Koscianski e Soares (2007). O CMM busca que as empresas conheçam e melhorem os seus processos de desenvolvimento de software com a implementação de práticas bem de- finidas. Ele define uma escala para a maturidade da empresa, que se divide em cinco passos. Cada nível do CMM define áreas-chave que identificam um conjunto de objetivos que a empresa precisa cumprir para atingir esse nível de maturidade. Os níveis são: 1. Inicial. 2. Gerenciado. 3. Definido. 4. Gerenciado quantitativamente.5. Otimizado. No nível 1, nenhum processo está definido, e, no nível 5, todos os processos estão definidos, são seguidos e estão apenas sendo otimizados constantemente, conforme lecionam Koscianski e Soares (2007). Com a evolução do CMM, foram criados modelo semelhantes para diversas áreas das empresas, por exemplo: P-CMM para gestão de recursos humanos, SA-CMM para aquisição de software, SE-CMM para engenharia de sistemas. Para integrar todos esses modelos, surgiu o CMMI, ou capability maturity model integration. O CMMI mantém os mesmos cinco níveis do CMMI, contudo, amplia as áreas de foco de cada nível, exceto o nível 1, que não tem objetivos específicos, por ser a ausência de processos. As áreas definidas para cada nível do CMMI são mostradas nos Quadro 1. 7Garantias da qualidade de software Fonte: Adaptado de Koscianski e Soares (2007). Nível de maturidade 2 — gerenciado Gerência de requisitos Planejamento do projeto Gerência e controle do projeto Gerência e acordos com fornecedores Medição e análise Garantia da qualidade do processo e do produto Gerencia de configuração Nível de maturidade 3 — definido Desenvolvimento de requisitos Solução técnica Integração do produto Verificação Validação Foco no processo organizacional Treinamento organizacional Gerência de projeto integrada Gerência de risco Análise de decisão e resolução Desempenho no processo organizacional Definição do processo organizacional Nível de maturidade 4 — gerenciado quantitativamente Desempenho do processo organizacional Gerência quantitativa do projeto Nível de maturidade 5 — otimizado Inovação e implementação na organização Análise e resolução de causas Quadro 1. Níveis de maturidade e processos do modelo MPS.BR Garantias da qualidade de software8 Por sua vez, o modelo MPS.BR, um acrônimo de “melhoria de processo de software brasileiro”, teve seu desenvolvimento iniciado no ano de 2003 pelas instituições SOFTEX, Riosoft, COPPE/UFRG, CESAR, CenPRA e CELE- PAR. Esse modelo tem foco em empresas de micro, pequeno e médio porte e objetiva ser um modelo de qualidade com um custo inferior ao modelo CMMI. Esse modelo foi criado para adequar os processos de engenharia de software para a realidade brasileira, baseando-se nas abordagens internacionais para avaliação e melhoria de processos de software, conforme abordam Koscianski e Soares (2007). As bases do modelo MPS.BR são as normas ISO/IEC 12207, ISO/IEC 15504 e o CMMI. Esse modelo se divide em três componentes, sendo eles: modelo de referência (MR-MPS), método de avaliação (MA-MPS) e modelo de negócios (MN-MPS). Ele classifica as empresas de acordo com sete níveis de maturidade e, assim como o CMMI, também estabelece objetivos para cada nível. Os níveis estipulados para o MPS.BR são os seguintes: a) Em otimização. b) Gerenciado quantitativamente. c) Definido. d) Largamente definido. e) Parcialmente definido. f) Gerenciado. g) Parcialmente gerenciado. Nesse modelo, o nível A é o nível mais avançado, que considera os processos sendo executados e apenas em etapa de inovação e otimização, e o nível G é o início da organização dos processos da empresa, conforme Koscianski e Soares (2007). O Quadro 2 demonstra os níveis de maturidade e os processos gerenciados por cada nível do modelo MPS.BR. 9Garantias da qualidade de software Fonte: Adaptado de Koscianski e Soares (2007). A Inovação e implantação na organização Análise de causas e resolução B Desempenho do processo organizacional Gerência quantitativa do projeto C Análise de decisão e resolução Gerência de riscos D Desenvolvimento de requisitos Solução técnica Integração de produto Instalação de produto Liberação de produto Verificação Validação E Treinamento Avaliação e melhoria do processo organizacional Definição do processo organizacional Adaptação do processo para gerência do projeto F Medição Gerência de configuração Aquisição Garantia da qualidade G Gerência de requisitos Gerência de projetos Quadro 2. Níveis de maturidade e processos do modelo MPS.BR Outra técnica de garantia de qualidade de software que tem sua utilização recomendada é a organização dos processos de testes de software. Os testes são Garantias da qualidade de software10 uma medida de controle de qualidade, e a organização e o acompanhamento do processo de testes são garantia da qualidade do software. O principal documento que norteia a organização do processo de testes e é utilizado para monitorar se os testes estão sendo realizados de acordo com o planejado é um documento chamado de plano de testes. De acordo com a International Software Testing Qualifications Board (ISTQB), em seu glossário de termos, o plano de testes é a “documentação descrevendo os objetivos do teste a serem alcançados, os meios para realizá-lo, e o cronograma para atingi-lo, organizados para coordenar as atividades de teste” (ISTQB, 2018, p. 22). O plano de teste não é um documento estático; ele pode ser modificado durante todo o ciclo de vida do produto, caso novas necessidades sejam identi- ficadas. O feedback de cada atividade do ciclo de vida pode ser utilizado como parâmetro para incluir ou remover itens do plano de testes. O planejamento dos testes de um projeto pode ser feito em um plano de teste principal e em planos de teste separados para cada nível de teste. Por exemplo, cria-se um plano de testes para os testes de sistema, que serão feitos logo após a conclusão do desenvolvimento da primeira funcionalidade, e outro plano de testes para o teste de aceitação, que será feito juntamente com o cliente ou repre- sentante dele, conforme exemplifica o ISTQB (2018). O plano de testes é personalizável conforme as necessidades de cada em- presa, mas, em geral, conforme aponta o ISTQB (2018), ele deve: determinar o escopo, os objetivos e os riscos do teste; definir a abordagem geral do teste; integrar e coordenar as atividades de teste nas atividades do ciclo de vida do software; tomar decisões sobre o que testar, as pessoas e outros recursos necessá- rios para realizar as várias atividades de teste e como essas atividades serão realizadas; programar as atividades de análise, projeto, implementação, execução e avaliação de testes, em datas específicas (p. ex., desenvolvimento sequen- cial) ou no contexto de cada iteração (p. ex., desenvolvimento iterativo); 11Garantias da qualidade de software selecionar as métricas para monitoramento e controle de testes; orçar as atividades de teste; determinar o nível de detalhes e a estrutura da documentação de teste (p. ex., fornecendo modelos ou exemplos de documentos). O conteúdo dos planos de teste varia e pode se estender além dos tópicos identificados acima. Uma amostragem de planos de teste pode ser encontrada nos documentos do padrão ISO (ISO/IEC/IEEE 29119-3). Métodos de garantia de qualidade de software Diversas são as estratégias que podem ser utilizadas para a garantia da qua- lidade de software; algumas foram descritas na seção anterior. Nesta seção, essas estratégias são apresentadas com uma abordagem mais aplicada. Como se preparar para uma auditoria? Como estruturar um plano de testes? Auditoria ISO A auditoria é o momento de verifi car se os processos que foram defi nidos para a empresa estão sendo cumpridos. É por meio da auditoria que as em- presas recebem o almejado selo ISO 9001, e é também por meio dela que, periodicamente, as empresas renovam esse selo. Contudo, para obter êxito nas auditorias, é necessário saber como elas funcionam e executar alguns passos importantes, os quais serão descritos a seguir, com base em Oliveira (2018). O primeiro passo para se preparar para uma auditoria ISO é estudar as normas, os padrões definidos pela sua empresa. Toda a empresa que almeja uma certificação ISO obrigatoriamente tem seus procedimentosdefinidos pelo SGQ — Sistema Gerenciador de Qualidade. O profissional que vai acompanhar a auditoria precisa conhecer esses processos. Além do responsável pela qualidade da empresa, os demais colaboradores precisam também estar preparados para a auditoria. Dessa forma, é necessário preparar a equipe, apresentar a todos os procedimentos, uma vez que o auditor poderá conversar com qualquer pessoa para confirmar se os processos são executados conforme o determinado. Além disso, a organização é fundamental para o processo de auditoria. O responsável pela qualidade da empresa, que acompanha a auditoria, precisa saber onde estão arquivados todos os documentos que são utilizados diaria- mente e que constam nos procedimentos. É importante que todas as evidências Garantias da qualidade de software12 de que os processos definidos são cumpridos sejam apresentadas de forma organizada para o auditor. Para garantir que nenhuma surpresa acontecerá quando a auditoria oficial com a certificadora da ISO acontecer, é aconselhável a realização de uma auditoria interna. Na auditoria interna, será possível para a empresa identifi- car pontos fracos que podem ser melhorados para a auditoria externa. Além disso, a auditoria interna aumenta a confiança da equipe, o que faz com que, na auditoria externa, a equipe esteja tranquila e não cause transtornos apenas por nervosismo. Segundo Oliveira (2018), uma auditoria ISO é constituída basicamente por: Reunião de abertura — em que o responsável pela qualidade da empresa e o auditor se reúnem pela primeira vez e é definido o cronograma da auditoria. Auditoria dos processos — nessa etapa, é feita a análise dos procedi- mentos, dos documentos que comprovam a sua execução e, quando necessário, ocorre uma conversa com os profissionais da empresa, para garantir que o processo está sendo executado corretamente. Reunião de conclusão — é o momento em que o auditor analisa a auditoria junto com todos os gestores da empresa envolvida e faz re- comendações com base no resultado da auditoria. Preparando seu plano de testes Agora, vamos analisar cada parte do plano de testes e discutir como preencher esse plano e como identifi car as informações que devem constar em cada parte. Determinar o escopo, os objetivos e os riscos do teste: o escopo e os objetivos do teste dizem respeito a quais funcionalidades do sistema serão testadas. Os riscos dizem respeito a situações que podem impedir a realização dos testes. Por exemplo: para testar o sistema de uma ope- radora telefônica, podem ser necessários dados de números de telefones válidos para entrada de dados no sistema; entretanto, a operadora pode atrasar a disponibilidade desses dados, e o teste pode atrasar; ou então a equipe pode ter um limite mínimo de colaboradores, e alguém pode pedir demissão durante o projeto, e, por isso, as demandas da equipe acabam atrasando. Definir a abordagem geral do teste: quais tipos e níveis de testes serão empregados no projeto? Os testes serão manuais ou automatizados? 13Garantias da qualidade de software Essas perguntas precisam ser definidas no plano de testes; é necessário especificar se a equipe vai realizar teste unitário, teste funcional, teste de performance, teste de segurança, entre outros. Essas definições são de extrema importância para a organização do ambiente de desenvol- vimento e do cronograma. Integrar e coordenar as atividades de teste nas atividades do ciclo de vida do software: em que momento do ciclo de desenvolvimento os testes serão iniciados? Será possível iniciar a análise de testes junto com a análise do sistema? Tomar decisões sobre o que testar, as pessoas e outros recursos neces- sários para realizar as várias atividades de teste e como essas atividades serão realizadas: de acordo com o escopo que foi definido para o pro- jeto, toda a funcionalidade será testada ou apenas a parte fundamental dela? O projeto dispõe de recursos humanos e financeiros para testar a funcionalidade por completo? Programar as atividades de análise, projeto, implementação, execução e avaliação de testes, em datas específicas (p. ex., em desenvolvimento sequencial) ou no contexto de cada iteração (p. ex., no desenvolvimento iterativo): nessa etapa, define-se como o projeto de testes será estrutu- rado, em que momento será feita a análise de testes e de quanto tempo se dispõe para isso? Em que momento será feita a implementação dos testes e quanto tempo se dispõe para isso? Selecionar as métricas para monitoramento e controle de testes: qual é o parâmetro para que um projeto de testes seja considerado concluído com êxito? Orçar as atividades de teste: qual será o custo do projeto para cumprir com o cronograma estabelecido e atingir todo o escopo de testes? Determinar o nível de detalhes e a estrutura da documentação de teste (p. ex., fornecendo modelos ou exemplos de documentos): serão criados casos de testes? As falhas serão reportadas em alguma ferramenta? Cada uma dessas etapas é fundamental para o projeto e pode ser adaptada, dependendo das necessidades da equipe. Em síntese, um plano de testes precisa conter, obrigatoriamente, o escopo do projeto, os tipos de testes que serão executados, o cronograma, o orçamento disponível, as ferramentas que serão utilizadas e a definição dos documentos entregáveis que serão gerados ao final do projeto. Garantias da qualidade de software14 ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS (ABNT). NBR ISO 9001: sistemas de gestão da qualidade: requisitos. Rio de Janeiro, 2015. BARTIE, A. Garantia da qualidade de software. Rio de Janeiro: Elsevier, 2002. BASTOS, A. et al. Base de conhecimento em testes de software. 2. ed. São Paulo: Martins Fontes, 2007. CAMPOS, F. M. Qualidade, qualidade de software e garantia da qualidade de software são mesma coisa? [2019]. Disponível em: <http://www.linhadecodigo.com.br/artigo/1712/ qualidade-qualidade-de-software-e-garantia-da-qualidade-de-software-sao-as-mes- mas-coisas.aspx#ixzz5bar4W0yD>. Acesso em: 23 jan. 2019. INTERNATIONAL SOFTWARE TESTING QUALIFICATIONS BOARD (ISTQB). Glossário de termos de teste: CTFL foundation level: versão 3.2br. 2018. Disponível em: <https://www. bstqb.org.br/uploads/glossario/glossario_ctfl_3.2br.pdf>. Acesso em: 23 jan. 2019. KOSCIANSKI, A.; SOARES, M. S. Qualidade de software: aprenda as metodologias e técnicas mais modernas para desenvolvimento de software. 2. ed. São Paulo: Novatec, 2007. OLIVEIRA, G. Como se preparar para uma auditoria ISO e o que esperar dela. 2018. Dispo- nível em: <https://blog.softexpert.com/como-se-preparar-para-uma-auditoria-iso/>. Acesso em: 23 jan. 2019. Leitura recomendada INTERNATIONAL SOFTWARE TESTING QUALIFICATIONS BOARD (ISTQB). Certified tester: CTFL foundation level syllabus: 3.2. 2018. Disponível em: <https://www.bstqb.org.br/ uploads/syllabus/syllabus_ctfl_2018br.pdf>. Acesso em: 23 jan. 2019. 15Garantias da qualidade de software Conteúdo: Dica do professor Diversas são as estratégias de garantia da qualidade de software. Todas elas têm um papel fundamental e devem ser usadas com sabedoria. Veja na Dica do Professor, o modelo U e quando aplicar ISO, CMMI e MPS.BR. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/197195fa4a801b04d3da5f80b556a86d Exercícios 1) Júnior é um profissional que atua com garantia da qualidade de software em uma empresa multinacional. Ao entrar na empresa, precisou aprender diversas coisas, uma vez que um profissional de garantia da qualidade interage com todos os demais profissionais da equipe, visando a garantir a qualidade do processo de ponta a ponta. Analise as alternativas a seguir e assinale qual delas representa atividades que são feitas pelo profissional de garantia de qualidade. A) Realizar a reunião de requisitos, garantindo que o software será implementadode acordo com o que o cliente solicitou. B) Realizar diariamente a inspeção de código-fonte para garantir que os padrões de projetos estão sendo seguidos pela equipe de desenvolvimento. C) Realizar a certificação ISO 9001 da empresa por meio de critérios predefinidos. D) Avaliar o processo utilizado pela empresa e propor melhorias. E) Definir o processo de desenvolvimento de sistemas que será utilizado pela empresa. 2) Carlos trabalha com garantia da qualidade em uma empresa desenvolvedora de software e tem uma preocupação. Recorrentemente os clientes estão recebendo softwares com problemas, isto é, com situações em que o sistema para de funcionar ou tem um funcionamento inesperado. Dessa forma, Carlos precisa reforçar as atividades de garantia da qualidade. Assinale a alternativa que representa a medida que Carlos deveria adotar. A) Realizar mais testes de validação, porque é neles que são encontrados os erros. B) Revisitar o processo de testes de validação para analisar se está sendo feito o tipo de teste correto e na quantidade correta. C) Corrigir os testes de verificação para localizar os defeitos antes que eles cheguem até o cliente. D) Aplicar a norma ISO 9001 nos processos de desenvolvimento de software da empresa. E) Aplicar o modelo CMMI nos processos de desenvolvimento de software da empresa. 3) A empresa Xpto soluções em tecnologia está participando de um edital público que exige que tenha todos os seus processos documentados por algum modelo ou normativa. Sobre este cenário, assinale a alternativa que representa a solução para as necessidades desta empresa. A) A ISO 9000 não pode ser utilizada porque a Xpto é uma empresa de desenvolvimento de software. B) Aplicar a normativa ISO 9000 nos processos de desenvolvimento de sistemas da Xpto. C) Aplicar a norma ISO 9000 nos processos gerenciais da empresa, e os modelos CMMI ou MPS.BR no processo de desenvolvimento de sistemas. D) Aplicar um processo definido de controle de qualidade de software, como, por exemplo, métodos ágeis e então buscar uma certificação CMMI. E) Por ser uma empresa do segmento de desenvolvimento de sistemas e não ter sido especificada como uma empresa multinacional ou com obrigatoriedade de CMMI, utilizar MPS.BR. 4) O CMMI é um modelo de maturidade mundialmente reconhecido, que por vezes é utilizado como requisito em licitações de projetos de software. Para uma empresa, ter uma certificação CMMI aumenta a confiança dos seus clientes e pode trazer benefícios a curto e longo prazo. Sobre o modelo CMMI, analise as afirmações a seguir e assinale a alternativa correta. A) Foi proposto inicialmente sob o nome de CMM e descrevia apenas processos de desenvolvimento do software. B) Pode ser aplicado a empresas dos mais diversos segmentos. C) Não é reconhecido no Brasil, por isso utiliza-se aqui o modelo MPS.BR. D) Considera os níveis de maturidade inicial, gerenciado, definido gerencialmente, gerenciado quantitativamente, em otimização. E) No nível 1, a empresa precisa ter gerência de requisitos e planejamento de projeto bem definidos. A empresa AZTech está bastante preocupada com os seus processos, e por isso busca uma certificação de maturidade por meio do modelo CMMI. Esta empresa tem os seus requisitos 5) completamente gerenciados, realiza verificação e validação nos seus produtos de forma organizacional, treina seus colaboradores, realiza gerência de riscos, entre outras características às quais dispensa muita atenção, entretanto ainda não consegue avaliar de forma estatística os seus processos. Por essa descrição, em qual nível do CMMI a empresa poderia ser encaixada? A) Nível 1. B) Nível 2. C) Nível 3. D) Nível 4. E) Nível 5. Na prática Garantir a qualidade do software entregue para os clientes é uma tarefa muito complexa, que envolve diversos processos. A área de garantia da qualidade de software abrange todo o segmento de qualidade, processos e produtos, e tem por objetivo principal verificar se o que foi definido em termos de processos, tanto para verificação quanto para validação, está sendo cumprido. Pedro, como profissional que atua com garantia da qualidade de software, sabe que um dos documentos que é aliado do profissional de garantia da qualidade é o plano de testes, uma vez que com ele se torna possível monitorar, por exemplo, se está sendo destinado o tempo correto para o desenvolvimento dos testes. Veja Na Prática o plano desenvolvido pela equipe de Pedro. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/5117b796-c5e3-4a70-84e1-e7628644206d/08ea0fb1-79d4-4ca0-95b7-6fc94a442a33.jpg Saiba + Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor: Qualidade, qualidade de software e garantia da qualidade de software são as mesmas coisas? Neste link , você acessa um artigo que apresenta a diferenciação entre garantia e controle da qualidade. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. CMMI e MPS.BR: um estudo comparativo Este artigo relata a importância da qualidade em processos de desenvolvimento de Software, e descreve a respeito de dois modelos de maturidade de processo de software: o CMMI (Capability Maturity Model Integration) e o MPS (Melhoria de Processo de Software). Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. Entenda CMMI e CMM em menos de 10min Neste vídeo, você verá um resumo dos modelos de maturidade CMM e CMMI. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. http://www.linhadecodigo.com.br/artigo/1712/qualidade-qualidade-de-software-e-garantia-da-qualidade-de-software-sao-as-mesmas-coisas.aspx https://docplayer.com.br/56422799-Cmmi-e-mps-br-um-estudo-comparativo-juliana-de-fatima-franciscani-1-ligia-cristina-pestili-2.html https://www.youtube.com/embed/lFrsy6sPVic MPS.BR Neste vídeo, você verá o modelo MPS.BR e algumas questões respondidas sobre este modelo. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://www.youtube.com/embed/U5VHH1bbUb0
Compartilhar