Prévia do material em texto
Teste e inspeção de software: técnicas e automatização Professor(a): Otávio Toledo Perin (Especialização) Prepare-se! Chegou a hora de você testar o conhecimento adquirido nesta disciplina. A Avaliação Virtual (AV) é composta por questões objetivas e corresponde a 100% da média final. Você tem até cinco tentativas para "Enviar" as questões, que são automaticamente corrigidas. Você pode responder as questões consultando o material de estudos, mas lembre-se de cumprir prazo estabelecido. Boa prova! 1) Associe as ferramentas de apoio para inspeção de software com suas respectivas funções principais: 1. SonarQube 2. GitHub 3. Jira 4. Gerrit 5. Bugzilla Avaliação enviada com sucesso X a) Revisão colaborativa de código b) Análise estática de código c) Gerenciamento de bugs e defeitos Escolha a alternativa que apresenta a associação correta: Alternativas: 3-b, 4-a, 5-b. 1-a. 2-c 3-b, 4-c. 5-b. 1-b, 2-c, 3-a, 5-a. 1-a. 2-b, 5-a. 1-b 2-a, 3-c. 4-a. CORRETO Resolução comentada: Associe as ferramentas de apoio para inspeção de software com suas respectivas funções principais: 1. SonarQube Comentário: SonarQube é uma ferramenta de análise estática de código. 2. GitHub Comentário: GitHub é uma plataforma que permite revisão colaborativa de código. 3. Jira Comentário: Jira é uma ferramenta para gerenciamento de bugs e defeitos. 4. Gerrit Comentário: Gerrit é uma ferramenta que permite revisão colaborativa de código. 5. Bugzilla Comentário: Bugzilla é uma ferramenta para gerenciamento de bugs e Código da questão: 87632 2) Complete as lacunas na sentença a seguir, escolhendo a alternativa correta: A inspeção de software é uma prática que visa identificar e corrigir em artefatos de desenvolvimento, como código, documentação e requisitos, antes da etapa de propriamente dita. Alternativas: falhas; testes. automatizada; inconsistências; desenvolvimento. estruturada; defeitos; testes. CORRETO colaborativa; vulnerabilidades; implementação. ad hoc; erros; Resolução comentada: A inspeção de software é uma prática estruturada que visa identificar e corrigir defeitos em artefatos de desenvolvimento, antes da etapa de testes propriamente dita. É importante, pois analogamente a uma peneira, filtrará defeitos maiores, reduzindo a propagação destes para as demais atividades de Código da questão: 87630 3) Qual das alternativas a seguir melhor descreve a importância de aplicar técnicas de teste de software em cada etapa do desenvolvimento? Alternativas: As técnicas de teste de software são aplicadas apenas na fase final do desenvolvimento para garantir que o produto esteja pronto para o lançamento. As técnicas de teste de software são importantes apenas para a fase de integração, pois é quando os módulos começam a interagir entre si. As técnicas de teste de software são utilizadas principalmente para verificar a estética e a interface do usuário, não sendo necessárias para avaliar a funcionalidade interna do sistema. A aplicação de técnicas de teste de software é opcional e depende do tamanho do projeto, sendo desnecessária para projetos menores.Aplicar técnicas de teste de software em cada etapa do desenvolvimento é essencial para identificar e corrigir defeitos de forma precoce, garantindo que produto final atenda aos requisitos de qualidade, eficiência e segurança. CORRETO Resolução comentada: Conforme descrito no texto-base, aplicar técnicas de teste de software em cada etapa do desenvolvimento é crucial para identificar e corrigir defeitos de forma precoce. Isso assegura que produto final atenda aos requisitos de qualidade, eficiência e segurança, minimizando custos e retrabalho. Logo, com a aplicação das técnicas de teste, têm-se redução de custos e esforços, visto que refatorar ou seja, corrigir ou reescrever códigos já prontos custa mais caro do que identificar defeitos previamente, antes de seguir para próximas etapas de desenvolvimento ou a finalização do produto. Código da questão: 87624 Avaliação enviada com sucesso 4) Considere as seguintes asserções a respeito das causas de defeitos e o papel do analista de teste no desenvolvimento de software: 1. Falhas de comunicação entre os membros da equipe são uma das principais causas de defeitos no software. 2. o analista de teste é responsável apenas pela verificação de funcionalidade do software. 3. Interpretações incorretas dos requisitos podem levar a defeitos no software. 4. Erros humanos na codificação são uma causa comum de defeitos no software. 5. analista de teste atua como um "guardião" da qualidade, implementando métodos e estratégias de teste para reduzir o risco de falhas. Quais asserções são corretas? Alternativas: 2,4 5. 1, 3. 1, 4. CORRETO Resolução comentada: Interpretações incorretas dos requisitos podem levar a defeitos no software. Comentário: Correto. Interpretações incorretas dos requisitos podem resultar em funcionalidades que não atendem às necessidades do Erros humanos na codificação são uma causa comum de defeitos no software. Comentário: Correto. Erros humanos durante a codificação são uma das causas mais comuns de defeitos no software. o analista de teste atua como um "guardião" da qualidade, implementando métodos e estratégias de teste para reduzir o risco de falhas. Comentário: Correto. analista de teste tem um papel crucial na implementação de métodos e estratégias de teste para assegurar a qualidade do software. Vamos analisar cada asserção para determinar se são corretas ou não. 1. Falhas de comunicação entre os membros da equipe são uma das principais causas de defeitos no software. 2. Comentário: Correto. Falhas de comunicação podem levar a mal-entendidos e erros no desenvolvimento do software. o analista de teste é responsável apenas pela verificação de funcionalidade do software. Comentário: Incorreto. analista de teste é responsável por verificar não apenas a funcionalidade, mas também performance, segurança e outros aspectos do software. Código da questão: 87623 5) Analise as seguintes asserções a respeito da aplicabilidade dos processos e casos de testes automatizados e determine se são verdadeiras (V) ou falsas (F): 1. Os testes automatizados são amplamente aplicáveis em projetos que exigem validações frequentes, como sistemas críticos e plataformas de comércio eletrônico. 2. A automação de testes é menos eficaz em ambientes de desenvolvimento ágil, em que as atualizações são constantes. 3. A flexibilidade dos testes automatizados permite customizações que atendem demandas específicas de diferentes setores. 4. Em ambientes de integração contínua, a automação assegura que mudanças no código não causem falhas em funcionalidades já validadas. 5. A aplicabilidade dos testes automatizados é limitada a projetos de pequena escala e baixa criticidade. Escolha a alternativa que apresenta a sequência correta de verdadeiro (V) e falso (F) para as asserções: Alternativas: CORRETO F. Resolução comentada:Vamos analisar cada uma das asserções para determinar se são verdadeiras ou 1. Os testes automatizados são amplamente aplicáveis em projetos que exigem validações frequentes, como sistemas críticos e plataformas de comércio eletrônico. Verdadeiro. Os testes automatizados são altamente aplicáveis em projetos que exigem validações frequentes. 2. A automação de testes é menos eficaz em ambientes de desenvolvimento ágil, em que as atualizações são constantes. A automação de testes é especialmente eficaz em ambientes de desenvolvimento ágil, em que as atualizações são 3. A flexibilidade dos testes automatizados permite customizações que atendem demandas específicas de diferentes setores. Verdadeiro. A flexibilidade dos testes automatizados permite customizações para atender demandas específicas de diferentes setores. 4. Em ambientes de integração contínua, a automação assegura que mudanças no código não causem falhas em funcionalidades já validadas. Avaliação enviada com sucesso Verdadeiro. Em ambientes de integração contínua, a automação ajuda a garantir que mudanças no código não causem falhas em funcionalidades já validadas. 5. A aplicabilidade dos testes automatizados é limitada a projetos de pequena escala e baixa criticidade. Falso. A aplicabilidade dos testes automatizados não é limitada a projetos de pequena escala e baixa criticidade; eles são amplamente aplicáveis a projetos de grande escala e alta criticidade. Código da questão: 87636 6) Analise as seguintes asserções que tratam das técnicas de teste de software e determine se são verdadeiras (V) ou falsas (F): 1. teste unitário é realizado nas fases iniciais do desenvolvimento para verificar a funcionalidade de unidades individuais do código. 2. o teste de integração é aplicado para garantir que os módulos de código interajam corretamente entre si. 3. o teste de sistema é executado apenas para verificar a estética e a interface do usuário. 4. o teste de aceitação é realizado para avaliar se o software atende aos requisitos especificados e está apto para o cliente. 5. teste de regressão é dispensável após modificações no código, pois não afeta funcionalidades previamente testadas. Escolha a alternativa que corresponde à sequência correta de verdadeiro (V) e falso (F): Alternativas: F, CORRETO Resolução comentada: Para responder corretamente, é necessário analisar cada asserção com base no Análise das asserções 1. Verdadeiro: o teste unitário é realizado nas fases iniciais do desenvolvimento para verificar a funcionalidade de unidades individuais do código. 2. Verdadeiro: o teste de integração é aplicado para garantir que os módulos de código interajam corretamente entre 3. Falso: teste de sistema não é executado apenas para verificar a estética e a interface do usuário; ele avalia software como um todo em um ambiente que simula o real. 4. Verdadeiro: o teste de aceitação é realizado para avaliar se software atende aos requisitos especificados e está apto para cliente. 5. Falso: o teste de regressão é indispensável após modificações no código, garantindo que novas alterações não afetem funcionalidades previamente testadas. Código da questão: 87626 7) Associe cada descrição de atividade com tipo correto de teste ou inspeção de 1. Verificação detalhada de artefatos de software, como documentos de requisitos e especificações técnicas, antes da execução do código. 2. Testes realizados para verificar se diferentes módulos ou componentes do software funcionam bem juntos. 3. Testes realizados para garantir que o software atenda aos requisitos e expectativas do usuário 4. Testes realizados para verificar a funcionalidade de unidades individuais ou componentes do software. 5. Análise colaborativa e minuciosa de documentos e códigos por diferentes membros da equipe de desenvolvimento. Associe cada atividade ao tipo correto de teste ou inspeção de software: a) Teste de Integração b) Teste de Unidade c) Inspeção de Software d) Teste de Aceitação e) Revisão de Código Alternativas: 1-e, 2-d, 3-b, 5-a. 1-c, 2-a, 3-d, 4-b, 5-e. CORRETO 1-a, 2-c, 3-e, 4-d, 5-b. 1-a, 2-c, 3-e, 4-d, 5-b. 1-b, 2-e, 3-c, 4-a, 5-d. Resolução comentada: Testes realizados para garantir que software atenda aos requisitos e expectativas do usuárioComentário: Esta descrição corresponde a um Teste de Aceitação, que garante que o software atenda aos requisitos e expectativas do usuário final. Testes realizados para verificar a funcionalidade de unidades individuais ou componentes do software. Comentário: Esta descrição corresponde a um Teste de Unidade, que verifica a funcionalidade de unidades individuais ou componentes do software. Análise colaborativa e minuciosa de documentos e códigos por diferentes membros da equipe de Avaliação enviada com sucesso Comentário: Esta descrição corresponde a uma Revisão de Código, que é uma análise colaborativa e minuciosa de documentos e códigos por diferentes membros da equipe de desenvolvimento. Vamos analisar cada atividade e ao tipo correto de teste ou inspeção de software: 1. Verificação detalhada de artefatos de software, como documentos de requisitos e especificações técnicas, antes da execução do código. 2. Comentário: Esta descrição corresponde a uma Inspeção de Software, que ocorre antes da execução do código e envolve a revisão detalhada de artefatos de software. Portanto, as associações corretas são: 1 c) Inspeção de Software 2 a) Teste de Integração 3 d) Teste de Aceitação 4 b) Teste de Unidade 5 e) Revisão de Código Testes realizados para verificar se diferentes módulos ou componentes do software funcionam bem juntos. Comentário: Esta descrição corresponde a um Teste de Integração, que verifica a interação entre diferentes módulos ou componentes do software. Código da questão: 87622 8) Considere as seguintes asserções a respeito da aplicação das técnicas de teste de software: teste unitário é realizado para verificar a funcionalidade de unidades individuais do código, como métodos e nas fases iniciais do 2. teste de integração é aplicado para garantir que os módulos de código interajam corretamente entre si, evitando problemas de compatibilidade. 3. teste de sistema é executado para validar software como um todo, em um ambiente que simula o real, assegurando que todos os componentes operem conforme o esperado. 4. teste de aceitação é realizado para avaliar se software atende aos requisitos especificados e está apto para o cliente. 5. teste de regressão é dispensável após modificações no código, pois não afeta funcionalidades previamente testadas. Escolha a alternativa que contém todas as asserções corretas: Alternativas: CORRETO 1, 2, 5. 1, 5. Resolução comentada: 1. Correta: teste unitário é realizado para verificar a funcionalidade de unidades individuais do código, como métodos e classes, nas fases iniciais do 2. Correta: o teste de integração é aplicado para garantir que os módulos de código interajam corretamente entre si, evitando problemas de compatibilidade. 3. Correta: o teste de sistema é executado para validar o software como um todo, em um ambiente que simula o real, assegurando que todos os componentes operem conforme esperado. 4. Correta: o teste de aceitação é realizado para avaliar se software atende aos requisitos especificados e está apto para o cliente. 5. Incorreta: teste de regressão não é dispensável após modificações no código; ele é indispensável para garantir que novas alterações ou correções não gerem falhas em funcionalidades já testadas e aprovadas. Código da questão: 87628 9) Analise as seguintes afirmações acerca da importância dos testes e inspeções no processo de desenvolvimento de software e determine se são verdadeiras (V) ou falsas (F): 1. Testes de software são realizados apenas na fase de construção e integração do ciclo de desenvolvimento. 2. Inspeções de software ocorrem antes da execução do código e ajudam a identificar defeitos nas fases iniciais do desenvolvimento. 3. A aplicação de testes e inspeções ao longo do processo de desenvolvimento contribui para a entrega de um produto mais 4. Testes de usabilidade são realizados para garantir que o software atenda às necessidades dos usuários. 5. Inspeções de software são desnecessárias se os testes de software forem bem executados. Escolha a alternativa que apresenta a sequência correta de verdadeiro (V) e falso (F): Alternativas: V, F, CORRETOResolução comentada: Vamos analisar cada afirmação para determinar se são verdadeiras ou falsas. 1. Testes de software são realizados apenas na fase de construção e integração do ciclo de desenvolvimento. 2. Comentário: Testes de software podem ser realizados em várias fases do ciclo de desenvolvimento, não apenas na fase de construção e integração. Inspeções de software ocorrem antes da execução do código e ajudam a identificar defeitos nas fases iniciais do desenvolvimento Comentário: Verdadeiro. Inspeções de software são realizadas antes da execução do código e têm como objetivo identificar defeitos nas fases iniciais do Avaliação enviada com sucesso X Código da questão: 87621 10) Qual das seguintes alternativas descreve corretamente a diferença entre erro, defeito e falha no contexto da inspeção de software? Alternativas: Um erro é a manifestação de um defeito durante a execução do software, um defeito é uma imperfeição no código, e uma falha é uma ação ou decisão incorreta durante o Um erro é uma ação ou decisão incorreta durante o desenvolvimento, um defeito é uma imperfeição no código ou em qualquer artefato de software resultante de um erro, e uma falha é a manifestação de um defeito durante a execução do software. CORRETO Um erro é uma imperfeição no código, um defeito é uma ação incorreta durante o desenvolvimento, e uma falha é a manifestação de um defeito durante a execução do software. Um erro é a manifestação de um defeito durante a execução do software, um defeito é uma ação incorreta durante o desenvolvimento, e uma falha é uma imperfeição no código. Um erro é uma imperfeição no código, um defeito é a manifestação de um erro durante a execução do software, e uma falha é uma ação incorreta durante o Resolução comentada: A alternativa "Um erro é uma ação ou decisão incorreta durante o desenvolvimento, um defeito é uma imperfeição no código ou em qualquer artefato de software resultante de um erro, e uma falha é a manifestação de um defeito durante a execução do software." descreve com precisão os conceitos de erro, defeito e falha no contexto da inspeção de software. Código da questão: 87629 Arquivos Links