Geral
Engenharia de Software
Semana 1 4
#1
A Engenharia de Software envolve a aplicação de conceitos de engenharia para a produção de software, desde o momento de entender as necessidades do cliente até a manutenção futura do software. Ela segue um conjunto de atividades fundamentais que podem variar de nome, dependendo das fontes consultadas, mas que, em geral, podem ser divididas em etapas.
Com base nessas informações, assinale a alternativa que apresenta as atividades fundamentais da Engenharia de Software:
Com base nessas informações, assinale a alternativa que apresenta as atividades fundamentais da Engenharia de Software:
#2
Os diferentes modelos de processo de software são utilizados para gerenciar o desenvolvimento de software, cada um com suas características específicas. O modelo em cascata, por exemplo, segue uma abordagem sequencial e linear, enquanto o modelo incremental permite o desenvolvimento em etapas curtas com feedback contínuo.
Logo, assinale a alternativa que descreve corretamente uma característica do modelo espiral.
Logo, assinale a alternativa que descreve corretamente uma característica do modelo espiral.
#3
Durante o desenvolvimento de um novo sistema para uma empresa, a equipe de engenharia de software está avaliando qual modelo de processo utilizar. Eles consideram que o projeto possui muitos riscos desconhecidos e que podem surgir novos requisitos durante o desenvolvimento. A equipe decide usar um modelo de processo que incorpora a análise de riscos e permite revisões e aprimoramentos constantes em ciclos iterativos, adaptando-se melhor às mudanças e incertezas.
Neste sentido, assinale a alternativa que descreve uma vantagem do modelo em Espiral em comparação ao modelo em Cascata.
Neste sentido, assinale a alternativa que descreve uma vantagem do modelo em Espiral em comparação ao modelo em Cascata.
#4
A engenharia de software envolve diversas atividades essenciais para garantir a qualidade e eficiência no desenvolvimento de programas. Essas atividades são fundamentais para atender às necessidades do mercado e assegurar que os sistemas de software sejam confiáveis, eficientes e mantenham-se atualizados frente às demandas tecnológicas. Com base no texto base, analise as seguintes atividades da engenharia de software e identifique qual delas é uma das quatro atividades fundamentais descritas por Ian Sommerville.
Nesse sentido, assinale a alternativa que representa corretamente uma das atividades fundamentais da engenharia de software.
Nesse sentido, assinale a alternativa que representa corretamente uma das atividades fundamentais da engenharia de software.
Semana 2 5
#1
O documento de especificação de requisitos pode ter diferentes formatos e níveis de detalhamento, dependendo das necessidades da organização e do projeto. Alguns documentos podem ser mais simples, enquanto outros podem ser extremamente detalhados, incluindo diagramas e especificações formais.
Diante disso, assinale a alternativa que descreve uma abordagem correta para a estruturação de um documento de especificação de requisitos:
Diante disso, assinale a alternativa que descreve uma abordagem correta para a estruturação de um documento de especificação de requisitos:
#2
No desenvolvimento de software, os requisitos podem ser classificados como funcionais e não funcionais. Requisitos funcionais descrevem o comportamento específico que o sistema deve ter, enquanto os requisitos não funcionais descrevem as qualidades e restrições do sistema, como desempenho e usabilidade.
Agora, suponha que você esteja desenvolvendo um aplicativo de comércio eletrônico, diante disso, assinale a alternativa que traz um exemplo que representa um requisito não funcional para esse projeto.
Agora, suponha que você esteja desenvolvendo um aplicativo de comércio eletrônico, diante disso, assinale a alternativa que traz um exemplo que representa um requisito não funcional para esse projeto.
#3
Os requisitos não funcionais podem ser classificados em diferentes categorias, como os requisitos de desempenho, que tratam de [preencher 1], e os requisitos de segurança, que tratam de [preencher 2]. Esses tipos de requisitos impõem restrições ao sistema para garantir que ele atenda aos critérios de qualidade e eficiência.
As lacunas [preencher 1] e [preencher 2] são corretamente substituídas por:
As lacunas [preencher 1] e [preencher 2] são corretamente substituídas por:
#4
O processo de engenharia de requisitos é composto por várias etapas essenciais, que incluem a elicitação, análise, especificação, validação e gestão de requisitos. Cada etapa desempenha um papel crucial para assegurar que os requisitos sejam corretamente compreendidos e documentados.
Assinale a alternativa que descreve corretamente uma das etapas do processo de engenharia de requisitos.
Assinale a alternativa que descreve corretamente uma das etapas do processo de engenharia de requisitos.
#5
A Engenharia de Requisitos é uma subárea da Engenharia de Software dedicada a descobrir, analisar, documentar, verificar e validar os requisitos de um sistema. Esses requisitos refletem as necessidades dos clientes e é fundamental para garantir o sucesso de um projeto de software.
Qual das alternativas abaixo define corretamente o que é um requisito?
Qual das alternativas abaixo define corretamente o que é um requisito?
Semana 3 13
#1
A engenharia de software abrange o design de arquiteturas em diferentes níveis de abstração, incluindo a arquitetura em pequena escala, focada na estrutura de programas individuais, e a arquitetura em grande escala, que se ocupa de sistemas corporativos complexos. Estas arquiteturas refletem diferentes preocupações e desafios no processo de design.
Diante disso, assinale a alternativa que aplica o conceito de arquitetura em pequena escala para explicar como ela influencia o desenvolvimento de um programa individual.
Diante disso, assinale a alternativa que aplica o conceito de arquitetura em pequena escala para explicar como ela influencia o desenvolvimento de um programa individual.
#2
A refatoração é uma prática de desenvolvimento de software que envolve a reestruturação do código existente sem alterar seu comportamento externo. Apesar de não ser primariamente focada em melhorar o desempenho, a refatoração pode influenciar a eficiência do software de maneiras significativas.
Com relação ao conceito de refatoração e sua relação com a otimização de desempenho em software, observe as afirmativas a seguir.
I. A refatoração prepara o software para uma otimização de desempenho mais eficaz ao tornar o código mais modular e fácil de entender.
II. Focar em otimizar o desempenho desde o início do desenvolvimento de software pode resultar em código complexo e difícil de manter.
III. Otimizar cada parte do software sem considerar sua utilização frequente pode levar a um desperdício de recursos e esforços.
IV. Refatoração elimina a necessidade de qualquer otimização de desempenho posterior ao corrigir todos os problemas de eficiência durante o processo.
Está correto o que se afirma em:
Com relação ao conceito de refatoração e sua relação com a otimização de desempenho em software, observe as afirmativas a seguir.
I. A refatoração prepara o software para uma otimização de desempenho mais eficaz ao tornar o código mais modular e fácil de entender.
II. Focar em otimizar o desempenho desde o início do desenvolvimento de software pode resultar em código complexo e difícil de manter.
III. Otimizar cada parte do software sem considerar sua utilização frequente pode levar a um desperdício de recursos e esforços.
IV. Refatoração elimina a necessidade de qualquer otimização de desempenho posterior ao corrigir todos os problemas de eficiência durante o processo.
Está correto o que se afirma em:
#3
A arquitetura de software deve fornecer uma base que facilite a escalabilidade, a manutenção e a integração de diferentes componentes, promovendo a reutilização de código e a adoção de boas práticas de engenharia de software. Além disso, é fundamental que a arquitetura seja flexível o suficiente para se adaptar a futuras mudanças tecnológicas e de negócios, assegurando a longevidade e a relevância do sistema desenvolvido.
Diante disso, assinale a alternativa que apresenta o principal objetivo do projeto de arquitetura em desenvolvimento de software?
Diante disso, assinale a alternativa que apresenta o principal objetivo do projeto de arquitetura em desenvolvimento de software?
#4
Refatoração é uma técnica poderosa no desenvolvimento de software, conhecida por melhorar a estrutura interna do código sem alterar seu comportamento externo. Apesar de seus benefícios, a refatoração possui limitações que podem não torná-la ideal em todos os contextos. Reconhecer essas limitações é crucial para aplicar a técnica de forma eficaz.
Diante disso, assinale a alternativa que descreve o porquê é importante estar ciente das limitações da refatoração.
Diante disso, assinale a alternativa que descreve o porquê é importante estar ciente das limitações da refatoração.
#5
Ao projetar a arquitetura de software, os engenheiros enfrentam várias decisões críticas que podem afetar significativamente tanto o desempenho quanto a eficiência do sistema desenvolvido. Essas decisões incluem a escolha de utilizar uma arquitetura de aplicação genérica como template, a distribuição do processamento entre núcleos ou processadores, e a seleção de modelos de arquitetura que podem variar em detalhamento e complexidade.
Neste sentido, assinale a alternativa que explica como a decisão de usar uma arquitetura de aplicação genérica como template pode impactar o desenvolvimento de um sistema de software.
Neste sentido, assinale a alternativa que explica como a decisão de usar uma arquitetura de aplicação genérica como template pode impactar o desenvolvimento de um sistema de software.
#6
A escolha do estilo de arquitetura de um sistema de software deve considerar os requisitos não funcionais, como desempenho, segurança da informação, segurança, disponibilidade e manutenibilidade. A arquitetura adequada para um sistema pode variar significativamente com base nesses requisitos, impactando diretamente na eficácia e eficiência do sistema final.
Com relação a este contexto e sobre o conteúdo estudado, analise as asserções a seguir e a relação proposta entre elas:
I. A arquitetura deve ser projetada para localizar operações críticas dentro de um pequeno número de componentes, com esses componentes implantados no mesmo computador para otimizar o desempenho.
PORQUE
II. Se a disponibilidade for um requisito crítico, a arquitetura deve incluir componentes redundantes que permitam substituição e atualização sem interrupção do sistema.
A respeito dessas asserções assinale a alternativa correta:
Com relação a este contexto e sobre o conteúdo estudado, analise as asserções a seguir e a relação proposta entre elas:
I. A arquitetura deve ser projetada para localizar operações críticas dentro de um pequeno número de componentes, com esses componentes implantados no mesmo computador para otimizar o desempenho.
PORQUE
II. Se a disponibilidade for um requisito crítico, a arquitetura deve incluir componentes redundantes que permitam substituição e atualização sem interrupção do sistema.
A respeito dessas asserções assinale a alternativa correta:
#7
Sistemas de software frequentemente compartilham arquiteturas similares dentro do mesmo domínio de aplicação. A reutilização de arquiteturas e padrões pode influenciar o desenvolvimento e a qualidade dos sistemas. Em sistemas grandes, a escolha da arquitetura de distribuição é uma decisão chave. Padrões de arquitetura, como cliente-servidor ou arquitetura em camadas, são amplamente utilizados.
Com relação a este contexto e sobre o conteúdo estudado, avalie as asserções a seguir e a relação proposta entre elas:
I. A reutilização de arquiteturas dentro do mesmo domínio de aplicação pode acelerar o desenvolvimento e melhorar a qualidade do software, pois permite aproveitar o conhecimento e a experiência acumulados.
PORQUE
II. Os padrões de arquitetura, como cliente-servidor e arquitetura em camadas, fornecem modelos comprovados que podem ser adaptados para diferentes sistemas, aumentando a eficiência do processo de design e implementação.
A respeito dessas asserções assinale a alternativa correta:
Com relação a este contexto e sobre o conteúdo estudado, avalie as asserções a seguir e a relação proposta entre elas:
I. A reutilização de arquiteturas dentro do mesmo domínio de aplicação pode acelerar o desenvolvimento e melhorar a qualidade do software, pois permite aproveitar o conhecimento e a experiência acumulados.
PORQUE
II. Os padrões de arquitetura, como cliente-servidor e arquitetura em camadas, fornecem modelos comprovados que podem ser adaptados para diferentes sistemas, aumentando a eficiência do processo de design e implementação.
A respeito dessas asserções assinale a alternativa correta:
#8
Uma arquitetura de software pode ser descrita a partir de diferentes visões, cada uma com um nível distinto de abstração. As quatro principais visões são: visão lógica, visão de processo, visão de desenvolvimento e visão física. Essas visões permitem uma compreensão abrangente do sistema, desde sua organização interna até sua interação com o hardware. Para descrever essas arquiteturas, utilizam-se tanto notações informais quanto formais, incluindo UML e linguagens formais de descrição de arquitetura (ADLs), que são essenciais para sistemas altamente críticos.
Diante disso, analise como as diferentes visões de arquitetura contribuem para uma compreensão completa de um sistema de software e assinale a alternativa que identifique qual delas se concentra na organização do sistema em pedaços menores para atender aos requisitos funcionais.
Diante disso, analise como as diferentes visões de arquitetura contribuem para uma compreensão completa de um sistema de software e assinale a alternativa que identifique qual delas se concentra na organização do sistema em pedaços menores para atender aos requisitos funcionais.
#9
A arquitetura de repositório centraliza informações cruciais de um sistema, permitindo que componentes variados, como compiladores e ferramentas de depuração em um IDE, acessem e modifiquem dados consistentemente. Esse modelo é benéfico em ambientes que apresentem tipos de problemas específicos.
Diante disso, assinale a alternativa que apresenta um benefício da utilização da arquitetura de repositório em sistemas.
Diante disso, assinale a alternativa que apresenta um benefício da utilização da arquitetura de repositório em sistemas.
#10
Refatoração é um processo crucial no desenvolvimento de software, essencial para manter a qualidade do código ao longo do tempo. Ela envolve modificar o código para melhorar sua estrutura interna sem alterar seu comportamento externo. A prática é fundamental para prevenir a deterioração do design do software, especialmente em projetos de longo prazo.
Neste sentido, assinale a alternativa que apresenta o principal benefício da refatoração para o desenvolvimento de software.
Neste sentido, assinale a alternativa que apresenta o principal benefício da refatoração para o desenvolvimento de software.
#11
A arquitetura "Duto e Filtro" é um padrão de design utilizado para construir sistemas que processam dados de maneira sequencial ou paralela através de componentes modulares. Este modelo é especialmente útil em aplicações que exigem o processamento de dados em estágios discretos, cada um realizando transformações específicas. As vantagens deste modelo incluem modularidade e facilidade de entendimento, enquanto as desvantagens podem envolver a sobrecarga de sistema devido à transmissão de dados entre os filtros.
Neste sentido, assinale a alternativa que aplica o conceito de arquitetura "Duto e Filtro" para descrever como ela pode ser implementada em um sistema de processamento de imagens.
Neste sentido, assinale a alternativa que aplica o conceito de arquitetura "Duto e Filtro" para descrever como ela pode ser implementada em um sistema de processamento de imagens.
#12
A arquitetura em camadas é uma metodologia comum no design de sistemas de software, que organiza o sistema em camadas distintas, cada uma responsável por funções específicas. Contudo, é essencial gerenciar cuidadosamente as interações entre as camadas para evitar impactos na performance e dependências inadvertidas.
Neste sentido, assinale a alternativa que indica uma vantagem desta metodologia no desenvolvimento de sistemas de software.
Neste sentido, assinale a alternativa que indica uma vantagem desta metodologia no desenvolvimento de sistemas de software.
#13
A refatoração é um importante processo no desenvolvimento de software, pois elimina duplicidades, simplifica lógicas condicionais e garante que novas funcionalidades possam ser adicionadas sem comprometer o comportamento existente. Basicamente ela concentra em melhorar a estrutura do código sem alterar sua funcionalidade.
Esta abordagem estratégica é crucial para manter a longevidade e a adaptabilidade do software. Neste sentido, assinale a alternativa que apresenta o objetivo da refatoração no desenvolvimento de software.
Esta abordagem estratégica é crucial para manter a longevidade e a adaptabilidade do software. Neste sentido, assinale a alternativa que apresenta o objetivo da refatoração no desenvolvimento de software.
Semana 4 8
#1
A engenharia de software baseada em reuso tem se tornado uma estratégia eficiente para o desenvolvimento de sistemas, maximizando o aproveitamento de componentes já existentes. Essa abordagem possibilita a economia de recursos e tempo, além de potencializar a eficiência no desenvolvimento de novos sistemas.
Diante disso, assinale a alternativa que apresenta a estratégia de reuso em engenharia de software.
Diante disso, assinale a alternativa que apresenta a estratégia de reuso em engenharia de software.
#2
Os padrões de projeto são componentes cruciais na engenharia de software, especialmente úteis no desenvolvimento orientado a objetos devido à sua capacidade de resolver problemas de design recorrentes de forma eficaz. Eles foram popularizados pelo "Gang of Four" em seu influente livro sobre padrões de projeto orientados a objetos.
Diante disso, assinale a alternativa que apresenta a vantagem dos padrões de projeto.
Diante disso, assinale a alternativa que apresenta a vantagem dos padrões de projeto.
#3
Engenharia de software baseada em componentes foca na construção de sistemas de software a partir de componentes pré-fabricados. Este paradigma depende de várias bases fundamentais que facilitam a interoperabilidade e reutilização de componentes, tornando o desenvolvimento mais eficiente e flexível.
Diante disso, assinale a alternativa que apresenta os conceitos da engenharia de software baseada em componentes.
#4
O reúso de software é uma estratégia essencial na engenharia de software para aumentar a eficiência, reduzir custos e melhorar a qualidade dos sistemas. Utilizando componentes, padrões e práticas já desenvolvidos, os engenheiros podem acelerar o processo de desenvolvimento e garantir soluções mais robustas.
Diante disso, assinale a alternativa que apresenta a característica dos padrões arquiteturais.
Diante disso, assinale a alternativa que apresenta a característica dos padrões arquiteturais.
#5
No desenvolvimento de software, frequentemente surgem problemas de incompatibilidade de interfaces entre classes, que dificultam a integração e reutilização de código. Para resolver esses problemas de maneira eficaz e promover a reutilização de componentes existentes, padrões de projeto específicos são utilizados. Esses padrões fornecem soluções estruturadas para adaptar e integrar classes com interfaces diferentes, evitando a necessidade de criar soluções improvisadas.
Com relação a este contexto e sobre o conteúdo estudado, avalie as asserções a seguir e a relação proposta entre elas:
I. O padrão Adapter permite que classes com interfaces incompatíveis colaborem sem a necessidade de modificar diretamente as classes existentes.
PORQUE
II. A principal motivação para usar o padrão Adapter é evitar a criação de soluções caseiras e ad-hoc para problemas de incompatibilidade de interface.
A respeito dessas asserções, assinale a alternativa correta:
Com relação a este contexto e sobre o conteúdo estudado, avalie as asserções a seguir e a relação proposta entre elas:
I. O padrão Adapter permite que classes com interfaces incompatíveis colaborem sem a necessidade de modificar diretamente as classes existentes.
PORQUE
II. A principal motivação para usar o padrão Adapter é evitar a criação de soluções caseiras e ad-hoc para problemas de incompatibilidade de interface.
A respeito dessas asserções, assinale a alternativa correta:
#6
Os padrões de projeto são fundamentais para resolver problemas de design de software de maneira estruturada e previsível. Compreendendo elementos como nome, problema, solução e consequências, esses padrões ajudam no desenvolvimento eficiente e eficaz de soluções de software, orientando o desenvolvedor sobre como e quando aplicar cada padrão.
Com base no apresentado, observe as afirmativas a seguir:
I. O nome de um padrão de projeto serve como um identificador sem relação com seu conteúdo ou aplicação.
II. A descrição do problema em um padrão de projeto inclui o contexto e os requisitos específicos que tornam esse problema relevante.
III. A solução proposta em um padrão de projeto é abstrata e pode ser aplicada a diferentes contextos específicos de desenvolvimento.
IV. As consequências de aplicar um padrão de projeto não incluem considerações sobre os trade-offs envolvidos em sua utilização.
Está correto o que se afirma em:
Com base no apresentado, observe as afirmativas a seguir:
I. O nome de um padrão de projeto serve como um identificador sem relação com seu conteúdo ou aplicação.
II. A descrição do problema em um padrão de projeto inclui o contexto e os requisitos específicos que tornam esse problema relevante.
III. A solução proposta em um padrão de projeto é abstrata e pode ser aplicada a diferentes contextos específicos de desenvolvimento.
IV. As consequências de aplicar um padrão de projeto não incluem considerações sobre os trade-offs envolvidos em sua utilização.
Está correto o que se afirma em:
#7
Componentes de software desempenham um papel essencial no desenvolvimento de sistemas modulares, onde grandes sistemas são divididos em partes menores, cada uma responsável por uma funcionalidade específica. Esses componentes interagem entre si através de interfaces bem definidas, o que permite sua reutilização em diferentes contextos.
Com base nos assuntos estudados sobre componentes de software, leia as afirmativas a seguir:
I. Componentes de software são agrupamentos de objetos inter-relacionados que expõem apenas as interfaces necessárias para interação com outros sistemas.
II. As interfaces dos componentes de software garantem a modularidade e independência, permitindo que sejam reutilizados em diferentes contextos sem a necessidade de modificação.
III. A reutilização de componentes de software em novos contextos pode ser comprometida se as interfaces não forem bem definidas e padronizadas.
IV. Componentes de software devem ser projetados para funcionar exclusivamente dentro de um único sistema, limitando sua aplicabilidade em outros contextos.
É correto o que se afirma em:
Com base nos assuntos estudados sobre componentes de software, leia as afirmativas a seguir:
I. Componentes de software são agrupamentos de objetos inter-relacionados que expõem apenas as interfaces necessárias para interação com outros sistemas.
II. As interfaces dos componentes de software garantem a modularidade e independência, permitindo que sejam reutilizados em diferentes contextos sem a necessidade de modificação.
III. A reutilização de componentes de software em novos contextos pode ser comprometida se as interfaces não forem bem definidas e padronizadas.
IV. Componentes de software devem ser projetados para funcionar exclusivamente dentro de um único sistema, limitando sua aplicabilidade em outros contextos.
É correto o que se afirma em:
#8
Os frameworks são ferramentas essenciais na engenharia de software moderna, proporcionando uma estrutura organizada e reutilizável para o desenvolvimento de aplicações. Eles incorporam padrões de projeto que promovem a extensibilidade e a manutenibilidade do código.
Com relação a este contexto e do conteúdo estudado sobre implementação de frameworks, analise as asserções a seguir e a relação proposta entre elas:
I. Um framework MVC inclui padrões de projeto como Observer, Strategy e Composite, o que permite a extensibilidade e a reutilização do código.
PORQUE
II. A natureza genérica dos padrões de projeto e seu uso de classes abstratas e concretas são fundamentais para a funcionalidade dos frameworks, permitindo a adaptação a diferentes aplicações.
A respeito dessas asserções assinale a alternativa correta:
Com relação a este contexto e do conteúdo estudado sobre implementação de frameworks, analise as asserções a seguir e a relação proposta entre elas:
I. Um framework MVC inclui padrões de projeto como Observer, Strategy e Composite, o que permite a extensibilidade e a reutilização do código.
PORQUE
II. A natureza genérica dos padrões de projeto e seu uso de classes abstratas e concretas são fundamentais para a funcionalidade dos frameworks, permitindo a adaptação a diferentes aplicações.
A respeito dessas asserções assinale a alternativa correta:
Semana 5 12
#1
Existem
diversos tipos de testes de software utilizados para garantir a
qualidade e a funcionalidade dos sistemas. Cada tipo de teste tem uma
finalidade específica, e entender essas diferenças é essencial para a
aplicação correta das estratégias de teste.
Sobre a situação em destaque, assinale a alternativa correta que descreve o teste de "Caixa Preta":
Sobre a situação em destaque, assinale a alternativa correta que descreve o teste de "Caixa Preta":
#2
O
teste de fumaça é uma prática importante em projetos que adotam
integração contínua, pois permite testar o software de forma regular e
rápida, identificando problemas críticos. Além disso, essa abordagem
ajuda a reduzir o risco de incompatibilidades e erros bloqueadores que
podem comprometer o cronograma de desenvolvimento. A aplicação frequente
do teste de fumaça está relacionada a uma avaliação constante do
progresso do software.
Com relação a esse contexto, analise as asserções a seguir e a relação proposta entre elas:
I. O teste fumaça minimiza o risco de incompatibilidades e erros bloqueadores em sistemas de software,
PORQUE
II. O teste de fumaça é realizado diariamente, permitindo a detecção rápida de defeitos, melhorando a qualidade do software e reduzindo o impacto de erros no cronograma.
A respeito dessas asserções, assinale a alternativa correta:
Com relação a esse contexto, analise as asserções a seguir e a relação proposta entre elas:
I. O teste fumaça minimiza o risco de incompatibilidades e erros bloqueadores em sistemas de software,
PORQUE
II. O teste de fumaça é realizado diariamente, permitindo a detecção rápida de defeitos, melhorando a qualidade do software e reduzindo o impacto de erros no cronograma.
A respeito dessas asserções, assinale a alternativa correta:
#3
No
processo de desenvolvimento de software, a estratégia de teste envolve a
aplicação de diferentes abordagens para assegurar a qualidade do
sistema em diversos momentos. Cada componente dessa estratégia
desempenha um papel específico: enquanto os níveis de teste se
concentram em etapas do ciclo de desenvolvimento, os tipos de teste
direcionam a atenção para aspectos como funcionalidade e segurança, e as
técnicas determinam as práticas adotadas para a execução dos testes.
Compreender como esses elementos se integram é fundamental para a
construção de um processo de validação eficaz.
Assinale a alternativa que descreve corretamente um desses aspectos da estratégia de teste.
Assinale a alternativa que descreve corretamente um desses aspectos da estratégia de teste.
#4
No
teste de software, é comum utilizar técnicas que ajudam a reduzir a
quantidade de casos de teste necessários, mantendo a cobertura e a
eficácia dos testes. Uma dessas técnicas permite dividir os dados de
entrada em grupos, de modo que cada grupo seja representativo de um
conjunto de valores com comportamento similar.
Com relação a essa técnica de teste, assinale a alternativa que compreende corretamente o conceito de particionamento de equivalência.
Com relação a essa técnica de teste, assinale a alternativa que compreende corretamente o conceito de particionamento de equivalência.
#5
O
teste de caminho básico é uma técnica de teste estrutural que visa
garantir que todos os caminhos lineares e independentes dentro do código
sejam testados. Para aplicar esta técnica, o código é frequentemente
representado como um grafo de fluxo. Cada nó no grafo representa um
conjunto de comandos que são executados em sequência.
Diante disso, selecione a alternativa que descreve corretamente a definição de um caminho linearmente independente em um grafo de fluxo.
Diante disso, selecione a alternativa que descreve corretamente a definição de um caminho linearmente independente em um grafo de fluxo.
#6
No
teste estrutural de software, os grafos de fluxo são utilizados para
representar a estrutura lógica do código. Eles ajudam a identificar o
comportamento do sistema em diferentes condições e caminhos de execução.
Isso permite uma análise detalhada da lógica implementada, facilitando a
identificação de possíveis falhas e inconsistências.
Neste sentido, identifique qual a principal finalidade de utilizar grafos de fluxo no contexto do teste estrutural?
Neste sentido, identifique qual a principal finalidade de utilizar grafos de fluxo no contexto do teste estrutural?
#7
Você
está desenvolvendo um sistema de gerenciamento de estoque para uma
pequena empresa. O sistema deve permitir que os usuários adicionem,
atualizem e removam itens do estoque. Para garantir que essas
funcionalidades funcionem corretamente, é necessário definir casos de
teste que cubram diferentes cenários possíveis.
Neste contexto, qual dos casos listados nas alternativas abaixo seria mais apropriado para verificar a funcionalidade de atualização de itens no sistema de gerenciamento de estoque?
Neste contexto, qual dos casos listados nas alternativas abaixo seria mais apropriado para verificar a funcionalidade de atualização de itens no sistema de gerenciamento de estoque?
#8
Os
testes funcionais no desenvolvimento de software são realizados para
verificar se as funcionalidades de um sistema operam conforme o esperado
e se atendem aos requisitos especificados. Eles são essenciais para
assegurar que o software funcione corretamente em diferentes condições
de uso.
Com base no trecho analisado, identifique nas alternativas abaixo qual dos objetivos listados abaixo pertence aos testes funcionais.
Com base no trecho analisado, identifique nas alternativas abaixo qual dos objetivos listados abaixo pertence aos testes funcionais.
#9
Os testes de software podem ser classificados em funcionais e não funcionais. Testes funcionais avaliam se o software executa suas funções conforme os requisitos especificados, enquanto testes não funcionais verificam aspectos como desempenho, segurança, usabilidade e confiabilidade do sistema. Cada tipo de teste tem um papel específico no processo de garantia da qualidade do software.
Com base no apresentado, identifique qual das características listadas nas alternativas abaixo é verificada pelos testes não funcionais.
Com base no apresentado, identifique qual das características listadas nas alternativas abaixo é verificada pelos testes não funcionais.
#10
Leia o trecho a seguir:
As estratégias de teste de software são essenciais para garantir que os sistemas funcionem corretamente e sejam confiáveis. O teste "Caixa Branca" é uma dessas estratégias, destacando-se pela sua abordagem específica, que envolve a análise detalhada do código fonte e da estrutura interna do software.
Neste contexto, o teste "Caixa Branca" é uma estratégia que [preencher 1] o código fonte para garantir que a implementação está [preencher 2] e é eficiente.
Os termos [preencher 1] e [preencher 2] são corretamente substituídos por:
As estratégias de teste de software são essenciais para garantir que os sistemas funcionem corretamente e sejam confiáveis. O teste "Caixa Branca" é uma dessas estratégias, destacando-se pela sua abordagem específica, que envolve a análise detalhada do código fonte e da estrutura interna do software.
Neste contexto, o teste "Caixa Branca" é uma estratégia que [preencher 1] o código fonte para garantir que a implementação está [preencher 2] e é eficiente.
Os termos [preencher 1] e [preencher 2] são corretamente substituídos por:
#11
No contexto de testes de software baseados em grafos, a análise dos caminhos linearmente independentes é uma técnica usada para assegurar que todas as rotas críticas no código sejam cobertas por casos de teste específicos. Esses caminhos independentes garantem que o comportamento do software seja validado em diferentes condições, com base nas variações de dados de entrada utilizadas nas decisões condicionais.
Com relação a essa técnica de teste, assinale a alternativa que sintetiza corretamente a abordagem para projetar casos de teste que garantam a cobertura total dos caminhos linearmente independentes.
Com relação a essa técnica de teste, assinale a alternativa que sintetiza corretamente a abordagem para projetar casos de teste que garantam a cobertura total dos caminhos linearmente independentes.
#12
Imagine que você está trabalhando no desenvolvimento de um aplicativo de gerenciamento de tarefas. Uma das funcionalidades principais é a criação e edição de tarefas. Durante a fase de testes, é necessário garantir que esta funcionalidade esteja funcionando corretamente sob diferentes condições e entradas de dados.
Qual das seguintes ações é a mais apropriada para garantir que a funcionalidade de criação e edição de tarefas esteja correta durante os testes funcionais?
Qual das seguintes ações é a mais apropriada para garantir que a funcionalidade de criação e edição de tarefas esteja correta durante os testes funcionais?
Semana 6 12
#1
O
Apache JMeter é uma ferramenta utilizada em testes de desempenho para
simular cargas de trabalho e avaliar o comportamento de sistemas sob
diferentes condições. Ele pode ser configurado para diversos tipos de
testes, fornecendo dados importantes para a análise de performance.
Com relação a esse contexto e sobre o conteúdo estudado, analise as asserções a seguir e a relação proposta entre elas:
I. O Apache JMeter permite simular múltiplos usuários concorrentes para avaliar o desempenho de aplicações sob carga.
PORQUE
II. O Apache JMeter substitui completamente a necessidade de monitoramento de servidores, já que realiza todos os testes localmente.
A respeito dessas asserções assinale a alternativa correta.
Com relação a esse contexto e sobre o conteúdo estudado, analise as asserções a seguir e a relação proposta entre elas:
I. O Apache JMeter permite simular múltiplos usuários concorrentes para avaliar o desempenho de aplicações sob carga.
PORQUE
II. O Apache JMeter substitui completamente a necessidade de monitoramento de servidores, já que realiza todos os testes localmente.
A respeito dessas asserções assinale a alternativa correta.
#2
Os
testes de carga são essenciais para garantir que os sistemas de
informação possam lidar com a quantidade esperada de usuários e
transações simultâneas. Estes testes ajudam a identificar gargalos de
desempenho e a garantir que o sistema possa manter a eficiência durante o
uso normal.
Com base nisso, é correto apontar que um dos benefícios dos testes de carga em sistemas de informação é de que:
Com base nisso, é correto apontar que um dos benefícios dos testes de carga em sistemas de informação é de que:
#3
No
contexto da engenharia de software, o Desenvolvimento Dirigido por
Testes (TDD) é uma prática que envolve a escrita de testes antes da
implementação do código funcional. Essa abordagem tem se mostrado eficaz
em diversas áreas, proporcionando uma série de benefícios que
contribuem para a melhoria contínua do código e a qualidade do software.
Com relação a este contexto e sobre o conteúdo estudado, analise as asserções a seguir e a relação proposta entre elas:
I. O TDD facilita a depuração ao associar falhas a partes específicas do código.
PORQUE
II. O TDD elimina a necessidade de testes automatizados, dependendo apenas de testes manuais.
A respeito dessas asserções assinale a alternativa correta:
Com relação a este contexto e sobre o conteúdo estudado, analise as asserções a seguir e a relação proposta entre elas:
I. O TDD facilita a depuração ao associar falhas a partes específicas do código.
PORQUE
II. O TDD elimina a necessidade de testes automatizados, dependendo apenas de testes manuais.
A respeito dessas asserções assinale a alternativa correta:
#4
No
contexto do Desenvolvimento Dirigido por Testes (TDD), a escrita de
testes automatizados é uma prática comum utilizada para verificar o
comportamento do software durante o processo de desenvolvimento.
Com relação a esse contexto e sobre o conteúdo estudado, analise as asserções a seguir e a relação proposta entre elas:
I. O TDD melhora a qualidade do código ao exigir a criação de testes automatizados para todas as funcionalidades, garantindo que novas implementações não quebrem o sistema existente.
PORQUE
II. A prática de TDD permite que todos os testes antigos passem automaticamente em cada novo incremento, sem a necessidade de revisão manual dos testes anteriores.
A respeito dessas asserções, assinale a alternativa correta.
Com relação a esse contexto e sobre o conteúdo estudado, analise as asserções a seguir e a relação proposta entre elas:
I. O TDD melhora a qualidade do código ao exigir a criação de testes automatizados para todas as funcionalidades, garantindo que novas implementações não quebrem o sistema existente.
PORQUE
II. A prática de TDD permite que todos os testes antigos passem automaticamente em cada novo incremento, sem a necessidade de revisão manual dos testes anteriores.
A respeito dessas asserções, assinale a alternativa correta.
#5
O
desenvolvimento dirigido por testes (TDD) é uma prática que visa
melhorar a qualidade do código e a confiabilidade do sistema através da
escrita de testes antes da implementação das funcionalidades. Além dos
benefícios diretos como melhor cobertura de código e documentação
automática, o TDD facilita a detecção precoce de defeitos e simplifica a
depuração.
Considerando essas vantagens e o conceito do TDD, é correto apontar que um dos benefícios adicionais do TDD é de que:
Considerando essas vantagens e o conceito do TDD, é correto apontar que um dos benefícios adicionais do TDD é de que:
#6
Os
testes de desempenho de software são essenciais para garantir que um
sistema funcione de forma eficaz sob diferentes condições. O teste de
estresse, por exemplo, é especialmente projetado para avaliar como o
sistema se comporta sob condições extremas de carga.
Com base nisso, é correto apontar que o teste de estresse tem como finalidade:
Com base nisso, é correto apontar que o teste de estresse tem como finalidade:
#7
Para
garantir a segurança de sistemas de software, os analistas de teste de
segurança devem projetar casos de teste que simulem tentativas de
invasão. Durante o processo de simulação, é crucial que os analistas
considerem diversos vetores de ataque e técnicas de exploração, como
injeção de SQL, cross-site scripting (XSS) e ataques de negação de
serviço (DoS). Além disso, devem avaliar a resposta do sistema a essas
tentativas de invasão, registrando e analisando os logs para entender
como as defesas do sistema respondem sob ataque.
Com base nisso, é correto apontar que a finalidade dos casos de teste que simulem tentativas de invasão em sistemas de software é de:
Com base nisso, é correto apontar que a finalidade dos casos de teste que simulem tentativas de invasão em sistemas de software é de:
#8
Os
sistemas de software são compostos por vários componentes
interdependentes que desempenham funções distintas, como a interação com
o usuário, o processamento de dados e a troca de informações. Durante o
processo de desenvolvimento, é fundamental garantir que esses
componentes funcionem corretamente de forma individual e integrada,
atendendo aos critérios de qualidade estabelecidos para o sistema como
um todo.
Com base nisso, assinale a alternativa que responde corretamente por que é importante testar os diferentes componentes (cliente, servidor e comunicação) de um sistema de software.
Com base nisso, assinale a alternativa que responde corretamente por que é importante testar os diferentes componentes (cliente, servidor e comunicação) de um sistema de software.
#9
Existem diversas motivações para tentativas de invasão a sistemas de informação. Essas motivações podem variar desde questões pessoais até objetivos financeiros. Compreender essas motivações é essencial para desenvolver estratégias eficazes de segurança.
Com base nisso, é correto pontuar que algumas das principais motivações para tentativas de invasão a sistemas de informação é a:
Com base nisso, é correto pontuar que algumas das principais motivações para tentativas de invasão a sistemas de informação é a:
#10
Os métodos de teste de desempenho em sistemas de informação são fundamentais para garantir que os sistemas funcionem de maneira eficiente sob diferentes condições. Entre os métodos mais comuns estão os testes de carga, testes de estresse e testes de volume, cada um com seu propósito específico para avaliar a performance do sistema.
Com isso, é correto apontar que o método utilizado especificamente para avaliar a capacidade do sistema de lidar com grandes quantidades de dados é o:
Com isso, é correto apontar que o método utilizado especificamente para avaliar a capacidade do sistema de lidar com grandes quantidades de dados é o:
#11
A análise de desempenho é uma prática essencial em sistemas de informação para assegurar que os sistemas operem de forma eficiente e que atendam às expectativas dos usuários. Esta prática envolve a avaliação contínua dos sistemas para identificar gargalos e implementar melhorias. Sistemas de informação com desempenho insatisfatório podem causar perda de produtividade e insatisfação dos usuários. Avaliar periodicamente o desempenho é fundamental para manter a qualidade e a eficácia dos serviços prestados.
Diante disso, assinale a alternativa CORRETA, que reconhece a importância da análise de desempenho em sistemas de informação.
Diante disso, assinale a alternativa CORRETA, que reconhece a importância da análise de desempenho em sistemas de informação.
#12
Ao desenvolver software, a criação de testes automatizados para cada unidade de código é uma prática comum. À medida que o software cresce, esses testes permitem validar tanto as novas funcionalidades quanto garantir que as antigas ainda funcionem corretamente, mesmo após novas implementações. Testes de regressão são particularmente importantes nesse contexto, pois verificam se as funcionalidades previamente desenvolvidas não foram prejudicadas.
Assinale a alternativa que analisa corretamente qual dos benefícios abaixo está diretamente associado ao uso de testes de regressão automatizados no desenvolvimento de software.
Assinale a alternativa que analisa corretamente qual dos benefícios abaixo está diretamente associado ao uso de testes de regressão automatizados no desenvolvimento de software.
Semana 7 5
#1
Os testes de sistema envolvem uma série de verificações realizadas para assegurar que todos os componentes do software funcionam corretamente quando integrados. Esses testes têm como objetivo principal a execução completa do sistema, verificando se ele atende aos requisitos de desempenho, segurança e recuperação de falhas.
Com base no texto sobre testes de sistema, assinale a afirmação correta sobre o processo de testes de sistema:
Com base no texto sobre testes de sistema, assinale a afirmação correta sobre o processo de testes de sistema:
#2
A gestão de dependências no desenvolvimento de software é fundamental para garantir que todas as partes do projeto funcionem harmoniosamente. Essa prática envolve monitorar e controlar como diferentes componentes de software se relacionam e dependem uns dos outros. A falta de uma gestão adequada pode levar a problemas de integração e falhas no software.
Qual das seguintes alternativas descreve corretamente a gestão de dependências no contexto da gestão de configuração de software?
Qual das seguintes alternativas descreve corretamente a gestão de dependências no contexto da gestão de configuração de software?
#3
A gestão de configuração de software é um processo crítico que assegura que todas as partes de um projeto de software sejam organizadas e controladas de maneira eficaz. Essa prática envolve o rastreamento de várias versões de todos os artefatos produzidos durante o desenvolvimento, garantindo que mudanças possam ser feitas de maneira controlada e que todas as dependências sejam gerenciadas adequadamente.
Selecione a alternativa que apresenta um dos objetivos da gestão de versão dentro da gestão de configuração de software.
Selecione a alternativa que apresenta um dos objetivos da gestão de versão dentro da gestão de configuração de software.
#4
A gestão de configuração de software é fundamental para assegurar que todas as partes de um projeto de software sejam organizadas e controladas de maneira eficaz. Ela envolve o rastreamento de várias versões de todos os artefatos produzidos durante o desenvolvimento, garantindo que mudanças possam ser feitas de maneira controlada e todas as dependências sejam gerenciadas adequadamente. Essa prática é crucial para manter a integridade e a qualidade do software.
Analise e assinale corretamente a alternativa sobre um item de configuração de software.
Analise e assinale corretamente a alternativa sobre um item de configuração de software.
#5
A gestão de dependências no desenvolvimento de software é fundamental para garantir que as alterações feitas em um sistema sejam controladas e que seu impacto seja minimizado. A gestão de impacto envolve práticas que visam reduzir os efeitos que as mudanças de um desenvolvedor podem causar no trabalho dos outros, garantindo um processo de desenvolvimento mais eficiente.
Assinale a alternativa que descreve uma prática importante na gestão de dependências e alterações.
Assinale a alternativa que descreve uma prática importante na gestão de dependências e alterações.