Prévia do material em texto
<p>Imprimir</p><p>INTRODUÇÃO</p><p>Bem-vindo ao estudo da disciplina Qualidade e Automação de Testes. Aqui, você estudará desde a história da</p><p>testagem de softwares até as modernas ferramentas utilizadas para a realização de testes de softwares,</p><p>programas e aplicativos oriundas das metodologias ágeis, como o TDD e o BDD, que são as siglas de</p><p>Desenvolvimento Orientado a Testes e a Comportamentos. Quando testamos um código, queremos encontrar</p><p>erros, os chamados bugs. A função de um bom teste é encontrar erros de programação devido à linguagem</p><p>ou a erros humanos de interpretação do desejo do cliente na elaboração dos programas, pois, desta forma,</p><p>evitamos que um software seja vendido com muitos bugs. Nenhum de nós volta a usar um aplicativo sem</p><p>receio quando o utilizamos pela 1ª vez e ele não funciona da maneira que nos foi prometido. Atualmente, as</p><p>indústrias e os fabricantes de jogos e aplicativos procuram pro�ssionais que sejam capazes de identi�car e</p><p>corrigir erros de programação no momento da realização ou antes que um produto seja vendido</p><p>comercialmente. Elas procuram por pro�ssionais que queiram trabalhar em equipe e interpretar o desejo do</p><p>cliente. Depois de concluir este curso, você será capaz de realizar a testagem, inclusive, elaborando</p><p>procedimentos e executando testes de softwares com muita qualidade, através de um conhecimento baseado</p><p>em técnicas inovadoras que te farão um pro�ssional disputado pelo mercado de trabalho.</p><p>HISTÓRIA DA TESTAGEM DE SOFTWARES</p><p>Muitos historiadores atribuem a origem do termo bug a Thomas Edson, o inventor da lâmpada elétrica e do</p><p>gramofone, o primeiro gravador de voz, porque um inseto – bug, em inglês – caiu em seu gramofone,</p><p>dani�cando uma de suas gravações. Outros historiadores atribuem o termo aos engenheiros que estavam</p><p>construindo o Mark I, pois uma traça dani�cou alguns dos seus sistemas, e os engenheiros chamaram a este</p><p>erro de bug. A Figura 1 mostra a imagem do Mark I, o 1º computador digital construído pelos engenheiros da</p><p>IBM e enviado para Harvard.</p><p>Figura 1 | Mark I, o primeiro computador digital</p><p>Fonte: Flickr.</p><p>Aula 1</p><p>A HISTÓRIA E OS FUNDAMENTOS DA TESTAGEM EM</p><p>SOFTWARES</p><p>Evolução da testagem em softwares.</p><p>47 minutos</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+-… 1/30</p><p>O certo é que, quando qualquer problema de programação ou de sistema aparece, dizemos que o software</p><p>“bugou”, ou seja, apresenta um erro que torna sua execução falha. No começo do desenvolvimento de</p><p>softwares e programas, os desenvolvedores não se atentavam para a importância da testagem antes do</p><p>término do processo, tanto que alguns programas e softwares chegaram a ir para o mercado sem sequer</p><p>terem sido testados. Com isso, o número de falhas de programação aumentou signi�cativamente a ponto de a</p><p>testagem começar a ser considerada um item essencial no desenvolvimento de softwares e programas. O</p><p>primeiro livro que abordou este tema, com um capítulo inteiro dedicado ao assunto, foi Computer</p><p>Programming Fundamentals, e o primeiro autor a escrever um livro totalmente dedicado a este assunto foi</p><p>Glenford Mayers, com seu livro A arte do teste de software. A partir daí, os órgãos regulamentadores, como o</p><p>IEEE (lemos I3E) e o IEC (lemos I E C, cada letra separadamente), passaram a desenvolver parâmetros para a</p><p>testagem de softwares. Estes métodos e procedimentos garantiam que um software fosse testado antes de</p><p>ser lançado no mercado, diminuindo o índice de falhas em programas de forma drástica.</p><p>No início dos anos 2000, foi publicado o livro Teste de Software, de Emerson Rios e Trayahú Moreira,</p><p>referência sobre o assunto no Brasil. A partir disso, várias empresas lançaram produtos para ajudar os</p><p>desenvolvedores e programadores a realizar a testagem automática dos seus programas e softwares,</p><p>tornando o trabalho mais con�ável e rápido. Um dos primeiros softwares de testagem, o Selenium®, que</p><p>automatiza ferramentas web para a realização de testes, foi fabricado pela empresa ThoughtWorks, em</p><p>Chicago. Atualmente, o Brasil realiza, através da Associação Latino-Americana de Teste de Software, um</p><p>exame para emitir certi�cados para os pro�ssionais que querem uma quali�cação extra nesta área, a qual é</p><p>emitida pelo International Software Testing Quali�cations Board (ISTQB), sendo que o 1º nível é chamado de</p><p>Certi�ed Tester.</p><p>Desta forma, os desenvolvedores de softwares, programas e aplicativos perceberam que um programa pode</p><p>ter seu valor expandido em razões estratosféricas se ele chegar ao mercado com erros que poderiam ser</p><p>percebidos e corrigidos antes do lançamento do produto e incorporaram a testagem de softwares como uma</p><p>das etapas fundamentais no seu desenvolvimento. Outro importante ganho foi terem feito este procedimento</p><p>segundo critérios apresentados e aplicados em normas de qualidade, o que fez com que a equipe de</p><p>desenvolvimento de softwares tenha que trabalhar junto à equipe de qualidade, permitindo um ganho na</p><p>descoberta de erros e falhas.</p><p>VIDEOAULA: HISTÓRIA DA TESTAGEM DE SOFTWARES</p><p>Neste vídeo, iremos nos aprofundar na história da testagem de softwares com a análise de algumas</p><p>estatísticas sobre a ocorrência de falhas em programas, assim como apresentaremos alguns casos de códigos</p><p>que foram lançados com inúmeras falhas que ajudaram a contribuir para a evolução da testagem.</p><p>ETAPAS DA TESTAGEM DE SOFTWARES</p><p>Primeiramente, de�niremos o que é um teste de software para, depois, estudarmos as etapas da testagem.</p><p>Dias Neto (2016, p. 1) de�ne teste de software:</p><p>Já Polo (2020, p. 7) de�ne que “testes de softwares têm a �nalidade de assegurar que um programa atende às</p><p>necessidades dos seus usuários, como também servem para descobrir defeitos em seu funcionamento antes</p><p>de disponibilizá-lo para uso”.</p><p>Baseado nestas de�nições, temos que distinguir defeito de engano e de falha. Delamaro, Maldonado e Jino</p><p>(2016, p. 2) de�nem defeito (do inglês, fault) como “sendo um passo, processo ou de�nição de dados</p><p>incorretos”, e engano (do inglês, mistake) como “a ação humana que produz um defeito”. Para que estes erros</p><p>aconteçam, o software não precisa estar sendo executado, por isso, estes erros são chamados de estáticos.</p><p>Videoaula: História da testagem de softwares</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>Processo de execução de um produto para determinar se ele atingiu suas especi�cações e</p><p>funcionou corretamente no ambiente para o qual foi projeto. O seu objetivo é revelar</p><p>falhas em um produto, para que as causas dessas falhas sejam identi�cadas e possam ser</p><p>corrigidas pela equipe de desenvolvimento antes da entrega �nal.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+-… 2/30</p><p>Quando executamos o programa, este defeito ou engano pode ocasionar um erro (do inglês, error), “que se</p><p>caracteriza por um estado inconsistente ou inesperado. Este estado pode levar a uma falha (failure)”, que é</p><p>um resultado diferente daquele que queríamos, portanto a falha é uma saída do software que não deveria</p><p>existir. É claro que todos estes termos são usados, muitas vezes, como sinônimos junto à palavra bug, mas</p><p>devemos tentar entendê-los da forma correta. Resumidamente, temos o Quadro 1 para �xarmos melhor estes</p><p>conceitos:</p><p>Quadro 1 | Conceitos de erro, defeito e falha</p><p>Programador comete um erro – sem querer –</p><p>digitando um código errado ou entendendo</p><p>uma informação de maneira errada.</p><p>Fonte: Pixabay.</p><p>Surge um defeito no</p><p>software que pode</p><p>ser executado ou</p><p>não.</p><p>Fonte: Pixabay.</p><p>Quando o defeito é executado e o</p><p>software responde de uma</p><p>maneira incorreta, surge uma</p><p>falha.</p><p>Fonte: Pixabay.</p><p>Fonte: Lorem ipsum dolor sit amet.</p><p>Para descobrirmos todos estes problemas de programação,</p><p>e à agilidade em cada etapa do processo, deverão gerar entregas satisfatórias a todos</p><p>os envolvidos, desde o time de desenvolvimento até o usuário �nal.</p><p>Agora que você já está por dentro do assunto qualidade, podemos avançar nesse tema e entender como</p><p>funciona e quais são as normas que auxiliam durante o processo de teste e validação do produto.</p><p>Utilizar-se de normas e padrões garante que as organizações que realizam a mesma ação a façam de maneira</p><p>similar, e que a comunicação entre elas ocorra de modo mais facilitado, isso graças aos protocolos uni�cados,</p><p>que servem como parâmetros e embasamento de comparação e análise. Dentre as instituições detentoras</p><p>das normas mais utilizadas, temos duas, sendo:</p><p>• ISO: Organização Internacional para Padronização (International Organization for Standardization).</p><p>• IEEE: Instituto de Engenheiros Eletricistas e Eletrônicos (Institute of Electrical and Electronics Engineers).</p><p>Ambas se destacam no mercado mundial pelo alto grau de cobrança e de qualidade de seus programas,</p><p>possuindo selos e títulos de acordo com o nível em que a empresa participante se encontra ou avança nas</p><p>validações exigidas. Observe o Quadro 1, que apresenta as principais normas nacionais e internacionais na</p><p>Aula 4</p><p>A QUALIDADE NO PROCESSO DE DESENVOLVIMENTO DE</p><p>SOFTWARE</p><p>compreender como a qualidade está diretamente relacionada ao desenvolvimento do software,</p><p>passando pelas diversas fases que o compõe, bem como a integração que proporciona entre todos os</p><p>envolvidos do time.</p><p>52 minutos</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 20/30</p><p>área da qualidade.</p><p>Quadro 1 | Principais normas nacionais e internacionais de qualidade de software</p><p>Normas Comentários</p><p>ISO 9126 Características da qualidade de produtos de software.</p><p>NBR</p><p>13596</p><p>Versão brasileira da ISO 9126.</p><p>ISO 14598 Guias para a avaliação de produtos de software, baseados na utilização prática da norma ISO</p><p>9126.</p><p>ISO 12119 Características de qualidade de pacotes de software (software de prateleira, vendido como</p><p>um produto embalado).</p><p>IEEE</p><p>P1061</p><p>Standard for Software Quality Metrics Methodology. Norma que trata das metodologias para</p><p>padronização da qualidade de software, incluindo algumas abordagens de medição.</p><p>ISO 12207 Software Life Cycle Process. Norma para a qualidade do processo de desenvolvimento de</p><p>software.</p><p>NBR ISO</p><p>9001</p><p>Sistemas de qualidade – Modelo para garantia de qualidade em projeto, desenvolvimento,</p><p>instalação e assistência técnica (processo).</p><p>NBR ISO</p><p>9000-3</p><p>Gestão de qualidade e garantia de qualidade. Aplicação da norma ISO 9000 para o processo</p><p>de desenvolvimento de software.</p><p>NBR ISO</p><p>10011</p><p>Auditoria de Sistemas de Qualidade (processo).</p><p>CMMI Capability Maturity Model Integration. Modelo da SEI (Instituto de Engenharia de Software do</p><p>Departamento de Defesa dos EUA) para avaliação da qualidade do processo de</p><p>desenvolvimento de software. Não é uma norma ISO, mas é muito bem aceita no mercado.</p><p>SPICE ISO</p><p>15504</p><p>Projeto da ISO/IEC para avaliação do processo de desenvolvimento de software. Ainda não é</p><p>uma norma o�cial ISO, mas o processo está em andamento.</p><p>Fonte: Morais (2010, [s. p.]).</p><p>As normas citadas no Quadro 1 agregam valor a toda empresa que fará uso dela, bem como o fato de estar</p><p>atualizado com o que há de melhor no mercado e estar à frente de seus concorrentes.</p><p>Como destaque entre todas as normas, o padrão ISO 9126 é de grande relevância quando o assunto é</p><p>qualidade do produto de software, pois foi desenvolvido como uma tentativa de identi�car os atributos</p><p>fundamentais de qualidade para software de computador (PRESSMAN; MAXIM, 2021). Os seis atributos</p><p>fundamentais de qualidade que o padrão estabelece podem ser encontrados no Quadro 2.</p><p>Quadro 2 | Categorias de características e subcaracterísticas de qualidade de software</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 21/30</p><p>CARACTERÍSTICAS SUBCARACTERÍSTICAS SIGNIFICADO</p><p>Funcionalidade</p><p>O conjunto de funções satisfazem as</p><p>necessidades explícitas e implícitas</p><p>para a �nalidade a que se destina o</p><p>produto?</p><p>Adequação Propõe-se a fazer o que é</p><p>apropriado?</p><p>Acurácia Gera resultados corretos ou</p><p>conforme acordados?</p><p>Interoperabilidade É capaz de interagir com os sistemas</p><p>especi�cados?</p><p>Segurança de acesso Evita o acesso não autorizado,</p><p>acidental ou deliberado a programas</p><p>e dados?</p><p>Conformidade Está de acordo com normas e</p><p>convenções previstas em leis e</p><p>descrições similares?</p><p>Con�abilidade</p><p>O desempenho se mantém ao longo</p><p>do tempo e em condições</p><p>estabelecidas?</p><p>Maturidade Com que frequência apresenta</p><p>falhas?</p><p>Tolerância a falhas Ocorrendo falhas, como ele reage?</p><p>Recuperabilidade É capaz de recuperar dados após uma</p><p>falha?</p><p>Usabilidade</p><p>É fácil utilizar o software?</p><p>Inteligibilidade É fácil entender os conceitos</p><p>utilizados?</p><p>Apreensibilidade É fácil aprender a usar?</p><p>Operacionalidade É fácil de operar e controlar a</p><p>operação?</p><p>E�ciência</p><p>Os recursos e os tempos utilizados</p><p>são compatíveis com o nível de</p><p>desempenho requerido para o</p><p>produto?</p><p>Comportamento em</p><p>relação ao tempo</p><p>Qual é o tempo de resposta e de</p><p>processamento?</p><p>Comportamento em</p><p>relação aos recursos</p><p>Quanto recurso utiliza?</p><p>Manutenibilidade</p><p>Há facilidade para correções,</p><p>atualizações e alterações?</p><p>Analisabilidade É fácil encontrar uma falha quando</p><p>ocorre?</p><p>Modi�cabilidade É fácil modi�car e remover defeitos?</p><p>Estabilidade Há grandes riscos de bugs quando se</p><p>faz alterações?</p><p>Testabilidade É fácil testar quando se faz</p><p>alterações?</p><p>Portabilidade</p><p>É possível utilizar o produto em</p><p>diversas plataformas com pequeno</p><p>esforço de adaptação?</p><p>Adaptabilidade É fácil adaptar a outros ambientes</p><p>sem aplicar outras ações ou meios</p><p>além dos fornecidos para esta</p><p>�nalidade no software considerado?</p><p>Capacidade para ser</p><p>instalado</p><p>É fácil instalar em outros ambientes?</p><p>Capacidade para</p><p>substituir</p><p>É fácil substituir por outro software?</p><p>Conformidade Está de acordo com padrões ou</p><p>convenções de portabilidade?</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 22/30</p><p>Fonte: Morais (2010, [s. p.]).</p><p>Nesse primeiro momento, identi�camos o que é necessário para que um software possa ser construído com</p><p>qualidade. Veri�camos também quais são as principais normas que auxiliam nesse processo, garantindo os</p><p>padrões exigidos pelo mercado. Até mais!</p><p>VIDEOAULA: NORMAS PARA DESENVOLVIMENTO DE SOFTWARES COM QUALIDADE</p><p>Neste vídeo, serão retratados os fatores fundamentais envolvidos para a construção de softwares com</p><p>qualidade, utilizando-se das principais normas nacionais e internacionais para auxiliar nesse processo,</p><p>garantindo os padrões de qualidade exigidos pelo mercado. Assim, você obterá conhecimento e visão crítica</p><p>su�cientes para a sequência de conteúdos que serão estudados na disciplina.</p><p>O DILEMA DA QUALIDADE DE SOFTWARE</p><p>Aqui, estudaremos a respeito de como sabemos se um software possui ou não qualidade. Você nunca se</p><p>perguntou como essa classi�cação é realizada? Agora, terá a oportunidade de melhor compreender esse</p><p>processo importante no ciclo de desenvolvimento do software.</p><p>Primeiramente, faço uma pergunta: devemos produzir o melhor software, ou um software bom o su�ciente?</p><p>Antes de tratarmos da resposta e discutirmos um pouco mais sobre o assunto, veja o que Bertrand Meyer</p><p>mencionou durante uma entrevista, o que conhecemos como “dilema da qualidade”:</p><p>E agora, depois da leitura dessa citação, a sua resposta continua a mesma que antes?</p><p>Certamente, tudo o que �zermos deve conter o melhor de nós, não</p><p>é mesmo? Se cortamos a grama do jardim</p><p>de casa, aquele deve ser o melhor corte já realizado em sua vida. A mesma coisa deve ocorrer durante a</p><p>análise, criação e testagem de um software, seja ele aplicativo para mobile ou um programa local (desktop) ou</p><p>on-line. O esforço concentrado para realização daquela tarefa deve ser o maior possível, haja vista que outras</p><p>pessoas serão impactadas direta ou indiretamente se tudo que você �zer der certo ou errado. De acordo com</p><p>Pressman e Maxim (2021, p. 421), não há nenhum problema ao produzir um software “bom o su�ciente”, pelo</p><p>contrário, isso é aceitável e tolerável, pois as empresas de software já adotam essa prática há muito tempo,</p><p>inclusive, estão fazendo isso neste momento.</p><p>Basicamente, o que acontece é que as empresas desenvolvedoras de software criam seus produtos com erros</p><p>(bugs) já conhecidos, os quais não impedem, em parte, o usuário de trabalhar. Como a demanda costuma ser</p><p>grande e a equipe de trabalho não é su�cientemente grande o bastante para atender a essa demanda, o</p><p>software passa a ser “bom o su�ciente”, ou seja, é entregue o essencial e crucial para atender a X função</p><p>solicitada pelo usuário, devendo os aspectos secundários serem avaliados posteriormente, em novas versões.</p><p>Portanto, o software “bom o su�ciente”, para Pressman e Maxim (2021, p. 421), “fornece funções e</p><p>características de alta qualidade que os usuários desejam, mas, ao mesmo tempo, fornece outras funções e</p><p>características mais obscuras ou especializadas que contêm erros conhecidos”. Desta forma, a empresa</p><p>espera que o usuário foque apenas na função que foi solicitada e entregue, permanecendo os defeitos e erros</p><p>esquecidos ou com menor relevância para aquele momento. Entretanto, utilizar-se dessa prática pode ser um</p><p>tanto quanto perigoso, já que tudo depende do tamanho e da estrutura que a empresa possui e do tipo de</p><p>aplicação e tecnologia que ela trabalha. Empresas de grande porte podem investir em marketing, além de já</p><p>estarem estruturadas no mercado, o que acaba criando uma referência para o setor.</p><p>Videoaula: Normas para desenvolvimento de softwares com qualidade</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>Se produzimos um sistema de software de péssima qualidade, perdemos porque ninguém</p><p>vai querer comprá-lo. Se, por outro lado, gastamos um tempo in�nito, um esforço</p><p>extremamente grande e grandes somas de dinheiro para construir um software</p><p>absolutamente perfeito, então ele levará muito tempo para ser concluído, e o custo de</p><p>produção será tão alto que iremos à falência.</p><p>— . (VENNERS, 2003, [s. p.] apud PRESSMAN; MAXIM, 2016, p. 420)</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 23/30</p><p>Outro ponto importante é determinar o custo da qualidade, o qual, para Pressman e Maxim (2016, p. 422),</p><p>pode ser dividido em custos associados à prevenção, à avaliação e às falhas, como mostra o Quadro 3.</p><p>Quadro 3 | Tipo de custo da qualidade</p><p>TIPO DE</p><p>CUSTO DESCRIÇÃO</p><p>Prevenção a) O custo de atividades de gerenciamento necessárias para planejar e coordenar todas</p><p>as atividades de controle e garantia da qualidade.</p><p>b) O custo de atividades técnicas adicionais para desenvolver modelos completos de</p><p>requisitos e de projeto.</p><p>c) Os custos de planejamento de testes.</p><p>d) O custo de todo o treinamento associado a essas atividades.</p><p>Avaliação a) O custo da realização de revisões técnicas.</p><p>b) O custo dos artefatos de engenharia de software.</p><p>c) O custo da coleta de dados e avaliação de métricas.</p><p>d) O custo dos testes e depuração.</p><p>Avaliação a) O custo da realização de revisões técnicas.</p><p>b) O custo dos artefatos de engenharia de software.</p><p>c) O custo da coleta de dados e avaliação de métricas.</p><p>d) O custo dos testes e depuração.</p><p>Falhas São divididas em duas, sendo:</p><p>1. Falhas internas:</p><p>a) O custo necessário para realizar reformulações (reparos) para corrigir um erro.</p><p>b) O custo que ocorre quando reformulações geram, inadvertidamente, efeitos colaterais</p><p>que devem ser reduzidos.</p><p>c) Os custos associados à reunião de métricas de qualidade que permitam a uma</p><p>organização avaliar os modos de falha.</p><p>2. Falhas externas:</p><p>a) Defeitos encontrados após o produto ter sido entregue ao cliente.</p><p>Fonte: adaptado de Pressman e Maxim (2016, p. 422).</p><p>Outra informação bastante relevante, é que o custo para a correção de erros e falhas aumenta</p><p>signi�cativamente à medida que as etapas do ciclo de vida do software avançam, sendo mais oneroso quando</p><p>o software já está sendo utilizado pelo cliente. Essa informação pode ser comprovada com os dados coletados</p><p>por Boehm e Basili (2001 apud PRESSMAN; MAXIM, 2016), como demostrado na Figura 1.</p><p>Figura 1 | Custo relativo para correção de erros e defeitos</p><p>Fonte: Boehm e Basili (2001 apud PRESSMAN; MAXIM, 2016, p. 423).</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 24/30</p><p>Analisando a Figura 1, temos a dimensão que o custo médio para corrigir um defeito durante a geração de</p><p>código é de, aproximadamente, US$ 977 por erro. Para a correção do mesmo erro, mas durante os testes do</p><p>sistema, o custo passa a ser de US$ 7.136 por erro. Essa estatística considerou uma grande aplicação com</p><p>introdução de 200 erros durante a codi�cação.</p><p>Nesse segundo momento, você compreendeu como é delicado quando precisamos mensurar se software</p><p>possui ou não qualidade, demandando tempo e estudo em cada caso. Outro ponto é o custo �nanceiro para</p><p>que aquele erro ou falha possa ser identi�cado e corrigido, demandando valores mais altos quando a</p><p>aplicação já está no cliente.</p><p>VIDEOAULA: O DILEMA DA QUALIDADE DE SOFTWARE</p><p>Neste vídeo, serão retratados os pontos necessários para considerar ou não que um software possua</p><p>qualidade, sendo considerada a utilização do software “bom o su�ciente” por empresas do setor. Outro ponto</p><p>importante é quanto ao custo para que defeitos e erros sejam corrigidos, apresentando um valor mais</p><p>elevando se o produto já estiver no cliente.</p><p>GARANTIA DA QUALIDADE DE SOFTWARE</p><p>Aqui, estudaremos sobre os aspectos para garantir a qualidade de software, sendo de extrema importância</p><p>para o seu ciclo de vida, com relação direta na manutenção e integridade da qualidade atingida pelo produto.</p><p>Durante esse bloco de estudo, teremos a chance de melhor compreender o quanto é importante a</p><p>permanência do processo de qualidade.</p><p>Garantir aquilo que se produz não é uma tarefa nada fácil, visto que envolve uma série de processos e tempo</p><p>para aperfeiçoamento do produto, entretanto são essenciais para a competitividade e a permanência da</p><p>empresa no mundo dos negócios. Pressman e Maxim (2021, p. 477) relatam que:</p><p>A importância de terceiros validarem uma nova funcionalidade do software cria um ambiente seguro e</p><p>con�ável, pois novas pessoas (testes manuais), as quais não tiveram envolvimento com o desenvolvimento,</p><p>terão a chance de tomar conhecimento sem nenhum vício, ou seja, as chances de falhas, defeitos ou erros</p><p>serem encontrados é grande, pois um olhar novo poderá se deparar com situações até então desconhecidas.</p><p>Foi Bell Labs, em 1916, que introduziu a primeira função formal da garantia e do controle da qualidade,</p><p>espalhando-se rapidamente por todo o mundo da manufatura. Posteriormente, já em 1940, novos conceitos</p><p>formais foram criados, com foco em medições e aprimoramento contínuo do processo (DEMING, 1986).</p><p>Quanto ao desenvolvimento de software, os padrões para a garantia da qualidade ocorreram por iniciativa de</p><p>algumas empresas terceirizadas pela indústria militar, no ano de 1970, ganhando o mundo do software</p><p>comercial rapidamente. Deste modo, podemos entender que a garantia de qualidade de software, segundo</p><p>Schulmeyer e McManus</p><p>(1998 apud PRESSMAN; MAXIM, 2016, p. 449), é um “padrão de ações planejado e</p><p>sistematizado”, necessário para garantir alta qualidade no software. Uma das formas de veri�cação da</p><p>qualidade é através do grupo de SQA (Software Quality Assurance, ou Garantia da Qualidade de Software),</p><p>que funciona como um serviço de defesa do cliente, pois examina o software sob o ponto de vista do cliente.</p><p>A garantia de qualidade de software é um universo de possibilidades, com foco em atividades de gestão da</p><p>qualidade de software. Para Horch (2003), os elementos podem ser sintetizados de acordo com o Quadro 4.</p><p>Quadro 4 | Elementos de garantia de qualidade de software</p><p>Videoaula: O dilema da qualidade de software</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>Antes do século XX, o controle de qualidade era responsabilidade exclusiva do artesão que</p><p>construía um produto. À medida que o tempo foi passando e técnicas de produção em</p><p>massa tornaram-se comuns, o controle de qualidade tornou-se uma atividade realizada</p><p>por outras pessoas, e não por aquelas que constroem o produto.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 25/30</p><p>ELEMENTO DESCRIÇÃO</p><p>Padrões IEEE, ISO e outras organizações de padronizações produziram uma ampla gama de</p><p>padrões para engenharia de software e documentos relacionados. Tais práticas</p><p>podem ser adotadas voluntariamente ou impostas pelo cliente ou outros envolvidos.</p><p>A SQA garante que os padrões adotados sejam seguidos, e seus produtos estejam</p><p>em conformidade com eles.</p><p>Revisões e</p><p>auditorias</p><p>Com foco em revelar erros, as atividades de controle de qualidade são realizadas por</p><p>engenheiros de software para engenheiros de software. As auditorias realizadas pela</p><p>SQA têm o intuito de assegurar que as diretrizes de qualidade estejam sendo</p><p>seguidas no trabalho de engenharia de software.</p><p>Testes É uma função de controle de qualidade, com o objetivo principal de encontrar erros.</p><p>O papel da SQA é garantir que os testes sejam planejados apropriadamente e</p><p>conduzidos e�cientemente, de modo que se tenha a maior probabilidade possível de</p><p>alcançar seu objetivo primário.</p><p>Coleta e análise de</p><p>erros/defeitos</p><p>A SQA reúne e analisa dados de erros e defeitos para melhor compreender como os</p><p>erros são introduzidos e quais atividades de engenharia de software são as mais</p><p>adequadas para sua eliminação.</p><p>Gerenciamento de</p><p>mudanças</p><p>A SQA garante que práticas adequadas de gerenciamento de mudanças tenham sido</p><p>instituídas.</p><p>Educação A SQA assume a liderança no processo de aperfeiçoamento do software, sendo um</p><p>proponente fundamental e patrocinador de programas educacionais.</p><p>Gerência dos</p><p>fornecedores</p><p>O grupo de SQA deve garantir software de alta qualidade por meio da sugestão de</p><p>práticas especí�cas de garantia da qualidade, que o fornecedor deve (sempre que</p><p>possível) seguir e incorporar exigências de qualidade como parte de qualquer</p><p>contrato com um fornecedor externo.</p><p>Administração da</p><p>segurança</p><p>Proteção por meio de �rewalls para os aplicativos móveis e garantia de que o</p><p>software não tenha sido alterado internamente sem autorização são exemplos de</p><p>administração de segurança. A SQA garante o emprego de processos e tecnologias</p><p>apropriados para se ter a segurança de software desejada.</p><p>Proteção A SQA pode ser responsável por avaliar o impacto de falhas de software e por iniciar</p><p>as etapas necessárias para redução de riscos.</p><p>Gestão de riscos Apesar de a análise e a redução de riscos serem atribuições dos engenheiros de</p><p>software, a SQA garante que as atividades de gestão de riscos sejam conduzidas</p><p>apropriadamente e que planos de contingência relacionados a riscos tenham sido</p><p>estabelecidos.</p><p>Fonte: adaptado de Horch (2003).</p><p>Como visto no Quadro 4, vários são os elementos que auxiliam no controle e na garantia de qualidade de</p><p>software, além de serem associados a dois elementos distintos: os engenheiros de software, os quais realizam</p><p>o trabalho técnico, e um grupo de SQA, que é responsável pelo planejamento, pela supervisão, pela</p><p>manutenção de registros, pela análise e pelos relatórios referentes à garantia da qualidade (PRESSMAN;</p><p>MAXIM, 2021, p. 343).</p><p>Sendo normalmente orientado a dados, a garantia de qualidade de software moderna apresenta um ciclo,</p><p>como pode ser observado na Figura 2. Neste processo, os envolvidos devem de�nir metas e medidas de</p><p>qualidade, identi�car áreas problemáticas, mensurar indicadores e determinar se alterações no processo são</p><p>ou não necessárias. O papel do engenheiro de software é aplicar medidas e métodos técnicos consistentes,</p><p>conduzindo as revisões técnicas e realizando testes de software bem planejados, para garantir sua qualidade.</p><p>Figura 2 | Garantia de qualidade de software</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 26/30</p><p>Fonte: Pressman e Maxim (2021, p. 343).</p><p>Como atribuição, a SQA tem a tarefa de obter um produto de alta qualidade, em parceria com a equipe de</p><p>software. As atividades de SQA dizem respeito ao planejamento, à supervisão, à manutenção de registros, à</p><p>análise e aos relatórios relativos à garantia da qualidade. De acordo com Pressman e Maxim (2021), essas</p><p>atividades são realizadas (ou facilitadas) por um grupo de SQA independente, que deve: preparar um plano de</p><p>SQA para um projeto; participar do desenvolvimento da descrição da gestão de qualidade do projeto; revisar</p><p>as atividades de engenharia de software para veri�car sua conformidade com a gestão de qualidade de�nida;</p><p>auditar os artefatos de software designados para veri�car sua conformidade com aqueles de�nidos como</p><p>parte da gestão de qualidade; garantir que os desvios no trabalho de software e artefatos sejam</p><p>documentados e tratados de acordo com um procedimento documentado; registrar qualquer não</p><p>conformidade e relatar à alta direção.</p><p>Chegamos ao �nal deste bloco. Você compreendeu melhor como ocorre a garantia da qualidade de software,</p><p>não sendo de responsabilidade apenas de alguém ou de um grupo, mas de muitos envolvidos, garantindo a</p><p>con�abilidade necessária ao usuário.</p><p>VIDEOAULA: GARANTIA DA QUALIDADE DE SOFTWARE</p><p>Neste vídeo, serão retratados os aspectos necessários para a garantia da qualidade de software, com</p><p>destaque para as práticas e os processos necessários para que o software obtenha a qualidade desejada.</p><p>ESTUDO DE CASO</p><p>Agora chegou a hora de colocar tudo em prática! Para este estudo de caso, imagine o seguinte cenário:</p><p>Há pouco tempo, a prefeitura de sua cidade adquiriu um app para realizar o cadastro de solicitações para</p><p>alvará de estabelecimentos comerciais e situações que se �zerem necessárias. A plataforma permite,</p><p>conforme a empresa ganhadora da licitação prometeu, a solicitação do primeiro alvará, renovação,</p><p>acompanhamento do pedido, anexo de documentos e impressão do novo alvará. Acontece que, desde a</p><p>implantação da ferramenta, alguns problemas vêm ocorrendo, além do relato de diversos munícipes que não</p><p>conseguem a renovação do seu alvará através do aplicativo. Os relatos são inúmeros, como perda de</p><p>conexão, sistema lento, dados não encontrados no banco de dados, entre outros.</p><p>Ciente de todos esses problemas, a prefeitura resolveu instaurar uma comissão para averiguar o que estava,</p><p>de fato, ocorrendo. Como é necessário realizar uma avaliação técnica do aplicativo e de sua estrutura, você foi</p><p>convidado a integrar o corpo técnico do setor de tecnologia. Deste modo, você deverá investigar:</p><p>Videoaula: Garantia da qualidade de software</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+…</p><p>27/30</p><p>a. Reclamações do usuário.</p><p>b. Existência ou não de qualidade no desenvolvimento do aplicativo.</p><p>c. Elencar possíveis prejuízos com os problemas do aplicativo à prefeitura.</p><p>d. Confeccionar um plano de ação, sugerindo melhorias e aperfeiçoamento no aplicativo.</p><p>Sua missão é de extrema importância e será impactante no dia a dia de inúmeras pessoas. Deste modo, não</p><p>deixe passar nada. Seja extremamente criterioso e aponte tudo o que estiver fora das boas normas que o</p><p>mercado pede. Então, mãos à obra!</p><p>RESOLUÇÃO DO ESTUDO DE CASO</p><p>lorePara a resolução deste estudo de caso, devemos utilizar o material dos três blocos, sendo: a qualidade no</p><p>processo de desenvolvimento de software (Bloco 1), o impasse da qualidade do software (Bloco 2) e a</p><p>qualidade de software (Bloco 3). Todo esse material servirá de base para o relatório que deverá ser</p><p>desenvolvido para o cumprimento dessa atividade muito signi�cativa, que é a avaliação técnica do aplicativo e</p><p>de sua estrutura.</p><p>Para que a conferência possa ser executada e que nada seja esquecido, procure considerar os seguintes</p><p>aspectos:</p><p>a) Coletar o máximo de reclamações, utilizando-se de imagens para comprovar a falha.</p><p>b) Quais as normas de qualidade utilizadas no ciclo de vida do aplicativo pela empresa desenvolvedora?</p><p>c) Avaliar o aplicativo conforme os seis atributos de qualidade da norma ISO 9126.</p><p>d) Indicar os possíveis custos para ajuste e o que isso já interferiu (desgaste) desde o relato dos primeiros</p><p>problemas.</p><p>Pronto! Agora é só realizar a veri�cação e transcrever todas as informações para um relatório técnico e muito</p><p>bem detalhado.</p><p> Saiba mais</p><p>Caro aluno, como sugestão para aprofundar seus estudos, sugiro o livro indicado a seguir, com o qual</p><p>você obterá mais conhecimento sobre qualidade de software, através de um material fascinaste e super</p><p>atual. Vale a pena conferir!</p><p>GALLOTTI, G. M. A. Qualidade de software. São Paulo, SP: Pearson Education do Brasil, 2016. Disponível</p><p>em: https://plataforma.bvirtual.com.br/Acervo/Publicacao/124148. Acesso em: 1º fev. 2022.</p><p>Resolução do Estudo de Caso</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>Aula 1</p><p>BERNARDO, P. C.; KON, F. A importância dos testes automatizados: controle ágil, rápido e con�ável de</p><p>qualidade. Engenharia de Software Magazine, v. 1, n. 3, p. 54-57, 2008. Disponível em:</p><p>http://ccsl.ime.usp.br/agilcoop/�les/A%20Importancia%20dos%20Testes%20Automatizados.pdf.Acesso em: 4</p><p>set. 2021.</p><p>REFERÊNCIAS</p><p>15 minutos</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 28/30</p><p>https://plataforma.bvirtual.com.br/Acervo/Publicacao/124148</p><p>http://ccsl.ime.usp.br/agilcoop/files/A%20Importancia%20dos%20Testes%20Automatizados.pdf</p><p>BLANCO, M. Z. Documentação de teste baseado na norma IEEE 829 – estudo de caso: sistema de apoio a</p><p>tomada de decisão. Revista Tecnologias, Infraestrutura e Software, São Carlos, v. 1, n. 1. p. 91-97, jul. 2021.</p><p>Disponível em: http://revistatis.dc.ufscar.br/index.php/revista/article/view/18/22 . Acesso em: 5 set. 2021.</p><p>DELAMARO, M. E.; MALDONADO, J. C.; JINO, M. Introdução ao teste de software. 2. ed. Rio de Janeiro, RJ:</p><p>Elsevier, 2016. Disponível em:</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788595155732/epubc�/6/2%5B%3Bvnd.vst.idref%3D</p><p>capa.xhtml%5D!/4/2/2/4%5B959c907a-71f3-426e-db7c-9d57809eec41%5D%4050:79 . Acesso em: 4 set. 2021.</p><p>DIAS NETO, A. C. Introdução a testes de software. Engenharia de Software Magazine, n. 1, p. 54-59, jun.</p><p>2016. Disponível em:</p><p>https://edisciplinas.usp.br/plugin�le.php/3503764/mod_resource/content/3/Introducao_a_Teste_de_Software.</p><p>pdf. Acesso em: 5 set. 2021.</p><p>POLO, R. C. Validação e teste de software. Curitiba, PR: Contentus, 2020.</p><p>PRESSMAN, R. S.; MAXIM, B. R. Engenharia de Software: uma abordagem pro�ssional. Trad. João Eduardo</p><p>Nóbrega Tortello. Porto Alegre, RS: AMGH, 2016.</p><p>TESTE DE SOFTWARE. [S. l.: s. n.], 2015. 1 vídeo (11min47s). Publicado pelo canal Pedro Carvalho. Disponível</p><p>em: https://www.youtube.com/watch?v=DBw_GctgPqU. Acesso em: 4 set. 2021.</p><p>Aula 2</p><p>CAMPOS, F. M. Qualidade, Qualidade de Software e Garantia da Qualidade de Software são as mesmas coisas?</p><p>Linha de Código, [s. d.]. Disponível em: http://www.linhadecodigo.com.br/artigo/1712/qualidade-qualidade-</p><p>de-software-e-garantia-da-qualidade-de-software-sao-as-mesmas-coisas.aspx. Acesso em: 14 set. 2021.</p><p>CIGITAL. Case study: Finding Defects elarlier yields enourmous savings. Cigital Archive, 2007. Disponível em:</p><p>http://web.archive.org/web/20071003044003/http://www.cigital.com/solutions/roi-cs2.php . Acesso em: 8 set.</p><p>2021.</p><p>PRESSMAN, R. S.; MAXIM, B. R. Engenharia de Software: uma abordagem pro�ssional. Porto Alegre, RS:</p><p>AMGH, 2016.</p><p>PRESSMAN, R. S.; MAXIM, B. R. Engenharia de Software: uma abordagem pro�ssional. Porto Alegre, RS:</p><p>AMGH, 2021.</p><p>ZANIN, A. et al. Qualidade de software. Porto Alegre, RS: SAGAH, 2018.</p><p>03 – SONARQUBE – DOWNLOAD, INSTALAÇÃO E EXECUÇÃO. [S. l.: s. n.], 2020. 1 vídeo (11min49s). Publicado</p><p>pelo canal T2Ti. Disponível em: https://www.youtube.com/watch?v=TNEHX51L9Do. Acesso em: 14 set. 2021.</p><p>Aula 3</p><p>CORTE, C. K. D. Ensino integrado de fundamentos de programação e teste de software. 2006. Dissertação</p><p>(Mestrado em Ciências de Computação e Matemática Computacional) – Universidade de São Paulo, São</p><p>Carlos, 2006. Disponível em:</p><p>https://pdfs.semanticscholar.org/ada8/6ab7011fb54fa3c2b2390a2cf0f9564d0fe9.pdf . Acesso em: 18 out.</p><p>2020.</p><p>DELAMARO, M. E.; MALDONADO, J. C.; JINO, M. Introdução ao teste de software. 2. ed. Rio de Janeiro, RJ:</p><p>Elsevier, 2016.</p><p>PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem pro�ssional. 9. ed. Porto Alegre, RS:</p><p>AMGH, 2021.</p><p>TESTES DE SOFTWARE – TESTE CAIXA-BRANCA E CAIXA-PRETA. [S. l.: s. n.], 2017. 1 vídeo (4min34s). Publicado</p><p>pelo canal Canal TI. Disponível em: https://www.youtube.com/watch?v=QyXN_zAhqJA&t=266s. Acesso em: 18</p><p>out. 2021.</p><p>Aula 4</p><p>ASSOCIAÇÃO BRASILERIA DE NORMAS TÉCNICAS. NBR ISO 9000. Sistema de gestão da qualidade –</p><p>Fundamentos e vocabulário. Rio de Janeiro, RJ: ABNT, 2005.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 29/30</p><p>http://revistatis.dc.ufscar.br/index.php/revista/article/view/18/22</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788595155732/epubcfi/6/2%5B%3Bvnd.vst.idref%3Dcapa.xhtml%5D!/4/2/2/4%5B959c907a-71f3-426e-db7c-9d57809eec41%5D%4050:79</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788595155732/epubcfi/6/2%5B%3Bvnd.vst.idref%3Dcapa.xhtml%5D!/4/2/2/4%5B959c907a-71f3-426e-db7c-9d57809eec41%5D%4050:79</p><p>https://edisciplinas.usp.br/pluginfile.php/3503764/mod_resource/content/3/Introducao_a_Teste_de_Software.pdf</p><p>https://edisciplinas.usp.br/pluginfile.php/3503764/mod_resource/content/3/Introducao_a_Teste_de_Software.pdf</p><p>https://www.youtube.com/watch?v=DBw_GctgPqU</p><p>http://www.linhadecodigo.com.br/artigo/1712/qualidade-qualidade-de-software-e-garantia-da-qualidade-de-software-sao-as-mesmas-coisas.aspx</p><p>http://www.linhadecodigo.com.br/artigo/1712/qualidade-qualidade-de-software-e-garantia-da-qualidade-de-software-sao-as-mesmas-coisas.aspx</p><p>http://web.archive.org/web/20071003044003/http://www.cigital.com/solutions/roi-cs2.php</p><p>https://www.youtube.com/watch?v=TNEHX51L9Do</p><p>https://pdfs.semanticscholar.org/ada8/6ab7011fb54fa3c2b2390a2cf0f9564d0fe9.pdf</p><p>https://www.youtube.com/watch?v=QyXN_zAhqJA&t=266s</p><p>BOEHM, B. W., BASILI, V.R. Software Defect Reduction Top 10 List. IEEE Computer, v. 34, n. 1, p. 135-137, jan.</p><p>2001. Disponível em: https://ieeexplore.ieee.org/document/962984/citations#citations. Acesso em: 14 mar.</p><p>2022.</p><p>DEMING, W. Out of the Crisis. Cambridge: MIT Press, 1986.</p><p>GLASS, R. De�ning Quality Intuitively. IEEE Software, p. 103-104,</p><p>maio 1998.</p><p>HORCH, J. Practical Guide to software Quality Management. 2. ed. Londres; Norwood: Artech House, 2003.</p><p>PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem pro�ssional. 8. ed. Porto Alegre, RS:</p><p>AMGH, 2016.</p><p>PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem pro�ssional. 9. ed. Porto Alegre, RS:</p><p>AMGH, 2021.</p><p>MORAIS, L. Qualidade de software. Revista Engenharia de Software, ed. 29, 2010. Disponível em:</p><p>https://www.devmedia.com.br/qualidade-de-software-engenharia-de-software-29/18209. Acesso em: 14 mar.</p><p>2022.</p><p>SCHULMEYER, G.; MCMANUS, J. (eds.). Handbook of Software Quality Assurance. ed. [S. l.]: Prentice Hall,</p><p>1998.</p><p>VENNERS, B. Design by Contract: a conversation with Bertrand Meyer. Artima Developer, 2003. Disponível</p><p>em: https://www.artima.com/articles/design-by-contract . Acesso em: 14 mar. 2022.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 30/30</p><p>https://ieeexplore.ieee.org/document/962984/citations#citations</p><p>https://www.devmedia.com.br/qualidade-de-software-engenharia-de-software-29/18209</p><p>https://www.artima.com/articles/design-by-contract</p><p>devemos conhecer as etapas da realização dos</p><p>testes de softwares. Estas etapas são divididas, prioritariamente, em quatro categorias, que são:</p><p>• Unidade.</p><p>• Integração.</p><p>• Sistema.</p><p>• Manutenção.</p><p>Como o próprio nome diz, o teste de unidade é feito na menor unidade de programação de um código,</p><p>geralmente dado por uma rotina, como um if/else, um for ou um loop. Quando estamos escrevendo um</p><p>código, devemos testá-lo ao terminarmos uma unidade, para que possamos encontrar erros nos algoritmos</p><p>ou nas estruturas de dados e até mesmo na codi�cação em si. Delamaro, Maldonado e Jino (2016, p. 3)</p><p>relatam que os testes de unidade podem ser feitos em “funções, procedimentos, métodos ou classes com o</p><p>objetivo de identi�car erros relacionados a algoritmos, estruturas de dados incorretas ou simples erros de</p><p>programação”.</p><p>Já o teste de integração testa diferentes unidades, podendo ser de�nida uma rotina de testagem a cada</p><p>incorporação de uma nova unidade ou a cada número �xo de unidades incorporadas, dependendo do</p><p>tamanho do código. Este teste garante que as unidades funcionem de forma coordenada e em conjunto.</p><p>Até aqui, os testes de software que envolvem os testes de unidade e de integração são, geralmente, feitos</p><p>pelos próprios programadores, à medida que criam o código, para terem certeza de que ele está sendo</p><p>desenvolvido de forma correta e integrada.</p><p>O teste de sistema, além de testar o código como um todo e sua funcionalidade, também testa outros</p><p>aspectos, como segurança, performance e robustez. Normalmente, ele é seguido de um teste de aceitação do</p><p>programa pelo cliente.</p><p>Finalmente, quando o produto estiver em fase de produção, devem ser feitos testes de manutenção, também</p><p>chamados de testes de regressão, para se certi�car de que o programa está funcionando corretamente, que</p><p>ainda é seguro contra o ataque de hackers e que as novas funcionalidades (atualizações) foram incorporadas</p><p>de maneira correta.</p><p>Para que estas divisões na testagem de softwares ocorram de maneira assertiva, ou seja, que os erros de</p><p>programação ou de código sejam realmente identi�cados, precisa-se realizar um bom planejamento, projeto,</p><p>execução e análise de dados em cada fase da testagem dos softwares. Não seria lógico que a mesma equipe</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+-… 3/30</p><p>que desenvolveu o código realizasse a testagem do software, pois o objetivo de um bom teste é encontrar</p><p>erros, e não aprovar um código que acabou de ser criado. Muitas equipes se sentem ofendidas quando</p><p>apontamos erros em seus códigos, o que nunca deve ser feito. Devemos nos lembrar que erros são da nossa</p><p>natureza, e só erra quem trabalha no melhor programa.</p><p>VIDEOAULA: ETAPAS DA TESTAGEM DE SOFTWARES</p><p>Neste vídeo, estudaremos a diferença entre erro, defeito e falha, assim como perceberemos que os bugs que</p><p>estão presentes nos códigos são feitos por humanos. Os programadores devem executar testes unitários e de</p><p>integração. Depois, o setor da qualidade fará o teste de sistema e o aceite do cliente.</p><p>OS REQUISITOS E AS VANTAGENS DE SE REALIZAREM TESTES EM TI</p><p>A pior forma de realizarmos um teste de software é tentar testar o código atrás de todos os defeitos de uma</p><p>só vez. Para que a procura por defeitos seja feita de maneira racional e viável, a testagem de softwares foi</p><p>dividida em etapas. As principais etapas da testagem de softwares são: testes de unidade, de integração, de</p><p>sistema e de manutenção.</p><p>Para que estes testes funcionem de maneira correta, precisamos que cada uma destas etapas seja elaborada</p><p>de acordo com a seguinte divisão de tarefas:</p><p>• Planejamento.</p><p>• Projeto.</p><p>• Execução.</p><p>• Análise de resultados.</p><p>Estas etapas podem ser resumidas no anagrama PDCA, ilustrado na Figura 2, que retrata o Plan – Do – Check –</p><p>Action, ou seja, planeje, aja, cheque e recomece novamente.</p><p>Figura 2 | Ciclo PDCA</p><p>Fonte: Wikimedia Commons.</p><p>O cumprimento correto de todas estas tarefas garantirá que cada fase do teste foi corretamente executada e</p><p>que teremos um software, programa ou aplicativo funcionando da forma correta. O planejamento é a parte</p><p>do projeto que de�nirá os recursos envolvidos na elaboração do código, o tempo que a equipe terá para</p><p>realizar esta atividade, considerando, inclusive, que, conforme um código está sendo criado, ele deve ser</p><p>testado através do teste de unidade.</p><p>Videoaula: Etapas da testagem de softwares</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+-… 4/30</p><p>Já o projeto de�nirá como será feita cada etapa da testagem, com enfoque redobrado nos testes de</p><p>integração e de sistema, quais os dados �ctícios ou reais que serão utilizados no teste, quanto tempo este</p><p>processo demorará e quais os equipamentos e recursos necessários que serão alocados para a execução dos</p><p>testes propriamente ditos.</p><p>A execução deve ser feita da forma mais abrangente possível, sempre pensando na testagem do que</p><p>queremos e do que não queremos. Por exemplo, imaginaremos que estamos criando um programa de pontos</p><p>para presentear nossos clientes mais �éis. Queremos identi�car quais são estes clientes e pontuá-los, mas</p><p>não queremos que os clientes possam resgatar seus pontos duas vezes, ou que clientes com baixo número de</p><p>pontos consigam resgatar itens aos quais não poderiam ter acesso.</p><p>Depois de executados todos os testes, inclusive a situação que o programa deve recusar os pedidos dos</p><p>usuários, devemos realizar a checagem dos resultados, com a análise dos dados e dos problemas</p><p>encontrados. Esta etapa deve ser acompanhada pela equipe de qualidade ou pelo engenheiro de testes,</p><p>porque ela deve apontar o que deve ser alterado no código, os responsáveis por executar estas correções e,</p><p>depois, devemos realizar o teste novamente destas partes do código para que os erros não se repitam.</p><p>Esta etapa deve ser feita com muito cuidado, porque, geralmente, não testamos o que estava funcionando e</p><p>corremos o risco de, ao corrigir os erros no código, introduzir outros erros que nos fazem voltar à parte de</p><p>erros de integração do software, ou seja, ao mudarmos uma parte especí�ca do código, esta alteração fará</p><p>com que ele não funcione mais de forma integrada com as outras tarefas. Para isso, deve ser sempre testada</p><p>a função que foi alterada em conjunto com uma integração posterior do código.</p><p>Aqui, é importante conhecer dois caminhos possíveis para os testes de software:</p><p>• Os testes caixa-preta.</p><p>• Os testes caixa-branca.</p><p>O teste caixa-preta trata o código como algo fechado, pronto e sem que seja possível acessá-lo e mudá-lo.</p><p>Neste tipo de teste, são testadas todas as funcionalidades do programa, o que realmente queremos que</p><p>aconteça, os desejos do cliente.</p><p>Figura 3 | Teste caixa-preta</p><p>Fonte: Wikimedia Commons.</p><p>Já o teste caixa-branca trata do código, da sua estrutura e das suas con�gurações. Durante este tipo de teste,</p><p>conseguimos acessar e corrigir o código. Nas fases de teste de integração e de unidade, o time de</p><p>desenvolvimento deve realizar testes caixa-branca, e na fase de sistema e do aceite do cliente, testes caixa-</p><p>preta, ou seja, deve ser veri�cado se o programa desenvolvido realmente entregou aquilo que o cliente</p><p>contratou.</p><p>Deste modo, podemos garantir que o cliente realmente �que satisfeito com o seu pedido e que o programa</p><p>foi desenvolvido dentro de rigorosas técnicas que garantam não só a qualidade mas também a otimização dos</p><p>recursos de processamento e de armazenamento que serão utilizados pelo código que ajudamos a</p><p>desenvolver.</p><p>VIDEOAULA: OS REQUISITOS E AS VANTAGENS DE SE REALIZAREM TESTES EM TI</p><p>Neste bloco, ressaltaremos a importância de realização dos testes</p><p>de software atendendo aos requisitos do</p><p>PDCA, ou seja, cada etapa deve ser planejada, projetada, executada e avaliada visando à adoção da otimização</p><p>do código. Conheceremos também as técnicas caixa-preta e caixa-branca, para sabermos diferenciar estes</p><p>tipos de testes.</p><p>ESTUDO DE CASO</p><p>Videoaula: Os requisitos e as vantagens de se realizarem testes em TI</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+-… 5/30</p><p>Imagine que você trabalha em uma empresa desenvolvedora de softwares e aplicativos para celulares e foi</p><p>promovido, graças ao seu excelente trabalho no desenvolvimento de programas para o setor de qualidade e</p><p>testagem de softwares, que vem enfrentando muitos contratempos quanto à demora na realização dos testes</p><p>e na interpretação dos resultados. Um simples teste pode demorar mais de uma semana para ser executado</p><p>devido aos computadores serem mais antigos do que o do setor de desenvolvimento e de não existir uma</p><p>padronização no setor de testagem, pois o programa de qualidade da empresa ainda não chegou a este setor,</p><p>o que faz com que os testes não detectem todos os bugs de programação existentes.</p><p>O seu supervisor pediu para você elaborar um relatório apontando três causas na demora da realização dos</p><p>testes e três propostas de melhorias ao setor para que este problema seja sanado, sendo que ele te deu carta</p><p>branca para diagnosticar o que precisa ser feito para que o setor tenha bons resultados na testagem dos</p><p>produtos e realize o trabalho em um prazo menor do que o que eles estão conseguindo entregar.</p><p>RESOLUÇÃO DO ESTUDO DE CASO</p><p>Como um pro�ssional aplicado, você organizou um roteiro de veri�cação para apontar os possíveis problemas</p><p>que estão causando atrasos na execução da testagem dos programas, começando pela veri�cação dos</p><p>equipamentos que o setor está utilizando para a testagem dos programas desenvolvidos pela equipe de</p><p>develop. Nesta etapa, você veri�cou se os equipamentos utilizados para a testagem dos códigos são</p><p>adequados, ou seja, iguais aos utilizados pelas equipes de desenvolvimento, e constatou que eles são</p><p>obsoletos. Os equipamentos da equipe de testagem devem ter a mesma capacidade de processamento</p><p>daqueles utilizados pela equipe de desenvolvimento, pois somente assim podemos garantir que os testes</p><p>serão feitos em um tempo razoável. Depois de concluída esta etapa, você deve veri�car se a empresa utiliza</p><p>softwares para automatizar o processo da testagem, pois, se o processo inteiro de testagem for feito de forma</p><p>manual, ele pode demorar mesmo muito tempo sem a obtenção de resultados satisfatórios. Finalmente, você</p><p>se certi�cará se a empresa segue as normas internacionais desenvolvidas pela IEEE, para que o processo de</p><p>qualidade seja e�ciente e de alto nível. Deste modo, você poderá garantir que todos os colaboradores que</p><p>trabalhem no departamento de teste de software sigam as mesmas rotinas de testagem, com os mesmos</p><p>procedimentos, da mesma forma que você garantirá que os resultados da testagem sejam interpretados</p><p>através da mesma métrica utilizada por todos e estabelecidas de acordo com as melhores práticas de</p><p>testagem. Caso alguma destas etapas não esteja sendo seguida, você deve elaborar um cronograma de</p><p>adequação do setor para que a etapa seja implementada e seguida à risca, pois somente com a adoção destas</p><p>três metodologias é que você poderá garantir um setor de testagem de software com qualidade e e�ciência.</p><p> Saiba mais</p><p>O Capítulo 1 do livro Introdução ao Teste de Software nos mostra claramente as di�culdades na</p><p>realização de testes de softwares através de um comando simples, como elevar um número x a um</p><p>expoente y que seja maior do que zero. Somente para executar este teste, teríamos que realizar mais de</p><p>1 milhão de operações. Felizmente, o capítulo também descreve como podemos ultrapassar este</p><p>obstáculo, testando exatamente se o programa fornecerá uma mensagem de erro para exponentes y</p><p>inferiores a 0 e para um exemplo válido qualquer. Ao término da leitura, você constatará que a testagem</p><p>de softwares possui inúmeros obstáculos para ser realizada, mas que, através de técnicas padronizadas,</p><p>a superação destes problemas será feita de forma tranquila e e�ciente. Disponível na Biblioteca Virtual</p><p>da Kroton através do link:</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788595155732/epubc�/6/14%5B%3Bvnd.vst.idr</p><p>ef%3Dchapter1.xhtml%5D!/4. Acesso em: 4 set. 2021.</p><p>O artigo intitulado A Importância dos Testes Automatizados, de Bernardo e Kon, expõe algumas das</p><p>di�culdades encontradas na realização da testagem de softwares por muitas empresas brasileiras que</p><p>seguem a metodologia tradicional da elaboração de um software e propõe algumas dicas para que este</p><p>mesmo processo possa ser feito através da automação dos testes, utilizando programas gratuitos que</p><p>realizam o trabalho de testar algumas etapas do código, como o teste de estabilidade do sistema ao</p><p>acesso de muitos usuários à plataforma, que são impossíveis de serem testados manualmente.</p><p>Disponível em:</p><p>http://ccsl.ime.usp.br/agilcoop/�les/A%20Importancia%20dos%20Testes%20Automatizados.pdf. Acesso</p><p>em: 4 set. 2021.</p><p>Resolução do Estudo de Caso</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+-… 6/30</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788595155732/epubcfi/6/14%5B%3Bvnd.vst.idref%3Dchapter1.xhtml%5D!/4</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788595155732/epubcfi/6/14%5B%3Bvnd.vst.idref%3Dchapter1.xhtml%5D!/4</p><p>http://ccsl.ime.usp.br/agilcoop/files/A%20Importancia%20dos%20Testes%20Automatizados.pdf</p><p>No vídeo Teste de Software, podemos ter uma ideia clara do que faz um engenheiro de testes e das</p><p>etapas de testagem de programas, com a descrição das pessoas envolvidas. Apesar de o áudio ser um</p><p>pouco ruim devido às batidas do apresentador no microfone, as explicações são claras e concisas sobre o</p><p>processo de testagem de software. Disponível em https://www.youtube.com/watch?v=DBw_GctgPqU.</p><p>Acesso em: 4 set. 2021.</p><p>No artigo Introdução a Teste de Software, Arilo Dias Neto traz uma abordagem bem didática dos</p><p>principais tipos de testes de software que temos e das di�culdades que encontraremos para que o</p><p>programa desenvolvido �que de acordo com a vontade do cliente. Para ilustrar este desencontro, ele usa</p><p>a clássica �gura do balanço feito com um pneu e amarrado a uma árvore como sendo a vontade do</p><p>cliente e as soluções oferecidas de vários modelos de escada pela equipe de desenvolvimento, que</p><p>logicamente não funcionam nem atendem à vontade do cliente. Disponível em:</p><p>https://edisciplinas.usp.br/plugin�le.php/3503764/mod_resource/content/3/Introducao_a_Teste_de_Soft</p><p>ware.pdf. Acesso em: 6 set. 2021.</p><p>INTRODUÇÃO</p><p>Boas-vindas ao estudo da disciplina Qualidade e Automação de Testes. Nesta unidade, vamos nos aprofundar</p><p>no estudo dos sistemas da qualidade que são utilizados na testagem de softwares, principalmente, no TMMi,</p><p>de�nição de Modelo de Maturidade de Teste. Este modelo estabelece os requisitos em que os testes devem</p><p>ser elaborados para que sejam feitos com qualidade e apresentem, além de um resultado satisfatório, um</p><p>desempenho otimizado dos sistemas e recursos utilizados para que o software funcione de maneira</p><p>adequada. Finalmente, estudaremos também alguns softwares e aplicações para realizarmos testes de forma</p><p>automatizada, recurso este muito necessário para uma ampla testagem do programa ou software a ser</p><p>desenvolvido e muito valorizado no mercado de trabalho. Testes automatizados feitos por plataformas, além</p><p>de con�áveis, podem simular algumas situações</p><p>impossíveis de serem feitas através de um teste manual:</p><p>como o acesso simultâneo de vários usuários a um site, tentativa de invasão por hackers, criação de</p><p>diferentes usuários e per�s de acesso. Assim, você poderá programar uma outra parte do código ou até</p><p>mesmo um outro programa enquanto testa aquela parte que já foi feita. Dessa forma, você se tornará um</p><p>pro�ssional multitarefas.</p><p>QUALIDADE NA ELABORAÇÃO DE UM PROCEDIMENTO DE TESTE E REQUISITOS APLICÁVEIS</p><p>A qualidade do software, de acordo com Zanin et al. (2018, p. 11), pode ser de�nida “ de acordo com o quanto</p><p>o software está em conformidade com o que o cliente solicitou”. Esta de�nição vai ao encontro da regra 10 de</p><p>Myers, que diz que “o custo de se encontrar um defeito no sistema aumenta 10 vezes a cada etapa do</p><p>processo em que esse erro avançar”.</p><p>Figura 1 | Regra 10 de Myers</p><p>Aula 2</p><p>SISTEMAS DA QUALIDADE: DEFINIÇÃO E IMPORTÂNCIA</p><p>NA TESTAGEM</p><p>Qualidade na elaboração de um procedimento de teste e requisitos aplicáveis.</p><p>50 minutos</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+-… 7/30</p><p>https://www.youtube.com/watch?v=DBw_GctgPqU</p><p>https://edisciplinas.usp.br/pluginfile.php/3503764/mod_resource/content/3/Introducao_a_Teste_de_Software.pdf</p><p>https://edisciplinas.usp.br/pluginfile.php/3503764/mod_resource/content/3/Introducao_a_Teste_de_Software.pdf</p><p>Fonte: Zanin et al. (2018, p. 16).</p><p>Uma de�nição de qualidade mais ampla é dada por Pressman (2021, p. 311) como sendo uma combinação de</p><p>fatores entre “produto compatível + boa qualidade + entrega dentro do orçamento e do prazo previsto é igual</p><p>à satisfação do usuário”. Um software que tenha uma excelente qualidade com um alto custo não é melhor</p><p>que um de uma qualidade um pouco inferior, permanecendo dentro do orçamento. O grande problema é que</p><p>os testes de software são caros para serem feitos com todos os cenários possíveis e, muitas vezes, justo um</p><p>cenário não testado é o que apresentará uma falha.</p><p>Os custos da qualidade devem ser avaliados quanto à prevenção de defeitos e à avaliação do software.</p><p>Devemos investir tempo tanto testando o código à medida que o programamos quanto estabelecendo</p><p>procedimentos para que a programação seja feita de uma forma correta já na primeira vez. Um estudo do</p><p>IEEE demonstrou que o custo médio para corrigirmos um erro durante a etapa de elaboração do código é de,</p><p>aproximadamente, US$ 977 por erro. Agora, para se corrigir este mesmo erro durante a fase de testes de</p><p>sistema ,este custo se eleva para US$ 7.136 (CIGITAL, 2007).</p><p>Existem dois sistemas considerados como iniciadores do processo de qualidade de software que temos hoje.</p><p>O primeiro é conhecido como o triângulo de McCall. De acordo com Pressman (2021, p. 313), podemos dividir</p><p>este triângulo em três fases:</p><p>• Revisão do produto: nesta fase, são feitos os testes de software e de �exibilidade.</p><p>• Transição do produto: nesta fase, é comprovado que o software possui interoperabilidade, reusabilidade e</p><p>portabilidade.</p><p>• Operação do produto: aqui, são feitas as correções para garantir a con�abilidade e a integridade do</p><p>software, assim como é medida sua e�ciência real.</p><p>Figura 2 | Fatores de qualidade de software de McCall</p><p>Fonte: Pressman (2021, p. 313).</p><p>O segundo sistema foi adotado pela HP (Hewlett-Packard Enterprise) e é conhecido pela sigla FURPS, do inglês</p><p>Funcionality, Usability, Reability, Performance and Supportability. O software deve funcionar para ser utilizado</p><p>segundo as especi�cações do cliente, ser reabilitado caso alguma atualização não funcione direito, ter a</p><p>performance desejada pelo cliente e a arquitetura prevista para aquela aplicação e suportar o uso do sistema</p><p>por diferentes usuários de forma simultânea.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+-… 8/30</p><p>Existem vários softwares que podem nos auxiliar no gerenciamento da qualidade. Um deles é o SonarQube®,</p><p>plataforma de código aberto, cujo download pode ser feito de forma gratuita através do link:</p><p>https://www.sonarqube.org/downloads/. Este programa permite que o código seja inspecionado à medida que</p><p>é criado, sendo que ele consegue, através de métricas pré-estabelecidas, medir a qualidade do código a partir</p><p>de sete eixos, a saber:</p><p>• Arquitetura de Projeto.</p><p>• Comentários.</p><p>• Padrão de Codi�cação.</p><p>• Defeitos Potenciais.</p><p>• Complexidade.</p><p>• Testes de Unidade.</p><p>• Duplicações.</p><p>Este software é um pouco complicado para ser instalado (a testagem não foi feita de forma e�ciente, pois ele</p><p>apresenta alguns erros que precisamos corrigir para que sua instalação seja feita com sucesso).</p><p>Primeiramente, devemos selecionar a opção Community (Comunidade) no site</p><p>https://www.sonarqube.org/downloads/. Essa opção nos levará para a página</p><p>https://www.sonarqube.org/success-download-community-edition/, na qual o download começará</p><p>automaticamente. O arquivo baixado será em formato zip (compactado), chamado sonarqube-9.0.1.46107.</p><p>Para que ele possa ser instalado no nosso computador, precisaremos ter a versão 11 do Java. Este arquivo</p><p>pode ser baixado em https://www.oracle.com/java/technologies/downloads/#java11. O nome dele é Java SE</p><p>Development Kit 11.0.12 (esta escolha, caro aluno, foi feita para o sistema operacional Windows de 64 bits;</p><p>caso possua outro sistema operacional no seu computador, você deverá ajustar o Java versão 11 para os</p><p>sistemas Linux ou Mac). O arquivo baixado será o jdk-11.0.12_windows-x64_bin. Para baixá-lo, é necessário</p><p>que você faça um cadastro na Oracle® e con�rme o e-mail enviado por este provedor. Depois de instalar o</p><p>Java na sua máquina, é necessário que você copie o endereço deste arquivo Java. No caso da minha máquina,</p><p>foi o caminho C:\Program Files\Java\jdk-11.0.12. Feito esse procedimento, você precisa alterar o arquivo</p><p>chamado wrapper.conf pertencente ao arquivo descompactado do SonarQube. Para isso, acesse o arquivo</p><p>wrapper com o editor Bloco de Notas, coloque o símbolo # (comentário) na linha wrapper.java.command=java</p><p>e retire este símbolo da linha acima, inserindo o caminho do Java versão 11 depois do sinal de igual. Depois</p><p>disso, ainda precisamos digitar a frase “\java” depois de bin. Feito isso, salvamos o arquivo wrapper.</p><p>A Figura 3 ilustra como �cará o arquivo wrapper depois dessa modi�cação.</p><p>Figura 3 | Arquivo wrapper do software SonarQube modi�cado</p><p>Fonte: elaborada pela autora.</p><p>Agora, basta que executemos como administrador o item StartSonar dentro da pasta referente ao seu sistema</p><p>operacional (no meu caso, o Windows de 64 bits). A localização deste arquivo está ilustrada na Figura 4.</p><p>Figura 4 | Arquivo StartSonar.bat</p><p>Fonte: captura de tela.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+-… 9/30</p><p>https://www.sonarqube.org/downloads/</p><p>https://www.sonarqube.org/downloads/</p><p>https://www.sonarqube.org/success-download-community-edition/</p><p>https://www.oracle.com/java/technologies/downloads/#java11</p><p>Quando o software estiver instalado, aparecerá uma mensagem de Process[es] is up no prompt de comando.</p><p>Depois disso, no seu programa de acesso à internet (no caso, eu utilizo o Google Chrome), basta que você</p><p>digite o link https://localhosts.mobi/9000 e acesse o ícone open hppt://localhost:9000 para acessar o software,</p><p>conforme ilustra a Figura 5.</p><p>Figura 5 | Acesso à pasta da internet localhost: 9000</p><p>Fonte: https://localhosts.mobi/9000. Acesso em: 22 fev. 2022.</p><p>Os dados de login e senha para abertura do programa são: admin (na primeira vez, o próprio site pedirá para</p><p>você alterar a senha). Depois de todo este processo, o site</p><p>será aberto e possuirá a con�guração inicial</p><p>retratada na Figura 6.</p><p>Figura 6 | Página inicial do software SonarQube</p><p>Fonte: https://localhosts.mobi/9000. Acesso em: 22 fev. 2022.</p><p>Agora, é só começar a usar esta ferramenta e bom trabalho!</p><p>VIDEOAULA: QUALIDADE NA ELABORAÇÃO DE UM PROCEDIMENTO DE TESTE E REQUISITOS</p><p>APLICÁVEIS</p><p>Abordaremos as principais de�nições de qualidade e o software SonarQube, utilizado na testagem</p><p>automática. É dado o passo a passo com dicas para a sua instalação bem-sucedida, visto que este software</p><p>vem com alguns bugs e necessita do Java na versão 11 instalado na máquina para funcionar corretamente.</p><p>OS CUSTOS DA IMPLEMENTAÇÃO DE UM PROGRAMA DE QUALIDADE TMMI</p><p>O TMMi (Test Maturity Model Integration – Integração do Modelo de Maturidade de Teste) possui cinco níveis</p><p>de maturidade. A cada nível de maturidade que uma organização ultrapassa, seu processo de testagem torna-</p><p>se melhor e mais otimizado. As indústrias que contratam empresas de desenvolvimento de softwares que</p><p>possuem TMMi nível 5 têm a garantia de que seu programa será desenvolvido dentro das melhores práticas</p><p>do mercado. Os cinco níveis do TMMi são:</p><p>Nível 1: este é o nível inicial de uma empresa que não adota o programa TMMi. Neste nível, os testes de</p><p>software não seguem nenhuma sequência padronizada e são feitos de forma aleatória, caso sejam realmente</p><p>feitos. A partir da decisão de se adotar o TMMi, a empresa passa a possuir o nível 2.</p><p>Nível 2: este nível é conhecido como nível gerenciado. Nele, é fundamental que uma empresa tenha:</p><p>• Uma política e estratégia de teste.</p><p>Videoaula: Qualidade na elaboração de um procedimento de teste e requisitos aplicáveis</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 10/30</p><p>https://localhosts.mobi/9000</p><p>• Um planejamento de teste.</p><p>• Um monitoramento e controle dos testes.</p><p>• Um projeto para a execução de cada teste.</p><p>• Um ambiente de testagem especí�co.</p><p>Aqui, a empresa tomou a decisão de testar todos os códigos de uma forma padronizada, de quanti�car os</p><p>resultados e adotar procedimentos para incorporar à correção dos erros de forma de�nida, com atribuições</p><p>de tarefas fazendo com que o pessoal de desenvolvimento e de testagem comecem a trabalhar juntos. Como</p><p>os procedimentos e padrões de testagem são iniciais neste nível, alguns erros podem não ser detectados,</p><p>como estes documentos podem sofrer revisão em busca de uma versão que realmente funcione.</p><p>Nível 3: é chamado de de�nido e é composto por</p><p>• Uma organização do processo de testagem.</p><p>• Um programa de treinamento para os desenvolvedores e engenheiros de testes.</p><p>• Acompanhamento do ciclo de vida e integração dos softwares desenvolvidos.</p><p>• Testes não funcionais.</p><p>• Revisão por pares.</p><p>Neste nível, os testes estão integrados à cultura da empresa, e a cultura de testagem de softwares já está</p><p>consolidada na empresa como uma importante etapa no desenvolvimento de um programa. Além do mais, a</p><p>cultura de que o teste de software é feito para encontrar defeitos, erros, e não a ausência deles, sem apontar</p><p>culpados, é prática recorrente na empresa, assim como o feedback dos erros encontrados e o</p><p>acompanhamento do processo de correção e retirada destes mesmos bugs. Aqui, a documentação já pode ser</p><p>usada como uma ferramenta e�caz no processo de testagem dos softwares.</p><p>Nível 4: é chamado de Gerenciado Quantitativamente e é de�nido pela presença de:</p><p>• Medição constante dos testes realizados.</p><p>• Avaliação da qualidade de softwares desenvolvidos.</p><p>• Revisão por pares avançada.</p><p>Nesta fase, os procedimentos já estão consolidados dentro das melhores práticas realizadas através de</p><p>métricas acompanhadas constantemente para a localização de defeitos com porcentagens de erros mais</p><p>comuns, localização destes erros, tempo que levaram para serem solucionados e disseminação destes cases</p><p>na empresa. Os setores de vendas e de manutenção do software começam a participar de reuniões, nas quais</p><p>são explanados os cases de erros, as soluções encontradas e as normas que foram melhoradas para que</p><p>estes erros não se repitam. Os dados estatísticos já alimentam um banco de dados considerável para que o</p><p>processo seja acompanhado de perto por todo o pessoal da empresa.</p><p>Nível 5: é chamado de otimizado e composto por:</p><p>• Prevenção de defeitos.</p><p>• Otimização do processo de teste.</p><p>• Controle de qualidade.</p><p>Aqui, a empresa já incorporou, além de todas as técnicas do TMMi, as técnicas das Metodologias Ágeis, para</p><p>minimizar o tempo de programação e testagem. A automação de testes é parte da cultura da empresa, e</p><p>rotinas padronizadas, tanto de programação como de testagem, já estão consolidadas e são largamente</p><p>utilizadas pelo departamento de desenvolvimento de programas, que trabalha integrado ao departamento de</p><p>vendas e manutenção dos softwares. Existe um departamento de testagem de software e controle de</p><p>qualidade que trabalha em conjunto com os demais setores da empresa. O processo de melhoria contínua e a</p><p>troca de conhecimento entre os pro�ssionais é feita de maneira automática, permitindo que o ambiente da</p><p>empresa seja leve e focado em resultados.</p><p>VIDEOAULA: OS CUSTOS DA IMPLEMENTAÇÃO DE UM PROGRAMA DE QUALIDADE TMMI</p><p>Apresentamos os cinco níveis do TMMi e o que os diferencia e os caracteriza, com uma explicação sobre cada</p><p>etapa de cada nível. Depois, de�nimos que o teste é realizado para se encontrar erros, e não para provar que</p><p>um programa foi feito isento deles.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+-… 11/30</p><p>DIFERENTES FORMAS DE TESTAGEM</p><p>Pressman (2016, p. 466) de�ne teste como um “conjunto de atividades que podem ser planejadas com</p><p>antecedência e executadas sistematicamente”. Adotar uma forma de testagem correta para cada aplicação faz</p><p>com que economizemos tempo, e tempo é dinheiro. Uma das formas de testagem mais comuns é chamada</p><p>de Veri�cação e Validação, e é conhecida pela sigla V & V. Pressman (2016, p. 467) também de�ne a veri�cação</p><p>como “um conjunto de tarefas que garantem que o software implemente corretamente uma função</p><p>especí�ca. Validação refere-se a um conjunto de tarefas que assegurem que o software foi criado e pode ser</p><p>rastreado segundo os requisitos do cliente”.</p><p>O primeiro teste, conhecido como teste unitário, deve ser feito ao longo do desenvolvimento do código. É</p><p>claro que é inviável testarmos o código a cada linha de programa que desenvolvemos, mas devemos fazer</p><p>isso, pelo menos, a cada sequência de comando criada e nas fronteiras destas sequências. É mais fácil e não</p><p>exige tanto recurso computacional testar um bloco de código assim que ele é feito. Por exemplo, criamos uma</p><p>sequência loop para repetir um comando três vezes, ou incrementamos a variável x de 1 unidade, então</p><p>testamos estes comandos. Podemos também testar blocos de comando e deixá-los salvos na nossa máquina</p><p>para que os utilizemos na elaboração do código quando precisarmos destes comandos especí�cos.</p><p>Nesta fase, é muito importante que testes com resultado de erro também sejam avaliados. Por exemplo, se</p><p>criamos um código para veri�car se um número é par e maior que zero, temos que testar este mesmo código</p><p>com números ímpares e negativos. Somente assim teremos a certeza de que esta parte do código não</p><p>apresentará defeitos e não aceitará os números ímpares e zero como entradas válidas.</p><p>Depois, devemos testar um conjunto de códigos, o chamado teste de integração, para veri�carmos que todos</p><p>os atributos solicitados pelo cliente estão presentes no código, como exemplo, podemos testar se foi feito</p><p>cadastro dos usuários da forma correta, com suas respectivas permissões de acesso e modi�cação</p><p>ao código.</p><p>Até esta etapa, as boas práticas da qualidade garantem que a elaboração do software e sua testagem sejam</p><p>realizadas pela equipe responsável pelo desenvolvimento do código. Eles devem testar, anotar e corrigir os</p><p>erros de programação encontrados de maneira e�caz e con�ável.</p><p>Quando algumas partes do código estiverem prontas, devemos realizar os testes de integração, que devem</p><p>ser feitos por equipes ou colaboradores diferentes (geralmente, do setor da qualidade), porque não é correto</p><p>que quem fez o projeto tenha que testá-lo, já que, inconscientemente, temos a tendência de proteger nossas</p><p>criações, de não querermos ver seus defeitos. Neste momento, um setor de testagem independente terá uma</p><p>visão mais clara do código. Entretanto, este teste só funcionará de maneira e�caz se os desenvolvedores</p><p>passarem todas as informações para o pessoal da qualidade, se houver um brie�ng e�caz do desejo e das</p><p>considerações feitas pelo cliente, porque é impossível para uma equipe aprender tudo sobre um código em</p><p>poucas semanas, face à outra equipe, que levou meses trabalhando naquele código, conhecendo as</p><p>especi�cações e os desejos do cliente.</p><p>Podemos resumir este processo como se fosse uma espiral, partindo do menor teste para o maior, conforme</p><p>nos mostra a Figura 7.</p><p>Figura 7 | Espiral da testagem de software</p><p>Fonte: Pressman (2016 p. 375).</p><p>Videoaula: Os custos da implementação de um programa de qualidade TMMi</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 12/30</p><p>Na fase de validação, ou seja, na fase de testagem, se o software está de acordo com as características do</p><p>cliente, é demonstrado que o código satisfaz ao que foi solicitado quanto à funcionalidade, ao desempenho e</p><p>aos requisitos operacionais. Nesta fase, podemos a�rmar que o teste de software foi encerrado e, agora, a</p><p>função da testagem é transferida ao usuário do programa. Isso signi�ca que aquele código será exposto a</p><p>inúmeras situações. É importante a escolha de um time de suporte ao usuário que possa registrar</p><p>estatisticamente os defeitos apresentados durante a utilização do software ou do programa, as medidas</p><p>propostas para correção para se determinar quando é o melhor momento para lançarmos uma atualização</p><p>do programa ou um upgrade daquele código. Somente assim podemos garantir que o programa ou o</p><p>software permaneça constantemente atualizado ou apto a atender de forma e�caz ao cliente.</p><p>VIDEOAULA: DIFERENTES FORMAS DE TESTAGEM</p><p>Discutimos as etapas de veri�cação e validação, nas quais são feitos os testes de unidade e de integração pela</p><p>equipe de desenvolvimento do código. Abordamos a importância de um setor de testes de softwares</p><p>separado para realizar a testagem do sistema geral e obter o aceite junto ao cliente.</p><p>ESTUDO DE CASO</p><p>Como vimos no Bloco 1 desta unidade, alguns programas são disponibilizados para o usuário com erros,</p><p>como foi o caso do SonarQube, do próprio Windows, ou de um banco que bloqueou todas as contas dos</p><p>seus clientes após uma atualização do software. Considere que você foi recém-contratado como Gerente de</p><p>Qualidade pelo setor de qualidade da empresa fabricante do SonarQube, e sabe que a versão Community</p><p>deste software está apresentando erro de Java, deixando os usuários bravos, fazendo com que eles reclamem</p><p>no setor de atendimento ao cliente; Além disso, diversos vídeos feitos por pro�ssionais do mercado retratam</p><p>o software de uma maneira pejorativa. Quais providências você deveria adotar para que este tipo de erro não</p><p>fosse mais encontrado no software?</p><p>RESOLUÇÃO DO ESTUDO DE CASO</p><p>Como gerente da qualidade da empresa SonarQube, você deveria, primeiro, disponibilizar uma nova versão</p><p>do software com a correção do erro e informar ao usuário que a versão em uso necessita da instalação do</p><p>Java 11, inserindo imediatamente um link para o programa instalador desta versão do Java na máquina do</p><p>usuário. Depois de feito o link, você deverá gravar um vídeo pedindo desculpas pelo erro, realizando o</p><p>procedimento de instalação, com o passo a passo em todos os idiomas dos países que baixem este software</p><p>de maneira maciça, ou seja, em inglês, chinês e espanhol, pelo menos.</p><p>Depois disso, você teria que reunir a equipe de desenvolvimento para atualizar o software, fazendo com que</p><p>seja disponibilizada para o usuário uma nova versão do software já com o Java 11 incorporado ao programa,</p><p>ou que ele tente reconhecer a versão do Java instalada no computador do usuário e informe, no momento da</p><p>sua instalação, que o usuário deverá baixar a versão do Java nº 11, disponibilizando um link com o passo a</p><p>passo para este download. Sua equipe deverá também veri�car a possibilidade de refazer o software para, ao</p><p>invés de baixar uma versão compacta dele, ou seja, zipado, possa ser baixada uma versão .exe, para facilitar a</p><p>instalação do software pelo usuário leigo.</p><p>Finalmente, você deverá solicitar aos desenvolvedores que veri�quem a possibilidade de a plataforma</p><p>disponibilizar uma versão on-line do programa, já que ele utiliza uma página da internet e um host para</p><p>funcionar.</p><p>Para terminar, você deve determinar a revisão imediata do procedimento de testagem para incluir testes com</p><p>versões diferentes do software Java, para que se veri�que a funcionalidade ou não dos programas com esta</p><p>plataforma.</p><p> Saiba mais</p><p>Videoaula: Diferentes formas de testagem</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>Resolução do Estudo de Caso</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 13/30</p><p>O livro Engenharia de Software, escrito por Pressman e Maxim, dedica o Capítulo 15, chamado de</p><p>Conceitos de Qualidade, ao aprofundamento do entendimento do aluno em relação aos principais</p><p>tópicos da qualidade de software. Disponível na Biblioteca Virtual da Kroton através do link:</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9786558040118/epubc�/6/60%5B%3Bvnd.vst.idr</p><p>ef%3DC19.xhtml%5D!/4%5BPRESSMAN_Completo-26%5D. Acesso em: 15 set. 2021.</p><p>O artigo Qualidade, Qualidade de Software e Garantia de Qualidade de Software são as mesmas coisas,</p><p>escrito por Fábio Martinho Campos, traz uma análise profunda sobre o termo “qualidade” (um conceito</p><p>subjetivo, pois um produto pode ter qualidade para uma pessoa, e para outra, não. Exemplo disso é a</p><p>eterna briga entre os fãs de celulares Apple e Samsung), com de�nições e citações de trechos das normas</p><p>ISO 9000 e do PMBOK, referências na adoção de sistemas de qualidade e de métricas para se realizar a</p><p>testagem de softwares. Disponível em: http://www.linhadecodigo.com.br/artigo/1712/qualidade-</p><p>qualidade-de-software-e-garantia-da-qualidade-de-software-sao-as-mesmas-coisas.aspx. Acesso em: 14</p><p>set. 2021.</p><p>No vídeo feito pela T2Ti, chamado 03 – SonarQube – Download, Instalação e Execução, é mostrado o</p><p>passo a passo da instalação do software SonarQube, desde como devemos fazer o download do</p><p>software, do Java 11, alterarmos o item wrapper dentro do software, executarmos o item StartSonar e</p><p>acessarmos a pasta da Internet Localhost 9000, até a colocação do login e da senha admin no software</p><p>para termos acesso à sua página inicial. Disponível em: https://www.youtube.com/watch?</p><p>v=TNEHX51L9Do. Acesso em: 14 set. 2021.</p><p>INTRODUÇÃO</p><p>Nesta unidade, daremos um maior enfoque às infraestruturas utilizadas para permitir que o teste unitário e</p><p>de automação seja efetuado mesmo com o início da programação de um código, ou seja, com o código sem</p><p>estar terminado. Isso é feito através de ferramentas, como stubs e drivers, que auxiliam na criação de per�s</p><p>�ctícios para a testagem de comandos do código</p><p>e das interfaces de integração entre partes do software.</p><p>Estudaremos também alguns softwares gratuitos que analisam o código já em estágio mais avançado de</p><p>programação através da análise dos grafos obtidos pelo �uxograma lógico, obtendo os caminhos principais</p><p>que devem ser testados, ou seja, aquelas con�gurações que possuem mais chance de apresentar erros.</p><p>PRINCÍPIOS DE TESTES UNITÁRIOS</p><p>Devemos considerar os testes unitários como uma ferramenta auxiliar na etapa de programação. Cada</p><p>estrutura for, if, loop, equação matemática e condição de verdadeiro ou falso deve ser testada para veri�car</p><p>se na hora da programação o código não foi feito de maneira incorreta. O problema encontrado com esta</p><p>exigência é: como testar e elaborar o código sem que um trabalho não comprometa o outro? Muitas vezes,</p><p>não temos estrutura su�ciente para testar todas as condições, ou a testagem de todas as condições</p><p>demandaria muito tempo. Por exemplo, como testaremos se um tipo de per�l de usuário só acessa ou</p><p>modi�ca aquela parte que foi especi�cada se não temos nenhum usuário cadastrado?</p><p>Por isso, nesta parte do código, precisamos criar alguns sca�olding (do inglês andaime, ou “estruturas</p><p>temporárias”), para podermos gerar um framework para realizar este teste. No caso do exemplo citado,</p><p>precisamos criar usuários “fake”. Neste momento, precisaremos também criar pseudocontroladores (drivers</p><p>ou stubs) para cada parte do texto. De acordo com Pressman e Maxim (2021, p. 379), “um pseudocontrolador</p><p>Aula 3</p><p>DIFERENTES TIPOS DE TESTES</p><p>Formular, aplicar e escolher o melhor tipo de teste aplicável a um programa entre os diferentes tipos de</p><p>testes disponíveis no mercado. De�nir o melhor protocolo de comunicação a ser utilizado na testagem.</p><p>42 minutos</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 14/30</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9786558040118/epubcfi/6/60%5B%3Bvnd.vst.idref%3DC19.xhtml%5D!/4%5BPRESSMAN_Completo-26%5D</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9786558040118/epubcfi/6/60%5B%3Bvnd.vst.idref%3DC19.xhtml%5D!/4%5BPRESSMAN_Completo-26%5D</p><p>http://www.linhadecodigo.com.br/artigo/1712/qualidade-qualidade-de-software-e-garantia-da-qualidade-de-software-sao-as-mesmas-coisas.aspx</p><p>http://www.linhadecodigo.com.br/artigo/1712/qualidade-qualidade-de-software-e-garantia-da-qualidade-de-software-sao-as-mesmas-coisas.aspx</p><p>https://www.youtube.com/watch?v=TNEHX51L9Do</p><p>https://www.youtube.com/watch?v=TNEHX51L9Do</p><p>usa a interface dos módulos subordinados, pode fazer uma manipulação de dados mínima, fornece uma</p><p>veri�cação de entrada e retorna o controle para o módulo que está sendo testado”. A Figura 1 retrata a</p><p>estrutura periférica que deve ser desenvolvida junto ao código para permitir a testagem ponto a ponto.</p><p>Figura 1 | Ambiente de teste de unidade</p><p>Fonte: Pressman e Maxim (2021, p. 379).</p><p>É claro que elaborar estas estruturas para apoiar a testagem unitária demanda dinheiro e, muitas vezes, um</p><p>tempo in�nito, que o projeto não tem. Por exemplo, imagine que estamos criando um aplicativo que simule</p><p>um jogo de xadrez. Um teste para cada jogada possível em um jogo de xadrez poderia levar milhares de anos</p><p>para ser executado. Pensando nisso, foram criadas con�gurações básicas que devem ser testadas no teste de</p><p>unidade. A primeira con�guração é que devemos testar o �uxo de dados por meio de um componente. Um</p><p>dado deve conseguir entrar em uma estrutura básica de código para poder ser veri�cado se aquela</p><p>con�guração foi feita corretamente. Depois, deve-se testar as fronteiras entre os códigos, ou seja, se um</p><p>comando for encerrado, o dado deve passar imediatamente para o próximo comando. Para isso, são criados</p><p>caminhos de manipulação de erros. Muitos autores chamam esta abordagem de antidefeitos. Neste caso, são</p><p>testados erros em potencial, como:</p><p>• Descrição confusa do erro.</p><p>• Erro apontado não corresponde ao erro encontrado.</p><p>• Condição de erro não permite acesso ao sistema para sua correção.</p><p>• Procedimento exceção – condição não está gerando um teste válido.</p><p>• Descrição de erro vaga, não permitindo sua localização no código.</p><p>Neste momento, devemos realizar o teste do caminho básico (um teste feito nos principais códigos do</p><p>software) e o teste da estrutura de controle (um teste feito seguindo o �uxograma de programação – neste</p><p>teste, veri�camos as condições falsas também). Para isso, os desenvolvedores do código devem ter um banco</p><p>de dados criado para diferentes níveis de usuários. Se o cliente tiver este banco de dados de outro aplicativo,</p><p>ele poderá ser utilizado para tornar este teste mais próximo da realidade.</p><p>O teste do caminho básico deve executar, pelo menos uma vez, todas as estruturas do código, e ele é</p><p>escolhido pelo projetista para as condições verdadeiras, ou seja, o menor caminho que permite ao usuário</p><p>chegar ao �nal do programa. Ele utiliza uma notação de grafos para informar este caminho. Cada círculo é</p><p>chamado de nó, e cada losango de ligação pode ser representado por um nó. As arestas ou ligações são os</p><p>chamados �uxos de controle e representam as opções que uma tomada de decisão ou um atendimento a</p><p>uma condição verdadeira ou falsa podem causar. Uma área de aresta e nós é chamada de região, conforme</p><p>pode ser visualizado na Figura 2.</p><p>Figura 2 | Representação de um �uxograma de um código (a) e seu respectivo grafo (b)</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 15/30</p><p>Fonte: Pressman e Maxim (2021, p. 384).</p><p>Alguns dos caminhos para este �uxograma são:</p><p>• Caminho 01: 1 – 11.</p><p>• Caminho 02: 1 – 2 – 3 – 4 – 5 – 10 – 1 – 11.</p><p>• Caminho 03: 1 – 2 – 3 – 6 - 8 – 9 - 10 – 1 – 11.</p><p>• Caminho 04: 1 – 2 – 3 – 6 - 7 – 9 - 10 – 1 – 11.</p><p>Um bom exemplo de teste para este código seria testarmos os caminhos 1 e 4.</p><p>Existem várias fórmulas de se calcular quantos caminhos críticos um código possui. Uma delas é dada através</p><p>do cálculo da complexidade ciclomática, representada através da sigla V. Para um grafo de �uxo G, ela é</p><p>calculada através da fórmula dada por</p><p>V (G) = E – N + 2 (Equação 1)</p><p>Onde:</p><p>E é o número de arestas do grafo de �uxo.</p><p>N é o número de nós.</p><p>Neste caso, teríamos quatro caminhos críticos para serem testados.</p><p>V (G) = 11 arestas – 9 nós + 2 = 4.</p><p>Portanto, seriam necessários quatro casos de testes para executar um teste unitário satisfatório para o</p><p>�uxograma ilustrado na Figura 2.</p><p>VIDEOAULA: PRINCÍPIOS DE TESTES UNITÁRIOS</p><p>No Bloco 1, aprenderemos sobre como realizar a análise de um teste unitário satisfatório para um �uxograma</p><p>utilizando grafos, através do método matemático ciclomático para calcular quantas análises deveremos</p><p>executar. Estudaremos também os stubs e drivers, ferramentas que fornecerão as condições necessárias para</p><p>a realização deste teste.</p><p>O TESTE DE AUTOMAÇÃO DOS SISTEMAS</p><p>O teste de automação é um teste caixa-preta, focado nas interfaces do sistema. De acordo com Pressman e</p><p>Maxim (2021, p. 381), o teste de automação tenta encontrar:</p><p>• Funções incorretas ou ausentes;</p><p>• Erros de interface;</p><p>• Erros em estruturas de dados ou acesso a base de dados externos;</p><p>• Erros de comportamento ou desempenho;</p><p>• Erros de inicialização ou de término.</p><p>Videoaula: Princípios de testes unitários</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 16/30</p><p>Para este tipo de teste, é preciso termos estruturas prontas, e não somente o código de uma só estrutura. Ele</p><p>precisa procurar erros na transição de</p><p>uma estrutura para a outra, ou de uma interface para a outra. Neste</p><p>tipo de teste, é preciso que se tenha pelo menos um per�l para cada tipo de usuário previsto, para que seja</p><p>possível conferirmos se as permissões de acesso e de modi�cação ao sistema estão corretas por tipo de</p><p>usuário. Este teste é chamado de caixa-preta, porque ele não se preocupa com o código em si (objeto do teste</p><p>unitário, por isso, chamado também de caixa branca), e sim com as funcionalidades ou as respostas que o</p><p>código deve apresentar para diversas situações reais, por exemplo, se o código está atendendo aos requisitos</p><p>básicos solicitados pelo cliente no cadastramento de um novo usuário.</p><p>O teste de interface, por exemplo, testa se o código aceita novas informações, como um novo usuário, e se ele</p><p>armazena as informações deste novo usuário de forma adequada. Se estivermos desenvolvendo um jogo,</p><p>este tipo de teste garantirá que o novo usuário entre em uma fase fácil, para que ele possa passar</p><p>rapidamente por várias fases de forma a gostar do jogo. Não teria sentido um novo usuário já ser alocado em</p><p>uma fase difícil do jogo, sem conseguir avançar, e desistir daquele aplicativo só porque foi inserido em uma</p><p>janela (ponto de início) de forma errônea.</p><p>Outro tipo de teste que pode ser aplicado nesta fase é o particionamento de equivalência, que pode testar se</p><p>todas as senhas são criadas com caracteres numéricos, alfanuméricos ou símbolos, como @, $ de uma só vez.</p><p>Durante a criação do código, recomenda-se que este tipo de teste já seja feito e se torne um padrão de</p><p>testagem na empresa – podendo ser feito até em uma cópia do código original, quando a parte das senhas e</p><p>do cadastramento de novos usuários já tenha sido terminada. Nesta parte, é necessário que se tenha ou se</p><p>crie um banco de dados, por exemplo, se estivermos programando um software para um banco, este</p><p>programa deve testar se cadastros de CPFs iguais utilizando nomes diferentes serão bloqueados pelo sistema</p><p>e se cadastro de nomes iguais com CPFs diferentes e dados, como �liação, diferentes serão aceitos pelo</p><p>sistema.</p><p>A Análise do Valor Limite (chamada de BVA, por causa do seu nome em inglês, Boundary Value Analysis) é</p><p>similar ao teste de equivalência, só que, desta vez, são testados os valores limites – tanto os inferiores quanto</p><p>os superiores – para um dado código. Por exemplo, se estivermos fazendo um aplicativo de cotação de plano</p><p>de saúde por faixas etárias, os preços para faixas etárias localizados na fronteira, ou seja, que levará um</p><p>usuário a mudar de faixa, devem ser testados. Neste caso, é recomendado que testemos as fronteiras e um</p><p>valor acima e um valor abaixo, para que o funcionamento das interfaces possa ser veri�cado de forma correta</p><p>O�cialmente, segundo Pressman e Maxim (2021, p. 389), este postulado diz que “se uma condição de entrada</p><p>especi�ca um intervalo limitado por valores a e b, deverão ser projetados casos de teste com os valores a e b</p><p>e imediatamente acima e abaixo de a e b”. Deste modo, todas as interfaces ou valores fronteiriços devem ser</p><p>testados. Esta condição é exigida atualmente porque a chance de códigos apresentarem erros na fronteira é</p><p>maior do que no meio do intervalo. Deste modo, o teste de integração obterá resultados satisfatórios na</p><p>detecção de erros.</p><p>VIDEOAULA: O TESTE DE AUTOMAÇÃO DOS SISTEMAS</p><p>No Bloco 2, estudaremos de forma mais detalhada o teste de integração e algumas maneiras para criação ou</p><p>incorporação de bancos de dados que serão necessários para a realização deste tipo de teste. Aprenderemos</p><p>também a diferenciar um teste caixa-branca (tipo o teste unitário) de um teste caixa-preta.</p><p>TESTE PONTO A PONTO E A IMPORTÂNCIA NA INFRAESTRUTURA</p><p>Para conseguirmos realizar o teste ponto a ponto com precisão, temos que criar ou escolher drivers e stubs</p><p>de forma correta, pois estes dispositivos darão a infraestrutura de apoio para que o teste possa ser feito com</p><p>o objetivo de encontrarmos bugs.</p><p>O driver possuirá a função de fornecer todos os dados necessários para que possamos testar uma dada</p><p>unidade e apresentar os dados de saída para que o responsável por este teste possa veri�car se ele foi bem-</p><p>sucedido ou não. Por exemplo, para o cadastro de um novo usuário mediante um e-mail, este dispositivo</p><p>fornecerá um modelo de e-mail válido, para que o programa acuse a digitação correta e envie um e-mail para</p><p>o endereço fornecido e espere a con�rmação por parte do usuário de que este e-mail é gerenciado por uma</p><p>pessoa, e não um robô.</p><p>Videoaula: O teste de automação dos sistemas</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 17/30</p><p>Já os stubs são ferramentas que auxiliam na simulação de comportamentos para uma dada unidade que</p><p>ainda não foi desenvolvida, mas da qual dependemos para que esta parte do teste ponto a ponto possa ser</p><p>feita de forma a encontrarmos seus defeitos. Na Figura 3, temos a representação das de�nições de drivers e</p><p>stubs.</p><p>Figura 3 | Representação de drivers e stubs</p><p>Fonte: elaborada pela autora.</p><p>A diferença entre o teste de unidade e o teste de integração dos stubs e drivers é que, no teste de unidade,</p><p>eles são usados como módulos independentes, ou seja, só testamos um código em especí�co e, no teste de</p><p>integração, eles se integram ao teste, permitindo que conectemos as diferentes partes do código,</p><p>principalmente, as fronteiras. Essa diferença está retratada na Figura 4.</p><p>Figura 4 | Diferença entre um teste de unidade e um teste de integração</p><p>Fonte: elaborada pela autora.</p><p>Existem algumas ferramentas on-line e softwares grátis que podem nos ajudar nestas etapas de testagem,</p><p>como as ferramentas JaBUTi (Java Bytecode Understanding and Testing, disponível em:</p><p>https://github.com/magsilva/jabuti). Para que o software JaBUTi funcione, é necessário que, antes, instalemos</p><p>o programa Graphviz (Disponível em: https://graphviz.org/download/. Basta que o aluno escolha o programa</p><p>do sistema operacional do computador dele), deste modo, este programa consegue ler os caminhos</p><p>desenhados utilizando grafos. Este software proporciona a testagem de códigos feitos em Java e traz várias</p><p>análises estatísticas através da sua página inicial.</p><p>Outro site muito utilizado é o EclEmma (disponível em https://marketplace.eclipse.org/content/eclemma-java-</p><p>code-coverage). Este software pode ser instalado diretamente da versão Java Eclipse, pois ele foi desenvolvido</p><p>especialmente para testar programas em Java feitos nesta plataforma. Outro site muito utilizado é o JUnit5,</p><p>programa oriundo a partir do JUnit e disponível em https://junit.org/junit5/. Existem também comunidades</p><p>que possibilitam o acesso a sites de testagem. Uma dessas comunidades é a TestProject, que pode ser</p><p>encontrada no endereço: https://auth.testproject.io/auth/realms/TP/protocol/openid-connect/auth?</p><p>client_id=tp.app&redirect_uri=https%3A%2F%2Fapp.testproject.io%2Fcallback.html&response_type=id_token%</p><p>20token&scope=openid%20pro�le&state=6faa66bf91534d00b0f015bfef3b623d&nonce=7d5a9978753d421fbb</p><p>51b1bd846e2e10. Neste site, é preciso somente fazer um cadastro através de uma conta Google ou Microsoft,</p><p>con�rmar o e-mail e já começar a utilizá-lo – ele permite, inclusive, que cadastremos uma equipe.</p><p>A vantagem destes sites é que podemos nos comunicar com desenvolvedores e testadores do mundo todo</p><p>através das suas comunidades, ler artigos publicados na plataforma e até mesmo estudar algum material</p><p>especí�co através de vídeos de aprendizagem disponibilizados pela própria desenvolvedora do software.</p><p>VIDEOAULA: TESTE PONTO A PONTO E A IMPORTÂNCIA NA INFRAESTRUTURA</p><p>Neste bloco, serão aprofundadas algumas ferramentas que podem ser utilizadas para o teste ponto a ponto,</p><p>permitindo que seja criada uma infraestrutura automática para auxílio do programador na realização da</p><p>testagem.</p><p>Essas ferramentas são gratuitas e de fácil utilização, assim como é mostrado uma comunidade na</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 18/30</p><p>https://github.com/magsilva/jabuti</p><p>https://graphviz.org/download/</p><p>https://marketplace.eclipse.org/content/eclemma-java-code-coverage</p><p>https://marketplace.eclipse.org/content/eclemma-java-code-coverage</p><p>https://junit.org/junit5/</p><p>https://auth.testproject.io/auth/realms/TP/protocol/openid-connect/auth?client_id=tp.app&redirect_uri=https%3A%2F%2Fapp.testproject.io%2Fcallback.html&response_type=id_token%20token&scope=openid%20profile&state=6faa66bf91534d00b0f015bfef3b623d&nonce=7d5a9978753d421fbb51b1bd846e2e10</p><p>https://auth.testproject.io/auth/realms/TP/protocol/openid-connect/auth?client_id=tp.app&redirect_uri=https%3A%2F%2Fapp.testproject.io%2Fcallback.html&response_type=id_token%20token&scope=openid%20profile&state=6faa66bf91534d00b0f015bfef3b623d&nonce=7d5a9978753d421fbb51b1bd846e2e10</p><p>https://auth.testproject.io/auth/realms/TP/protocol/openid-connect/auth?client_id=tp.app&redirect_uri=https%3A%2F%2Fapp.testproject.io%2Fcallback.html&response_type=id_token%20token&scope=openid%20profile&state=6faa66bf91534d00b0f015bfef3b623d&nonce=7d5a9978753d421fbb51b1bd846e2e10</p><p>https://auth.testproject.io/auth/realms/TP/protocol/openid-connect/auth?client_id=tp.app&redirect_uri=https%3A%2F%2Fapp.testproject.io%2Fcallback.html&response_type=id_token%20token&scope=openid%20profile&state=6faa66bf91534d00b0f015bfef3b623d&nonce=7d5a9978753d421fbb51b1bd846e2e10</p><p>internet dedicada a isso.</p><p>ESTUDO DE CASO</p><p>Você foi contratado como responsável pelo setor de desenvolvimento de códigos de uma startup brasileira</p><p>que acabou de fechar uma parceria para assumir o desenvolvimento de um novo jogo, inspirado em um jogo</p><p>muito famoso que os adolescentes adoram. Baseado nestas informações, você fez uma reunião de kick-o�</p><p>(para iniciar o projeto e explicar as exigências do cliente para os seus colaboradores). Estas exigências são:</p><p>• Cadastro com um e-mail válido.</p><p>• Senha alfanumérica de 6 dígitos.</p><p>• Jogador que trouxer mais 3 amigos ganha 10 vidas e 50 barras de ouro.</p><p>• Jogador pode formar uma equipe com os seus 3 amigos.</p><p>Os pro�ssionais que trabalham para você relataram que, no projeto anterior que participaram, �zeram um</p><p>código muito parecido com este e, por isso, não viam a necessidade de realizar a testagem do código. A única</p><p>diferença é a senha alfanumérica, a qual, no projeto anterior, era uma senha numérica de 4 dígitos.</p><p>Mediante a situação exposta pelos funcionários, que decisão você tomaria?</p><p>RESOLUÇÃO DO ESTUDO DE CASO</p><p>Primeiro, você deveria con�rmar esta informação e veri�car se o código entregue foi produzido sem erros</p><p>nesta parte. Uma análise do relatório de testes do projeto anterior já resolveria esta situação. Constatada a</p><p>veracidade da informação, você deveria determinar que um programador executasse a alteração no código</p><p>para a sequência de senhas solicitadas e utilizasse o mesmo banco de dados do projeto anterior para testar o</p><p>código unitário, veri�cando um caso verdadeiro e outro falso (como o cadastramento de uma senha</p><p>numérica) para este requisito do código.</p><p>Depois disso, você deve determinar que seja realizada a testagem de automação do código para veri�car se</p><p>existe integração entre este cadastro e os itens pontuação por indicação de amigos e se o jogador pode</p><p>escolher a sua equipe. Deve ser veri�cada também a boni�cação em barras de ouro – um teste caixa-preta</p><p>com quatro usuários resolveria esta parte da testagem.</p><p> Saiba mais</p><p>No Capítulo 4 do livro Introdução ao Teste de Software, são mostradas informações mais detalhadas da</p><p>análise de códigos através de grafos e das telas de testagem fornecidas pelos programas de auxílio a</p><p>estas formas de testes. Neste capítulo, é analisado o software POKE-TOOL, uma ferramenta que não tem</p><p>capacidade de testar softwares comerciais, mas de muito auxílio para o estudo de testes ponto a ponto</p><p>por parte de você, caro estudante. Disponível em:</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788595155732/epubc�/6/20%5B%3Bvnd.vst.idr</p><p>ef%3Dchapter4.xhtml%5D!/4/2/2/2/2. Acesso em: 18 out. 2021.</p><p>Artigo abordando a importância do ensino da criação do código e das ferramentas de testagem ao</p><p>mesmo tempo. Os autores analisam a testagem baseada na ferramenta JaBUTi. Disponível em:</p><p>https://pdfs.semanticscholar.org/ada8/6ab7011fb54fa3c2b2390a2cf0f9564d0fe9.pdf. Acesso em: 18 out.</p><p>2021.</p><p>Este vídeo traz uma explicação bem didática e simples do teste caixa-branca e caixa-preta, ressaltando as</p><p>principais diferenças que podemos encontrar entre estes dois tipos de testagem. Disponível em:</p><p>https://www.youtube.com/watch?v=QyXN_zAhqJA&t=266s. Acesso em: 18 out. 2021.</p><p>Videoaula: Teste ponto a ponto e a importância na infraestrutura</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>Resolução do Estudo de Caso</p><p>Para visualizar o objeto, acesse seu material digital.</p><p>03/09/2024, 15:10 wlldd_221_u1_qua_aut_tes</p><p>https://www.colaboraread.com.br/integracaoAlgetec/index?usuarioEmail=taliadaluzpaz%40gmail.com&usuarioNome=TALIA+DA+LUS+PAZ&disciplinaDescricao=&atividadeId=3925672&atividadeDescricao=CW1+… 19/30</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788595155732/epubcfi/6/20%5B%3Bvnd.vst.idref%3Dchapter4.xhtml%5D!/4/2/2/2/2</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788595155732/epubcfi/6/20%5B%3Bvnd.vst.idref%3Dchapter4.xhtml%5D!/4/2/2/2/2</p><p>https://pdfs.semanticscholar.org/ada8/6ab7011fb54fa3c2b2390a2cf0f9564d0fe9.pdf</p><p>https://www.youtube.com/watch?v=QyXN_zAhqJA&t=266s</p><p>INTRODUÇÃO</p><p>Seja muito bem-vindo à nossa aula sobre qualidade no processo de integração do software, da disciplina de</p><p>Qualidade e Automação de Testes. Nesta aula, teremos a oportunidade de melhor compreender como a</p><p>qualidade está diretamente relacionada ao desenvolvimento do software, passando pelas diversas fases que o</p><p>compõe, bem como a integração que proporciona entre todos os envolvidos do time. É essencial também que</p><p>a empresa participe de um programa ou siga métricas que façam a veri�cação e análise daquilo que se</p><p>produz, sendo essencial para manter um padrão de qualidade, garantindo, assim, a con�ança e a</p><p>credibilidade com o consumidor daquele software, que, neste caso, é o usuário.</p><p>E aí, gostou do que leu até agora? Então, prepare-se, pois muito mais está por vir! Conhecimento gera</p><p>conhecimento e, quanto mais sabemos, melhor nos tornamos como pro�ssionais deste vasto universo</p><p>tecnológico.</p><p>NORMAS PARA DESENVOLVIMENTO DE SOFTWARES COM QUALIDADE</p><p>Agora, estudaremos a respeito das normas para desenvolvimento de softwares com qualidade. Durante esse</p><p>primeiro momento, compreenderemos o que é importante para desenvolver um sistema, seja ele web,</p><p>desktop ou app com qualidade.</p><p>Utilizar-se de normas, padrões e métodos para desenvolver qualquer atividade, seja ela qual for, acarretará</p><p>um resultado positivo e satisfatório. Assim também ocorre com a qualidade do software, que deve possuir</p><p>suas diretrizes bem de�nidas para que o produto, no início, durante e no �nal do processo, possa estar de</p><p>acordo com os anseios do cliente. Mas, antes de entrarmos no assunto propriamente dito, é importante</p><p>conceituarmos o que signi�ca qualidade. Conforme expresso pela NBR ISSO 9000:2005, que a�rma que</p><p>qualidade é o “grau no qual um conjunto de características inerentes satisfaz aos requisitos”, tornando-a como</p><p>algo subjetivo, ou seja, não há uma padronização ou um conceito rígido, mas, sim, uma variação de produto</p><p>para produto, serviço para serviço e de cliente para cliente. Indo mais além, Glass (1998) corrobora ao a�rmar</p><p>que a relação deve ser intuitiva, apresentando a seguinte “fórmula”: “satisfação do usuário = produto</p><p>compatível + boa qualidade + entrega dentro do orçamento e do prazo previsto”. Todos esses fatores,</p><p>agregados à seriedade</p>