Baixe o app para aproveitar ainda mais
Prévia do material em texto
25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&PA… 1/37 QUALIDADE EQUALIDADE E TESTE DE SOFTWARETESTE DE SOFTWARE Me. Roque Mait ino Neto IN IC IAR 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&PA… 2/37 introdução Introdução Aqui estamos em nosso primeiro encontro! Como de costume nestas ocasiões, na unidade que agora iniciamos, serão desenvolvidos temas introdutórios relacionados à qualidade de um produto de software, incluindo conceitos e processos a�ns. Devido o caráter estritamente objetivo da qualidade, deveremos abordar também seus padrões mais importantes e seus meios de gerenciamento e manutenção. Por �m trataremos das métricas aplicadas à qualidade, como meios de avaliar sua efetividade no processo de criação de um software. Esperamos que o domínio deste conteúdo funcione como boa base para seu aprofundamento nos assuntos relacionados ao tema e que lhe sirva como meio de alcançar seu sucesso pro�ssional. Caro aluno, prezada aluna, aceite nossas boas-vindas ao curso de Qualidade e Teste de Software! 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&PA… 3/37 É provável que você já tenha ouvido elogios bastante calorosos dirigidos a produtos mais antigos, construídos há algumas décadas e que, por algum motivo, ainda estão em operação. Tomemos como exemplo uma máquina de lavar roupas: seu material de construção resistente, seus comandos mais simples e a sensação de robustez que se associa à suas formas são motivos su�cientes para que alguns atribuam a ela maior qualidade do que atribuem às atuais. Hoje, no entanto, sabemos que fatores como consumo de energia elétrica, oferta de funções mais convenientes, baixo custo de manutenção e eletrônica con�ável são bastante importantes na composição daquilo que se considera uma boa máquina de lavar roupas. Justamente pela transitoriedade do que se entende como um produto de qualidade (o que é bom hoje pode não ser bom amanhã) e pela subjetividade envolvida nas avaliações (minha opinião sobre um produto pode não ser a mesma que a sua) é que se procura padronizar conceitos, métodos e formas de tópico 1 tópico 1 Fundamentos da Qualidade deFundamentos da Qualidade de SoftwareSoftware 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&PA… 4/37 avaliação da qualidade, sempre visando dar feição objetiva àquilo que pode sofrer tanta in�uência de fatores subjetivos. Com qualidade de software não é diferente. Pessoas e organizações que se importam com a excelência dos produtos que fabricam e/ou usam devem se orientar por parâmetros objetivos em suas comparações e medições de qualidade, o que certamente mitigará a interferência de fatores meramente subjetivos na difícil tarefa de imprimir o rótulo de “Produto de Qualidade” em um software. Antes de abordarmos algumas das boas de�nições de qualidade de software que a literatura nos oferece, vale a colocação, desde já, da seguinte questão: o que é um software de qualidade? Sha�er (2013) considera esta uma pergunta difícil de ser respondida de uma única maneira. Uma possível medida seria a adequação do produto ao seu propósito, o que signi�ca que o software funciona de acordo com o que foi projetado para fazer. A expressão "adequação ao propósito" pressupõe a existência de um registro da descrição das funcionalidades do produto. No caso de um software, seu propósito está re�etido em suas funções, que, por sua vez, estão descritas na especi�cação de requisitos. Uma outra medida é a qualidade do processo que gerou o software, item que abordaremos com mais detalhes adiante. Numa relação direta entre valores, muitos creem que um bom procedimento de criação é capaz de gerar um bom produto. Por �m, pessoas com raciocínio voltado à Engenharia de Software podem considerar que ter qualidade é simplesmente estar em conformidade com as especi�cações previamente de�nidas. Entender qualidade, seus padrões e suas medições são os desa�os centrais deste nosso encontro e começaremos a superá-los pela abordagem de alguns conceitos básicos relacionados ao tema. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&PA… 5/37 1.1 Qualidade do produto de software De�nir qualidade de um produto de software de forma universal e irretocável e ainda alcançar unanimidade na comunidade de observadores é tarefa difícil. Muitos autores lançaram conceitos que, com o passar do tempo, tornaram-se superados ou mostraram-se incompletos. De acordo com IEEE (2014), autores e organizações já de�niram, de formas diferentes, o termo qualidade. “Conformidade com os requisitos” e “atingimento de excelentes níveis de adequação para o uso” foram de�nições comuns no passado. Uma grande desenvolvedora relacionou qualidade como um valor de mercado, em que “o cliente é o árbitro �nal”. Mais recentemente a qualidade foi de�nida como a capacidade do produto de satisfazer requisitos explícitos e implícitos, mediante condições especí�cas e como o grau em que um produto de software atende aos requisitos estabelecidos, desde que tais requisitos representem com precisão as necessidades, desejos e expectativas das partes interessadas (IEEE, 2014). De qualquer forma, já podemos extrair dois fatos deste contexto: (i) as de�nições de qualidade baseiam-se na premissa da conformidade com os requisitos. Em outras palavras, a qualidade é dependente das necessidades que um software deve atender a �m de resolver algum problema no mundo real e (ii) qualidade não signi�ca perfeição, pois sempre será possível observar itens a serem melhorados em algo que se reconhece como de boa qualidade. Já que a perfeição em nossos produtos não é, via de regra, um estado atingível, uma boa ideia para se atingir boa qualidade é o estabelecimento de níveis aceitáveis de excelência em características do nosso software. Embora possam ser desdobradas em outros tantos, quesitos como a corretude, a e�ciência e a usabilidade são tidos como indicadores amplamente aceitos da qualidade do produto. Vejamos alguns deles (MAITINO NETO, 2016): 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&PA… 6/37 #PraCegoVer: Apresenta quatro setas. Cada seta é composta por uma imagem à sua esquerda, um texto centralizado e um número à sua direita. Estão dispostas de cima para baixo: a primeira seta possui como cor de fundo o vermelho, na sua extremidade esquerda temos a imagem de um celular, no centro temos a palavra corretude e à direita o número um. A segunda seta possui tom alaranjado como cor de fundo, na sua extremidade esquerda a imagem de uma lâmpada, no centro a palavra e�ciência e à direita o número dois. A terceira seta tem tom verde água, na sua extremidade esquerda a imagem de um grá�co, no centro a palavra usabilidade e à sua direita o número três. A quarta e última seta tem tom azul escuro, na sua extremidade esquerda a imagem de uma seta acertando o centro de um alvo, no centro a palavra Portabilidade e à sua direita o número quatro. Conforme a �gura 1.1 observa-se os seguintes indicadores: Corretude, trata-se da capacidade do software em executar suas funcionalidades conforme elas foram de�nidas. Se pudéssemos resumir este item em uma pergunta, ela seria próxima de: “o software faz aquilo que eu quero?”; E�ciência, relaciona-se com o grau de adequação do programa aos recursos de hardware, tais como processador e memória. Com a queda no custo do hardware, este quesito tem merecido menos atenção do que no passado,já que as máquinas podem ser Figura 1.1 - Indicadores da qualidade do produto Fonte: Adaptada de vectorcreator / 123RF. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&PA… 7/37 dimensionadas com mais recursos sem a necessidade de grandes investimentos �nanceiros. Usabilidade, este fator está relacionado com a facilidade de uso do produto. Em outras palavras, trata-se da medida da capacidade do público-alvo em obter valor do software por meio da sua interface; e Portabilidade, é possível usar o produto em outra plataforma? Trata-se da medida de facilidade em mudar o software de uma plataforma para outra. A portabilidade entre Windows e Mac pode ser usada como exemplo. Para que nossa noção de qualidade de um produto de software esteja consolidada, falta-nos contato com alguns conceitos mais objetivos. Observe o primeiro: “Qualidade é a totalidade das características de um produto de software que lhe confere a capacidade de satisfazer necessidades implícitas e explícitas” (ISO/IEC 9126-1, 2003, p. 17). Observe que o autor relaciona qualidade às características do produto e à sua capacidade de desempenhar o que se espera dele. Necessidades explícitas são aquelas objetivamente expostas por quem demandou o produto. Por exemplo, reflitare�ita Qual é o real interesse de um usuário em relação a um produto de software? Quando ele pensa em qualidade do software, em geral, ele se lembra da con�abilidade. No caso de o produto já ser relativamente con�ável, a usabilidade é que, de fato, fará diferença. Além disso, um produto sempre nos apresentará características visíveis e pelas quais esperamos. Haverá também certas particularidades intrínsecas, transparentes para o usuário, mas que comporão igualmente qualidade do produto. Fonte: Elaborado pelo autor. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&PA… 8/37 o cliente determina que o sistema deverá ser capaz de emitir relatório de vendas por região e por cliente. Já as necessidades implícitas são aquelas não ditas e que devem ser previstas pelo pro�ssional responsável pelo processamento dos requisitos. A compatibilidade do sistema ao hardware disponível pode ser um exemplo neste caso. Outra de�nição importante sobre qualidade de Software “é um processo sistemático que focaliza todas as etapas e artefatos produzidos com o objetivo de garantir a conformidade de processos e produtos, prevenindo e eliminando defeitos” (BARTIÉ, 2002, p. 16). Nesta de�nição o autor relaciona qualidade a um processo e não a uma providência ou ação isolada. Esta particularidade prepara nosso caminho para a abordagem do processo de desenvolvimento de software. Sigamos adiante. 1.2 Qualidade do Processo de Desenvolvimento de Software Relacionar diretamente a qualidade do produto à qualidade do processo que o criou é prática constante no contexto da qualidade de software. Não é exagerada a a�rmação de que apenas um bom processo de desenvolvimento irá gerar bons produtos, tampouco é a ideia de que assegurar a qualidade de todas as etapas da construção de um produto irá garantir sua qualidade global. Neste sentido, a divisão da Engenharia de Software voltada à qualidade do produto criou uma série de providências tomadas pela equipe durante o processo de desenvolvimento para assegurar a qualidade do seu produto, de maneira vinculada ao processo que o cria. A estas providências foi dado o nome de SQA (Garantia da Qualidade do Software, ou do inglês Software Quality Assurance) e uma das suas de�nições mais objetivas é expressa como "padrão planejado e sistemático de ações que são exigidas para garantir a qualidade do software” (PRESSMAN, 1995, p. 733). 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&PA… 9/37 A garantia da qualidade não elege um único momento no processo de desenvolvimento para atuar. Ao contrário, as atividades de SQA começam nas fases iniciais do projeto e seguem até a �nalização do software, o que nos faz supor que a responsabilidade das equipes do projeto e demais stakeholders também seja extensa. A de�nição de SQA inclui a expressão “padrão planejado e sistemático de ações”, não é mesmo? Pois bem, vamos então às ações (MAITINO NETO, 2016). Assegurar a qualidade de um software envolve algumas tarefas e as três das mais importantes estão descritas na sequência (PRESSMAN, 1995): Aplicação de métodos técnicos: as providências associadas à SQA começam a ser aplicadas a partir da especi�cação e do projeto do sistema. Uma especi�cação de requisitos imprecisa certamente irá comprometer a qualidade do produto �nal. Tão logo uma especi�cação, um protótipo ou um lançamento preliminar de um sistema tiver sido criado, será necessário avaliar sua qualidade. Realização de revisões técnicas formais: esta é a atividade central da avaliação da qualidade de um produto. Uma revisão técnica formal é um encontro previsto na SQA no qual uma equipe (de 3 a 5 pessoas, normalmente) destacada para o trabalho concentra-se na busca por problemas de qualidade no produto ou, mais comumente, numa parte especí�ca dele. Elas são aplicadas em vários momentos do processo e são também, usualmente, referenciadas como walkthrough (passo a passo) (MAITINO NETO, 2016). Atividades de teste de software: embora seja tema a ser abordado adiante, vale registrar, desde já, a criticidade da atividade de teste no contexto da qualidade. A técnica de criação de software apurada, o talento da equipe e a precisão do método não são capazes de garantir a ausência total de defeitos no código. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 10/37 O teste é uma atividade desempenhada para avaliar a qualidade do produto e para sua melhoria, por meio da identi�cação de defeitos e problemas. O teste de software consiste na veri�cação dinâmica do comportamento de um programa em um conjunto �nito de casos de teste, adequadamente selecionado a partir de um número geralmente in�nito de execuções do programa (IEEE, 2014). Nas próximas unidades trataremos de teste de software de modo mais bem detalhado. Por ora, abordaremos padrões de qualidade. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 11/37 atividades atividades Embora possa não haver aceitação universal de uma única de�nição de software de qualidade, existem algumas medidas que são geralmente aceitas. A exatidão é uma delas; se um programa não conseguir adicionar uma coluna de números corretamente, por exemplo, geralmente não é considerado de alta qualidade. Em relação às atividades que compõem a garantia da qualidade de software (SQA), analise as a�rmações que seguem: I – Para justi�car sua aplicação, as atividades de SQA devem focar o sistema a partir do momento em que ele for declarado implementado. II – O teste de software integra as atividades de SQA e só pode ser aplicado se o programa (ou parte dele) puder ser executado. III - Uma revisão técnica formal integra as atividades de SQA e ocorre quando uma equipe busca não-conformidades na qualidade do produto. É verdadeiro o que se a�rma apenas em: a) A�rmativas I e II. b) A�rmativas II e III. c) A�rmativa III. d) A�rmativa I. e) A�rmativas II. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 12/37 Em quais parâmetros podemos con�ar na hora de escolhermos um modelo de qualidade? Existem instituições que criam padrões de qualidade e os atualizam com regularidade? Há um padrão melhor que o outro? Este segundo tópico da primeiraunidade aborda essas questões e alguns dos mais bem-conceituados modelos de qualidade, com destaque para seus pontos fortes e aplicações. Antes de nos debruçarmos sobre eles, vale a pena sabermos um pouco mais sobre a organização que os cria e mantém. A cidade de Genebra, na Suíça, abriga a sede da ISO, sigla da International Organization for Standardization, órgão não vinculado ao governo e que, desde 1947, já publicou mais de 20.000 normas internacionais que servem como padrão para atividades relacionadas à tecnologia, manufatura, agricultura, saúde e outras tantas atividades humanas. Devido a proliferação de diferentes siglas em línguas diferentes para o órgão, os fundadores resolveram adotar ISO mundialmente, por se tratar de palavra tópico 2 tópico 2 Padrões Relacionados comPadrões Relacionados com Qualidade de SoftwareQualidade de Software 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 13/37 derivada do grego isos, que signi�ca igual (ISO, s.d.) Dois dos principais padrões de qualidade utilizados mundo afora são: 2.1 ISO 9001 – Sistema de Gestão da Qualidade Certamente que você já conhecia a norma 9001 da ISO por nome. Trata-se de um dos mais utilizados padrões de qualidade do mundo. Ele fornece especi�cação para sistemas de gestão de qualidade, com vistas às demandas do cliente em relação ao produto (SEAR, 2015). Por ser tão conhecido e bem referenciado, sua implantação sinaliza que a organização é capaz de fornecer produtos em consonância com os requisitos do cliente. Embora seja aplicável no processo de software, este padrão pode ser implantado em qualquer organização, a despeito de seu tamanho e �nalidade. A ISO 9001:2015 (2015 indica o ano em que foi atualizada) adota uma abordagem de processo para desenvolvimento, implementação e melhoria da e�cácia de um sistema de gestão da qualidade, com o objetivo de aumentar a satisfação do cliente com o produto. Ela se baseia em 7 princípios de gerenciamento de qualidade: Foco no Cliente, Liderança, Engajamento de Pessoas, Abordagem de Processo, Melhoria, Tomada de Decisão Baseada em Evidências, Gestão de Relacionamento (MAITINO NETO, 2016). 2.2 ISO/IEC 90003 – Orientações para Qualidade de Processo de Software Se a ISO 9001 aborda aspectos gerais da qualidade, falta-nos uma norma que forneça parâmetros para as atividades relacionadas à qualidade de software. Esta norma existe e é conhecida por ISO/IEC 90003:2014. Ela endereça orientações para aplicação da ISO 9001 nos processos de aquisição, 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 14/37 fornecimento, desenvolvimento, operação e manutenção de um programa de computador e serviços de suporte relacionados. Sua aplicação é indicada em sentido amplo para transações de produtos de software entre organizações. Especi�camente é usada em processos de aquisição de produtos que darão suporte a um processo em uma empresa, produtos relacionados à um equipamento especí�co de hardware ou produtos relacionados à um serviço de software. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 15/37 atividades atividades Em quais parâmetros podemos con�ar na hora de escolhermos um modelo de qualidade? Existem instituições que criam padrões de qualidade e os atualizam com regularidade? Há um padrão melhor que o outro? Considerando as características gerais dos padrões de qualidade de software, analise as a�rmativas a seguir: I – Um padrão de qualidade sempre deve ser criado e mantido pela desenvolvedora do software. II – A adoção de um padrão de qualidade pode contribuir para que a desenvolvedora que o adotou seja reconhecida como organização preocupada com a qualidade. III – Os padrões de qualidade disponíveis referem-se apenas à qualidade do processo, já que a qualidade do produto pode ser padronizada apenas pela sua desenvolvedora. É verdadeiro o que se a�rma apenas em: a) A�rmativas I e II. b) A�rmativas II e III. c) A�rmativa III. d) A�rmativa I. e) A�rmativa II. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 16/37 A gerência da qualidade de um software pode e deve ser entendida como um procedimento sistêmico, idealmente, já incorporado na organização e que inclua processos, pessoas e ferramentas dirigidas à obtenção da qualidade do produto. Quando tomamos como exemplos ferramentas computacionais de gerenciamento �nanceiro ou de gerenciamento de pessoas, espera-se que tais sistemas sejam partes integrantes da organização, alinhados com necessidades particulares de �nanças ou de gestão de pessoas. De acordo com Moorthy (2013), um sistema de gestão de qualidade de software deve possuir 4 níveis: o nível 1 é composto pelo manual de qualidade da empresa; o nível 2 refere-se aos métodos e processos usados pela equipe para entregar suas tarefas; o nível 3 contém as linhas principais, os checklists e os modelos, usados com bastante frequência no dia a dia e importantes na manutenção da consistência das informações e, por �m, o nível 4 refere-se aos tópico 3 tópico 3 Gerência de Qualidade deGerência de Qualidade de SoftwareSoftware 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 17/37 registros e documentos usados para �ns de validação de um produto, usados como evidências de uma atividade e úteis para referência futura. A �gura a seguir mostra a organização dos níveis de um sistema de gestão de qualidade. #PraCegoVer: Apresenta uma pirâmide, dividida em quatro partes, cada uma com uma cor e uma descrição. A base da pirâmide possui cor verde com a descrição: Registros e documentos que servem para validar que os requisitos foram atendidos. O segundo nível da pirâmide, de baixo para cima possui a cor azul claro com a descrição: Linhas principais, checklists e modelos. O terceiro nível da pirâmide, de baixo para cima possui a cor azul escuro com a descrição: Métodos e processos. O topo da pirâmide, possui a cor vermelha e a descrição: Manual de qualidade. Nunca é demais ressaltar que, se quisermos conferir à qualidade o lugar que lhe é devido no processo de criação de um produto de software, então também devemos tratá-la como a um processo, que deve permear a criação. A busca pela qualidade deve de�nir os requisitos, os responsáveis por cada etapa, as medições incluídas e o feedback. Em poucas linhas, o planejamento da qualidade envolve a de�nição do produto no que se refere às suas Figura 1.2 - Níveis de um sistema de gestão de qualidade de software Fonte: MOORTHY (2013, p. 184). 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 18/37 características de qualidade e o planejamento dos recursos e atividades para se obter o produto desejado. Pois bem, um processo especí�co de gestão de software é de�nido no padrão IEEE 12207.0-96 e inclui o processo de garantia da qualidade, mais conhecido pela abreviatura SQA (Software Quality Assurance ou Garantia da Qualidade do Software). Como você bem se lembra, este processo foi abordado em nosso item 1. Outro processo que visa conferir qualidade ao produto é o que chamamos de Veri�cação e Validação. Para facilitar as referências ao tema, os termos veri�cação e validação são tratados como apenas um. De acordo com IEEE (2014), trata-se de um processo bem estruturado para avaliar os produtos de software em todo o seu ciclo de vida, do planejamento até sua efetiva entrega. Em resumo, retrata o esforço da equipe para garantir que a qualidade está embutida no softwaree que ele re�ete o desejo do usuário. A Veri�cação e Validação (V&V), como também é conhecido esse processo, está interessada diretamente na qualidade do produto. O grupo revisões e auditorias inclui dois principais procedimentos (MAITINO NETO, 2016): Revisões técnicas: o objetivo de uma revisão (ou análise) técnica é o de avaliar um produto de software para determinar a sua adequação para a sua utilização pretendida. O objetivo é o de identi�car discrepâncias a partir das especi�cações e dos padrões aprovados. Os resultados devem fornecer evidências que con�rmem (ou não) que o produto atende às especi�cações; Inspeções: o propósito de uma inspeção é detectar e identi�car anomalias no software. Esta prática se diferencia das revisões em dois aspectos: alguém que exerça cargo de gestão sobre qualquer membro da equipe de inspeção não deverá participar desse processo, e uma inspeção deve ser conduzida por um facilitador imparcial, treinado em 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 19/37 técnicas de inspeção. As inspeções incluem também um líder, um responsável pelos registros da seção e um número reduzido de inspetores, comumente de 2 a 5 pessoas. Abordados itens fundamentais da gestão da qualidade de um software, avançamos agora rumo aos meios de se medir o produto. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 20/37 atividades atividades A Inspeção de Software é um processo formal de veri�cação do software, que pode ser aplicado para, praticamente, todos os artefatos gerados durante o ciclo de desenvolvimento e que tem o custo mais alto de aplicar, mas também é o que produz o melhor resultado. Considerando conteúdo relacionado à inspeção de software, assinale a alternativa que contém a correta caracterização deste procedimento. a) As inspeções não preveem a escolha de um líder para o procedimento. b) Inspeções e revisões técnicas diferenciam-se apenas pela fase do processo em que são executadas. c) Numa inspeção não se admite a participação de alguém que exerça cargo de gestão sobre qualquer membro da equipe de inspeção. d) Nas inspeções, a quantidade de participantes varia de acordo com a quantidade de defeitos que aqui imagina que o produto tenha. e) É durante o processo de inspeção que a quantidade de participantes da equipe de qualidade é discutida e revista. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 21/37 É muito difícil concebermos uma atividade desempenhada pro�ssionalmente que não inclua maneiras de se medir o que é produzido. Essas medidas, sejam relacionadas ao tamanho físico, à complexidade funcional ou ao desempenho, visam assegurar algo indispensável em um ambiente produtivo: o controle. Neste tópico você terá contato com o conceito de métrica e medição, com algumas formas de medições de um produto de software, além de revisões e inspeções. Com essas providências a equipe deverá garantir e manter a qualidade de um software. Em frente! 4.1 Métrica e Medição A medição é o processo pelo qual os números são atribuídos aos atributos de entidades do mundo real. Na medição, atribui-se um valor numérico a uma grandeza física. Por exemplo, quando medimos a distância entre dois pontos e obtemos 5 metros, estamos atribuindo o valor 5 à grandeza física chamada tópico 4 tópico 4 Métricas de Qualidade de SoftwareMétricas de Qualidade de Software 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 22/37 distância. Usaremos o termo medição tanto para descrever um processo quanto um valor de atributo. A medição é tipicamente uma quanti�cação direta, que envolve um único valor, ao passo que métrica é uma quanti�cação indireta, que envolve o cálculo e o uso de mais de uma medida. Vamos a um exemplo de métrica: considerando a medida de número de linhas de código de um programa e a medida de número de defeitos encontrados em todo o programa, podemos estabelecer a métrica de quantidade de defeitos por linha de código. É desejável que as métricas sejam capazes de fornecer informação relevante para a tomada de decisão e para a comparação de desempenhos. É necessário que você tenha em mente um fato importante: existem métricas referenciais, usadas normalmente de forma padronizada pelos desenvolvedores. No entanto, uma métrica pode ser baseada no objetivo da organização e na sua necessidade de informação para a tomada de uma decisão. Devemos considerar também que uma métrica deve ser calculada com facilidade, que ela tenha condições de ser repetida quantas vezes forem necessárias, que sua unidade seja compreensível e universal e que, por �m, seu processamento possa ser automatizado. Imagine que dois projetos de software – com alguma similaridade funcional entre eles – estejam em construção. Se você quiser saber qual dos dois projetos está sendo mais produtivo, você deve realizar a medição do tamanho do projeto e do esforço para produzi-lo. Contudo, sem uma métrica, a comparação não seria viável, tampouco útil (MOORTHY, 2013). Já sabemos que, feitas as medições, podemos (e devemos) utilizá-las para gerar as métricas. Para �ns de classi�cação, algumas métricas são geradas a partir de medidas obtidas diretamente, geralmente, por contagem do atributo observado. Às métricas geradas damos o nome de métricas diretas. Outras métricas, porém, são obtidas indiretamente. A elas damos o nome de métricas indiretas. Para �ns de averiguação da qualidade de um software é comum a aplicação de medidas em fatores que caracterizam este software. Para isso, nada mais 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 23/37 apropriado do que a busca por um modelo de qualidade consagrado para de�nirmos as características desejáveis em um programa. O modelo de qualidade ISO/IEC 25010:2011 estabelece um conjunto de oito características internas e externas de um software, divididas em outras tantas subcaracterísticas. Para facilitar a compreensão global da norma e facilitar sua síntese, o quadro 1.1 apresenta tais características de qualidade, separadas entre próprias do produto e próprias do uso, conforme será́ explicado na sequência. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 24/37 Tipo Características Subcaracterísticas Características do produto Adequação funcional Completude funcional, corretude funcional (acurácia) e funcionalidade apropriada. Usabilidade Maturidade, disponibilidade, tolerância à falhas e recuperabilidade. Usabilidade Apropriação reconhecível, inteligibilidade, operabilidade, proteção contra erro do usuário, estética de interface com o usuário e acessibilidade. E�ciência de desempenho Comportamento em relação ao tempo, utilização de recursos, capacidade. Segurança Con�dencialidade, integridade, não repúdio, rastreabilidade de uso e autenticidade. Compatibilidade Coexistência e Interoperabilidade. Capacidade de Manutenção Modularidade, reusabilidade, analisabilidade, modi�cabilidade, testabilidade. Portabilidade Adaptabilidade, instalabilidade 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 25/37 Quadro 1.1 - Modelo de qualidade da ISO 25010:2011. Fonte: WAZLAWICK (2013, p. 233). #PraCegoVer: Apresenta um quadro com fundo na cor cinza com três colunas, onde a primeira linha está na cor azul-escuro contendo o título de cada coluna. As demais linhas alternam em tons de cinza-claro e cinza-escuro.A primeira coluna representa o tipo de característica de qualidade, sendo listados os seguintes tipos: Características de Produto e Característica de Uso. Na segunda coluna são apresentadas as características de cada tipo apresentado e na terceira coluna são apresentadas as subcaracterísticas de cada característica. No tipo características do produto, na primeira linha, temos como característica Adequação funcional e como subcaracterística: Completude funcional, corretude e substituibilidade. Características de uso Efetividade Efetividade. E�ciência E�ciência. Satisfação Utilidade, prazer, conforto e con�ança. Uso sem riscos Mitigação de risco econômico, mitigação de risco à saúde e segurança e mitigação de risco ambiental. Cobertura de contexto Completude de contexto e �exibilidade. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 26/37 funcional (acurácia) e funcionalidade apropriada. Na segunda linha temos como característica Usabilidade e como subcaracterísticas: Maturidade, disponibilidade, tolerância à falhas e recuperabilidade. Na terceira linha temos como característica Usabilidade e como subcaracterísticas: Apropriação reconhecível, inteligibilidade, operabilidade, proteção contra erro do usuário, estética de interface com o usuário e acessibilidade. Na quarta linha temos como característica E�ciência de desempenho e como subcaracterísticas: Comportamento em relação ao tempo, utilização de recursos, capacidade. Na quinta linha temos como característica Segurança e como subcaracterísticas: Con�dencialidade, integridade, não repúdio, rastreabilidade de uso e autenticidade. Na sexta linha temos como característica Compatibilidade e como subcaracterísticas: Coexistência e Interoperabilidade. Na sétima linha temos como característica Capacidade de Manutenção e como subcaracterísticas: Modularidade, reusabilidade, analisabilidade, modi�cabilidade, testabilidade. Na oitava linha temos como característica Portabilidade e como subcaracterísticas: Adaptabilidade, instalabilidade e substituibilidade. Na nona linha temos como característica Efetividade e como subcaracterística: Efetividade. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 27/37 Na décima linha temos como característica E�ciência como subcaracterística: E�ciência. No tipo características de uso, na primeira linha temos como característica Satisfação e como subcaracterísticas Utilidade, prazer, conforto e con�ança. Na segunda linha temos como característica Uso sem riscos e como subcaracterísticas: Mitigação de risco econômico, mitigação de risco à saúde e segurança e mitigação de risco ambiental. Na terceira linha temos como característica Cobertura de contexto e como subcaracterísticas: Completude de contexto e �exibilidade. Os parâmetros de qualidade, normalmente, são segmentados entre os que possuem mais a�nidade com o processo, com o produto percebido pelo usuário ou com o produto sob o ponto de vista da equipe. As medidas de qualidade internas, por exemplo, servem para avaliar aspectos que usualmente são percebidos apenas pelos desenvolvedores. A capacidade de manutenção e a facilidade em se aplicar testes são bons exemplos dessas medidas. As medidas de qualidade externa alcançam características avaliadas pela equipe do ponto de vista do usuário. Por exemplo, a e�ciência e capacidade de operação de um programa. O modelo ISO/IEC 25010:2011, cujas características foram resumidas na tabela acima, agregou as características internas e externas num único grupo e o chamou de características do produto. Elas podem ser avaliadas no ambiente de desenvolvimento, ao passo que as características do software em uso podem apenas ser avaliadas durante o efetivo uso do sistema. Parece-nos bastante desa�ador construir um produto que tenha boa adequação à todas essas características e, por isso, vale conhecer melhor algumas das 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 28/37 características de qualidade mencionadas no quadro 1.1. 4.1.1 Adequação funcional Antes conhecida como funcionalidade apenas; ela se refere à existência de um conjunto de funções que satisfazem às necessidades previamente estabelecidas, quando o produto é usado sob condições especi�cas. Duas de suas subcaracterísticas são a Completude Funcional (o software apresenta todas as funções necessárias ao usuário?) e a Corretude Funcional ou Acurácia (o software gera dados e consultas corretos segundo o que foi de�nido?) (WAZLAWICK, 2013). 4.1.2 Con�iabilidade Se um software é capaz de manter comportamento consistente com o que se espera dele ao longo do tempo, então ele pode ser considerado con�ável. A con�abilidade tem a ver com o funcionamento do programa em situações incomuns. Ela pode ser medida diretamente e estimada usando-se dados históricos e de desenvolvimento, ou seja, um computador poderá́ ser considerado livre de falhas quando não tiver alguma incidência em um determinado ambiente e num determinado período (PRESSMAN, 1995). Desta de�nição, o que ainda não temos claro é o que signi�ca falha. Quando tratarmos de teste de software com mais detalhes, esse conceito será abordado. Vale aqui também destacar duas de suas subcaracterísticas: a Disponibilidade (avalia o quanto o software está operacional e livre para uso quando necessário) e a Tolerância à Falhas (avalia a forma como o software reage em situação anormal). 4.1.3 Usabilidade De forma simpli�cada, podemos entender essa característica como a facilidade em se usar um programa, do ponto de vista do usuário. Em linhas gerais, o programa é fácil de usar se ele é (REISS, 2012): Funcional – ele realmente 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 29/37 funciona?; Responsivo – ele me fornece respostas adequadas?; Ergonômico – eu posso facilmente ver, clicar, arrastar e girar as coisas?; Conveniente – tudo está bem onde eu preciso que esteja? “À prova de tolos” – o projetista me ajuda a não cometer erros ou quebrar coisas? A usabilidade também apresenta subcaracterísticas, incluindo (WAZLAWICK, 2005): Operabilidade – o produto é fácil de usar e controlar?; Proteção contra erro do usuário – o programa consegue evitar que o usuário cometa erros?; e Acessibilidade – avalia o grau em que o produto foi projetado para atender usuários com necessidades especiais. 4.1.4 Segurança Se um programa consegue proteger os dados e as funções de acessos não autorizados, então ele tem um bom nível de segurança. Algumas de suas subcaracterísticas devem ser destacadas. Entre elas: Con�dencialidade – mede o grau em que os dados e funções �cam disponíveis para quem, de fato, tem autorização para acessá-los; Rastreabilidade de uso – mede o grau em que as ações realizadas por uma pessoa ou por um sistema podem ser rastreadas de forma a ser efetivamente comprovado que, de fato, foi essa pessoa ou sistema que realizou tais ações. 4.1.5 Capacidade de manutenção Trata de uma característica que atrai interesse direto apenas da equipe de desenvolvimento, já que não afeta a percepção do usuário em relação ao sistema. Como você certamente já inferiu, trata-se da capacidade do sistema em passar por manutenção. Assim como todas as outras características apresentadas, essa também conta com divisões. Vamos a elas: Modularidade – o sistema é bem dividido em módulos? Mudanças em um dos módulos devem causar mínimo impacto nos outros; Reusabilidade – há partes do sistema que podem ser usadas na construção de outro sistema?; Analisabilidade – o sistema permite que se faça depuração com facilidade? 25/09/2021 13:13 Ead.brhttps://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 30/37 No âmbito das características de qualidade do software em uso, vale destacar (WAZLAWICK, 2013): 4.1.6 Efetividade Capacidade que o produto tem de proporcionar ao cliente o atingimento de seus objetivos de negócio. 4.1.7 Satisfação Capacidade que o produto tem de satisfazer o cliente em ambiente de uso. Pode ser dividida em Utilidade, Prazer, Conforto e Con�ança. 4.1.8 Uso sem riscos O uso do software não pode implicar riscos para pessoas, negócios ou ambiente. Divide-se em mitigação do risco econômico, mitigação do risco ambiental e mitigação do risco à saúde e segurança. Outros parâmetros têm sua descrição disponível na literatura e podem ser usados como medidas para a qualidade de um software. Como marco introdutório trataremos neste tópico apenas da ISO/IEC 25010:2011. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 31/37 saiba mais Saiba mais Com linguagem simples e objetiva, o autor do artigo indicado defende a importância do teste no processo de qualidade, promovendo comparações com outras áreas e mencionando as dimensões da qualidade. ACESSAR https://www.devmedia.com.br/a-importancia-dos-testes-para-a-qualidade-do-software/28439 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 32/37 atividades atividades O modelo ISO/IEC 25010:2011, cujas características foram resumidas no Quadro 1.1 - Modelo de qualidade da ISO 25010:2011, agregou as características internas e externas num único grupo e o chamou de características do produto. Elas podem ser avaliadas no ambiente de desenvolvimento, ao passo que as características do software em uso podem apenas ser avaliadas durante o efetivo uso do sistema. Tendo como base os parâmetros de qualidade considerados na avaliação de um produto, analise as a�rmações que seguem: I) A con�abilidade de um software está relacionada ao grau de adequação da metodologia que o criou às habilidades da equipe de qualidade. II) A rastreabilidade de uso é uma subcaracterística da usabilidade e refere-se ao grau em que as ações realizadas por uma pessoa ou por um sistema podem ser rastreadas. III) A adequação funcional está relacionada ao grau em que as funções do sistema satisfazem os requisitos previamente especi�cados. É correto apenas o que se a�rma em: a) A�rmativa III. b) A�rmativas II e III. c) A�rmativas I e III. d) A�rmativas I, II e III. e) A�rmativa II. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 33/37 indicações Material Complementar LIVRO Engenharia de Software: Conceitos e Práticas Raul Sidnei Wazlawick Editora: Campus ISBN: 978-85-352-6120-2 Comentário: O livro indicado trata a Engenharia da Qualidade sob a ótica da qualidade, mesmo quando aborda questões meramente procedimentais. Embora tenha caráter genérico, o livro dedica três capítulos exclusivamente para processos de qualidade, incluindo ótimo tratamento para testes de software. 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 34/37 FILME O Jogo da Imitação Ano: 2014 Comentário: O �lme está ambientado na Segunda Guerra Mundial e trata da atuação de Alan Turing na criação de um artefato eletromecânico capaz de decifrar o código dos nazistas para troca de mensagens entre o comando de guerra e seus homens de campo. TRA ILER 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 35/37 conclusão Conclusão Chegamos ao �nal da primeira unidade do nosso curso e a diversidade de assuntos tratados, certamente, foi uma das suas marcas. Analisamos diversas feições do que se entende por qualidade sob a ótica da possibilidade de aprimoramento constante dos produtos e processos inseridos no contexto. Registramos alguns conceitos formais sobre o tema para, então, tratarmos da qualidade do produto e da qualidade do processo. Como a objetividade deve ser buscada nas avaliações de qualidade, propusemos visão geral de duas importantes normas de qualidade. Na sequência, buscamos de�nir meio de se praticar a gerência da qualidade e, por �m, abordamos algumas características de um software que podem ser usadas como parâmetro de medição para sua qualidade. Em nosso próximo encontro daremos mais um passo em busca da qualidade ao tratarmos de teste de software. Bom estudo e até a próxima! referências Referências Bibliográ�ca 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 36/37 ALL About ISO. International Organization of Standardization. Disponível em: <http://www.iso.org/iso/home/about.htm>. Acesso em: 14 mar. 2018. ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 9126-1: engenharia de software – qualidade de produto – parte 1: modelo de qualidade. Rio de Janeiro: ABNT, 2003. BARTIÉ, A. Garantia da qualidade de software: as melhores práticas de Engenharia de Software aplicadas à sua empresa. 5. ed. São Paulo: Elsiever, 2002. IEEE – INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS. SWEBOK: Guide to the Software Engineering Body of Knowledge. 3. ed. Piscataway: IEEE, 2014. Disponível em: <https://ieeecs- media.computer.org/media/education/swebok/swebok-v3.pdf>. Acesso em: 03 abr. 2019. MAITINO NETO, R. Engenharia de software. Londrina: Editora e Distribuidora Educacional S.A., 2016. 224 p. MOORTHY, V. Jumpstart to software quality assurance. [S.I. : s.n.], 2013. PRESSMAN, R. S. Engenharia de Software. São Paulo: Makron Books, 1995. ______. São Paulo: Pearson Prentice Hall, 2009. 1056 p. REISS, E. Usable usability: simple steps for making stu� better. Indianapolis: John Wiley & Sons, 2012. SEEAR, D. J. ISO 9001: 2015 Back to the future. A review of the new ISO Annex SL structure for Certi�cation Standards using the draft ISSO 9001: 2015 to explain the changes. USA: AuthorHouse, 2015. SHAFFER, S. C. A brief introduction to software development and quality assurance management. [S.l.: s.n.], 2013. http://www.iso.org/iso/home/about.htm https://ieeecs-media.computer.org/media/education/swebok/swebok-v3.pdf 25/09/2021 13:13 Ead.br https://anhembi.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_736561_1&P… 37/37 WAZLAWICK, R.S. Engenharia de Software: conceitos e práticas. Rio de Janeiro: Elsevier, 2013. IMPRIMIR
Compartilhar