Tem sido amplamente usado(a) em tolerância a faltas para garantir a disponibilidade e a confiabilidade de serviços distribuídos. A ideia básica consiste em distribuir cópias do código e dos dados de determinado serviço por um conjunto de servidores. Esse conceito trata-se de?
A) Determinismo.
B) Replicação.
C) BFT.
D) Acordo.
E) Rampart.
Os mecanismos de segurança são os meios através dos quais garante-se que uma determinada política está sendo cumprida e usa-se essas ferramentas para implementar uma política de segurança. Esses podem ser procedimentos físicos como também implementados em hardware ou software. Qual opção abaixo NÃO pode ser considerada um mecanismo de segurança?
A) Assinatura digital.
B) Limitar a entrada em uma sala.
C) Disparador.
D) Algoritmos de criptografia.
E) Controle de acesso.
Em segurança, quando se aborda gerência de riscos, é preciso trabalhar com os impactos de ameaças e vulnerabilidades. Uma ameaça pode ser definida como um possível perigo que pode explorar uma vulnerabilidade do sistema computacional. Nesse sentido, são exemplos de ameaça para um sistema computacional:
I. Comprometimento da informação.
II. Violação de integridade.
III. Negação de serviço. IV. Repudiação de uma ação.
Quais estão corretas?
Um modelo de processo de software é uma representação simplificada de um processo de software. Cada modelo representa uma perspectiva particular de um processo. Há um modelo de processo que possui uma abordagem baseada na existência de um número significativo de componentes que podem ser utilizados várias vezes, em que o processo de desenvolvimento concentra-se na integração desses componentes em um sistema já existente ao invés de desenvolver um sistema a partir do zero. Qual modelo é esse?
A) Desenvolvimento incremental.
B) Engenharia de software orientada a redso.
C) Modelo em cascata.
D) Desenvolvimento ágil.
E) Engenharia de software híbrida.
As metodologias ágeis de desenvolvimento de software tornaram-se populares em 2001 quando especialistas em desenvolvimento de software estabeleceram princípios comuns considerando vários métodos de desenvolvimento já utilizados que buscavam maneiras mais eficientes de produzir software. Os princípios foram:
A) Movimento de Agilistas.
B) Desenvolvimento em Cascata.
C) Trabalho Colaborativo.
D) Extreme Program.
E) Manifesto Ágil.
Os Métodos Ágeis têm desempenhado um papel fundamental para o desenvolvimento do software moderno. Assim, várias iniciativas ágeis foram surgindo ou sendo aprimoradas, como ferramentas ou frameworks. Assinale a alternativa que NÃO se refere a uma iniciativa ágil.
A) Scrum.
B) TDD.
C) Modelagem Ágil.
D) Cascata.
E) Kanban.
Com o avanço do desenvolvimento de software baseado em processos de desenvolvimento ágil, também houve adaptações em outros processos que acompanham o desenvolvimento, como o processo de teste em que um novo modelo de trabalho chamado Testes Ágeis surgiu. Nesse modelo, foram adaptados alguns conceitos do Manifesto Ágil para os testes. Assinale a alternativa INCORRETA quanto à definição dos conceitos de testes ágeis.
A) Testar em cada etapa ao invés de testar no final.
B) Prevenir bugs ao invés de encontrar bugs.
C) Testar o entendimento ao invés de checar funcionalidades.
D) Construir o melhor sistema ao invés de quebrar o sistema.
E) Os Testers são responsáveis pela qualidade.
Em um banco de dados, geralmente há muitas maneiras de tratamento de usuários, cada um dos quais pode exigir uma perspectiva ou visão diferente do banco de dados. Uma visão pode ser um subconjunto do banco de dados ou pode conter dados virtuais derivados dos seus arquivos, mas não explicitamente armazenados, assim alguns usuários não precisam saber se os dados a que se referem são armazenados ou derivados. Dessa forma, um SGBD multiusuários cujos usuários possuem uma variedade de aplicações distintas deve fornecer essas facilidades. Essas afirmações se referem a qual conceito?
A) Múltiplas Visualizações dos Dados.
B) Acesso monousuário.
C) Isolamento entre programas e dados.
D) Abstração de dados.
E) Natureza autodescritiva.
O modelo de banco de dados relacional representa o banco de dados como uma coleção de relações. Informalmente, cada relação se assemelha a uma tabela de valores ou, até certo ponto, a um arquivo simples de registros. É chamado de arquivo simples porque cada registro tem uma estrutura simples linear ou plana. Qual banco abaixo é um banco de dados relacional?
A) MongoDB.
B) CouchDB.
C) Redis.
D) Oracle.
E) NoSQL.
Em banco de dados, a álgebra relacional é muito importante, pois fornece uma base formal para as operações do modelo relacional e principalmente porque é usada como base para implementar e otimizar consultas nos módulos de processamento e otimização de consultas, que são partes integrantes dos sistemas de gerenciamento de banco de dados relacional (RDBMSs). Alguns de seus conceitos são incorporados à linguagem de consulta padrão para RDBMSs. Qual é essa linguagem?
A) Key-value.
B) Graph stores.
C) SQL.
D) Column stores.
E) Document stores.
O teste de componente (também conhecido como teste de unidade/unitário ou módulo) é um teste de caixa branca que se concentra em componentes que são testáveis separadamente. Assinale a alternativa que NÃO é um exemplo de produto de trabalho que pode ser usada como base de teste para testes de componentes.
A) Documento de especificação.
B) Projeto detalhado.
C) Código.
D) Modelo de dados.
E) Programação de componentes.
O teste de integração se concentra nas interações entre componentes ou sistemas. Quanto maior o escopo da integração, _____ pode se tornar mais difícil e levar a um aumento do risco e a um tempo adicional para a solução de problemas.
A) efetuar os testes de integração com o cliente final
B) isolar os defeitos em um componente ou sistema específico
C) cadastrar um defeito para uma integração
D) encontrar um defeito nos testes
E) gerar os resultados dos testes de integração
Dentre os diversos tipos de RNF (Requisitos Não Funcionais), há o requisito de "eficiência no desempenho" ou apenas "desempenho". A norma ISO/IEC/IEEE 29119-1 sugere uma classificação e um conjunto de definições. Essa classificação considera, genericamente, "Teste de Desempenho" como um tipo de teste que possui cinco subtipos. Qual das alternativas abaixo NÃO se trata de um teste de desempenho?
A) Teste de carga.
B) Teste de estresse.
C) Teste de fumaça.
D) Teste de resistência.
E) Teste de volume.
Em uma técnica de aprendizagem colaborativa, os profissionais realizam uma atividade e revisam as atividades dos colegas, levando a melhores respostas nas atividades solicitadas. Nessa técnica, os desenvolvedores precisam trabalhar em conjunto para criar uma solução que atenda às necessidades do cliente. Qual é essa técnica?
A) Desenvolvimento orientado ao comportamento.
B) Desenvolvimento orientado a testes.
C) Código limpo (Clean Code).
D) Revisão por pares.
E) Desenvolvimento por Kanban.
A NBR ISO/IEC 9126, sob o título geral "Engenharia de software – Qualidade do produto", define o modelo de qualidade externa e interna. Ele categoriza os atributos de qualidade de software em seis características, subdivididas em subcaracterísticas. Assinale a alternativa que NÃO se trata de uma característica de qualidade definida pela ISO 9126.
A) Funcionalidade.
B) Confiabilidade.
C) Usabilidade.
D) Manutenibilidade.
E) Volatilidade.
O DevOps (desenvolvimento + operação) preza o estreitamento entre as áreas de desenvolvimento e infraestrutura através de ferramentas e metodologias, de modo que seja possível automatizar, monitorar, observar, testar e metrificar todas as etapas de desenvolvimento de software. Dentro dos processos de DevOps, que visam o aumento dessa qualidade e também a facilitação de colocar um projeto em produção, há um que é uma prática em que os times de desenvolvimento lançam novas funcionalidades de forma constante e automatizada. Quando uma nova funcionalidade é finalizada, automaticamente ela será disponibilizada no ambiente de testes e, posteriormente, no ambiente de produção e, em alguns casos, pode ir direto para produção. Assinale a alternativa que cita essa prática.
A) Design Patterns ou Padrões de Projeto.
B) Test Driven Development ou Desenvolvimento Orientado a Testes.
C) Continuous Delivery ou Entrega Contínua.
D) Behavior Driven Development ou Desenvolvimento Orientado ao Comportamento.
E) Continuous Integration ou Integração Contínua.
Programação Orientada a Objetos é um paradigma para o desenvolvimento de software que se baseia na utilização de componentes individuais que colaboram para construir sistemas mais complexos em que a colaboração entre esses componentes é feita através do envio de mensagens. Esse modelo de programação utiliza os seguintes conceitos, EXCETO:
A) Sequência.
B) Objetos.
C) Herança.
D) Classes.
E) Abstração.
A Gestão de Configuração de Software não fornece um método de projeto, um modelo de ciclo de vida e tampouco define como a qualidade dos itens deve ser julgada. Ela fornece um fundação sólida para todas as outras atividades de engenharia de software, estabelecendo funções da gestão de configuração. Relativamente às funções e suas descrições, relacione a Coluna 1 à Coluna 2.
A) 1 – 2 – 3 – 4.
B) 2 – 3 – 4 – 1.
C) 3 – 4 – 1 – 2.
D) 4 – 1 – 2 – 3.
E) 3 – 2 – 1 – 4.
No paradigma Orientado a Objetos há, primeiramente, um processo de construção de modelos do domínio do problema, identificando e especificando um conjunto de objetos que interagem e comportam-se conforme os requisitos estabelecidos para o sistema segundo um processo de geração de uma especificação detalhada do software a ser desenvolvido, de tal forma que essa especificação possa levar à direta implementação no ambiente alvo. Esses dois processos são, respectivamente:
A) Levantamento de Requisitos e Desenvolvimento de Requisitos.
B) Análise Orientada a Estrutura e Projeto de Estrutura de Objetos.
C) Conferência de Objetos Levantados e Escrita da Lista de Requisitos.
D) Análise Orientada a Objetos e Projeto Orientado a Objetos.
E) Levantamento de Regras de Negócios e Especificação de Objetos.
Os princípios GRASP (General Responsibility Assignment Software Patterns) definem diretrizes para atribuições de responsabilidades às classes e objetos durante a construção de Sistemas Orientados a Objetos. Os nove diferentes princípios apresentados em GRASP são: Criador, Especialista de informação, Baixo acoplamento, Controlador, Alta coesão e, EXCETO:
A) Polimorfismo.
B) Fabricação pura.
C) Indireção.
D) Variações protegidas.
E) Segregação de interface.
Dentro das metodologias ágeis, TDD (Test-Driven Development ou Desenvolvimento Orientado a Testes) e BDD (Behavior Driven Development ou Desenvolvimento Orientando a Comportamentos) são considerados:
A) Um framework de desenvolvimento ágil.
B) Técnicas de desenvolvimento orientado a testes.
C) Design Patterns para Testes.
D) Padrões de desenvolvimento Orientado a Objetos.
E) Elementos de Software Reutilizável Orientado a Objetos.
O SOLID é um acrônimo em inglês para cinco princípios de projeto que possuem o objetivo de fazer programas mais compreensíveis, flexíveis e sustentáveis. O acrônimo SOLID condensa cinco princípios fundamentais para a concepção de objetos que respondem aos problemas que afetam a escalabilidade e a longevidade de um sistema. Relativamente aos princípios e suas descrições, relacione a Coluna 1 à Coluna 2.
A) 1 – 2 – 3 – 4 – 5.
B) 2 – 3 – 4 – 5 – 1.
C) 3 – 4 – 5 – 1 – 2.
D) 4 – 5 – 1 – 2 – 3.
E) 5 – 1 – 2 – 3 – 4.
Não existe um processo universal de teste de software, mas há conjuntos comuns de atividades de teste sem as quais os testes terão menor probabilidade de atingir seus objetivos estabelecidos. Nesse sentido, o processo de teste de software específico e apropriado em qualquer situação depende de muitos fatores. Atividades de teste estão envolvidas nesse processo e podem ser discutidas na estratégia de teste de uma organização. Qual atividade abaixo NÃO faz parte de uma atividade de testes?
A) Monitoramento e controle dos testes.
B) Planejamento dos testes.
C) Correção do bug encontrado nos testes.
D) Modelagem do teste.
E) Execução dos casos de teste.
Tipos de teste são grupos de atividades de teste destinados a testar características específicas de um sistema de software, ou parte de um sistema, baseado em objetivos de teste específicos. Eles geralmente se dividem em Testes Funcionais e Não Funcionais, Teste de Caixa Branca e Teste de Caixa Preta e se estendem por muitas técnicas. Assinale a alternativa que NÃO se trata de uma técnica de teste.
A) Regressão.
B) Desempenho.
C) Clean Code.
D) Exploratório.
E) Smoke test.
Existem vários ciclos de vida de testes existentes no mercado. Independentemente do modelo de ciclo de vida de desenvolvimento de software escolhido, as atividades de teste devem começar nos estágios iniciais do ciclo de vida, aderindo ao princípio de testar do início. Um ciclo de vida muito utilizado é o Test Management (TMap) por ser bastante didático e fácil de analisar. Esse ciclo de vida do processo de teste é composto por diversas etapas ou fases, sendo quatro delas sequenciais ou em cascata, e duas paralelas. Analise a tabela abaixo e assinale a alternativa correta em relação à opção que indica as fases que são sequenciais e as fases que são paralelas.
A) Opção 1.
B) Opção 2.
C) Opção 3.
D) Opção 4.
E) Opção 5.
Referente aos testes de software, os níveis de teste são grupos de atividades de teste que são organizados e gerenciados juntos. Cada nível de teste é uma instância do processo de teste, executada em relação ao software em um determinado nível de desenvolvimento, desde as unidades individuais ou componentes até os sistemas completos. Considera-se quatro principais níveis de teste. Assinale a alternativa que NÃO é considerada um nível de teste.
A) Teste estrutural.
B) Teste de aceite.
C) Teste de sistema.
D) Teste de integração.
E) Teste unitário.
O modelo ou conceito "V" de testes, composto por Verificação e Validação, integra o processo de teste ao longo do processo de desenvolvimento, implementando o princípio de testar do início. Esse modelo inclui níveis de teste associados a cada fase de desenvolvimento que ocorre sequencialmente, mas em alguns casos pode ocorrer a sobreposição. O modelo em "V" demonstra o ciclode desenvolvimento e um resumo dos passos principais em conjunto com as entregas entre o ambiente de desenvolvimento, ou seja, relaciona as fases de desenvolvimento do software com os níveis de testes aplicados a cada fase. Qual fase de desenvolvimento está relacionada de forma ERRADA ao nível de teste?
A) Projeto Detalhado – Teste de Integração.
B) Análise de Requisitos – Teste de Aceitação.
C) Projeto de Alto Nível – Teste do Sistema.
D) Implementação – Teste Unitário.
E) Análise de Sistemas – Teste de Componente.
Uma estratégia de teste fornece uma descrição geral do processo de teste, comumente no nível do produto ou organizacional. Existem tipos comuns de estratégias para abordagem de testes. Para a abordagem de testes em aplicações em dispositivos móveis, há uma estratégia de teste que é uma das mais utilizadas, pois esse tipo de estratégia de teste depende do uso sistemático de um conjunto predefinido de testes ou condições de teste, como uma taxonomia de tipos comuns ou prováveis de falhas, uma lista de características de qualidade importantes ou padrões de aparência e comportamento de aplicativos móveis ou páginas da web da empresa. Qual estratégia é essa?
A) Metódica.
B) Analítica.
C) Contra regressão.
D) Reativa.
E) Compatível com processo.
Scrum é um método de desenvolvimento ágil de software, cujos princípios são consistentes com o manifesto ágil e usados para orientar as atividades de desenvolvimento dentro de um processo que incorpora as seguintes atividades estruturais: requisitos, análise, projeto, evolução e entrega. Em cada atividade metodológica, há tarefas a serem realizadas dentro de um padrão de processo chamado Sprint. O trabalho realizado dentro de um Sprint é adaptado ao problema em questão definido e, muitas vezes, modificado em tempo real pela equipe Scrum. Os testes nesse contexto precisam acompanhar os sprints, e a equipe de teste precisa estar envolvida em todas as atividades estruturais. A equipe de teste deve fazer parte de quais dos papéis presentes no Scrum?
A) Scrum Master.
B) Product Owner.
C) Gestão do Projeto.
D) Time Scrum.
E) Sprint Planning.
Uma API (Application Programming Interfaces ou Interfaces de Programação de Aplicações) é uma especificação que facilita a troca de mensagens ou dados entre duas ou mais aplicações de software diferentes. Uma definição de API mais informal e normalmente adotada entre engenheiros de software profissionais abrange qualquer interface bem definida que defina o serviço que um componente, um módulo ou uma aplicação fornece a outros elementos de software. Uma vantagem do desenvolvimento com APIs é que a sua criação e sua utilização economiza tempo de programação. Por que isso ocorre?
A) O trabalho de análise de uma API é reduzido.
B) APIs trabalham com aplicativos NoCode.
C) As funcionalidades de APIs são muito simples.
D) Os testes de APIs não são necessários.
E) Faz-se a reutilização de funcionalidades que a API fornece.
Existem as seguintes técnicas de modelagem de testes: caixa branca (também chamadas de técnicas estruturais ou baseadas na estrutura) que são baseadas em uma análise da arquitetura, do detalhamento do projeto, da estrutura interna ou do código do objeto de teste, concentram-se na estrutura e no processamento dentro do objeto de teste; caixa preta (também chamadas de técnicas comportamentais ou baseadas no comportamento) que são fundamentadas em uma análise da base de teste apropriada, aplicáveis a testes funcionais e não funcionais e se concentram nas entradas e saídas do objeto de teste sem referência à sua estrutura interna. Qual alternativa abaixo contém, respectivamente, uma técnica de caixa branca e uma técnica de caixa preta?
A) Teste de cobertura de instruções e Particionamento de equivalência.
B) Análise de valor limite e Teste e cobertura de decisão.
C) Teste de tabela de decisão e Suposição de erro.
D) Valor da instrução/teste de decisão e Teste exploratório.
E) Teste de transição de estado e Teste de caso de uso.
O teste é feito de forma diferente em diferentes contextos. O teste em um projeto ágil é feito de forma diferente do que o teste em um projeto de ciclo de vida sequencial. Os produtos de trabalho de implementação do teste incluem trabalhos manuais como: os procedimentos de teste e seu sequenciamento, a elaboração das suítes de teste e cronograma de execução do teste. Em alguns casos, especialmente em modelos de desenvolvimento incremental e iterativo, em que as alterações de código estão em andamento, alguns testes automatizados desempenham um papel fundamental na criação da confiança de que as alterações não impactaram os componentes existentes. Qual é o tipo de teste mais propenso a ser automatizado?
A) Teste de conformidade.
B) Teste de requisitos.
C) Teste de tratamento de erros.
D) Teste de regressão.
E) Teste de aceitação.
Sobre automatização de testes para aplicação web e dispositivos móveis, há ferramentas que abrangem uma variedade de ferramentas e bibliotecas que permitem e suportam a automação de navegadores e aplicativos nativos em várias linguagens. Há uma ferramenta que é um framework de automação de testes para navegadores web, que manipula um navegador nativamente, como um usuário faria, seja localmente ou em uma máquina remota usando um servidor específico. Ela fica no núcleo desse servidor e atua como uma interface para escrever conjuntos de instruções que podem ser executados alternadamente em muitos navegadores. Qual é essa ferramenta?
A) TestComplete.
B) Selenium WebDriver.
C) Appium.
D) Xamarin.UITest.
E) Espresso.
A análise de risco em projetos de teste de software, embora tenha suas características próprias, deve seguir as mesmas regras e metodologias aplicadas a projetos de software em geral. O risco é um dos elementos mais importantes a ser trabalhado no momento de se elaborar o projeto de teste de um software. Portanto, ao preparar o plano de teste e fazer a análise de riscos e definir a cobertura de testes, devemos levar em conta alguns elementos, que são:
A) Se existe risco evidente ou não e se há necessidade de mapear o mesmo no plano.
B) Probabilidade de ocorrência do risco e o impacto e a perda associada a esse risco.
C) Riscos são mapeados pelo analista na especificação e não são considerados no plano de teste.
D) Mapear a probabilidade de ocorrência do risco e, se menor que 40%, não considerar.
E) Avaliar o impacto do risco levantado pelo gerente de projetos na execução de testes.
As aplicações web estão sendo grandes alvos de ataques de segurança. Assim, testes de segurança devem ser realizados amplamente em uma aplicação web. A metodologia Owasp Testing Guide aborda assuntos sobre pré-requisitos de segurança em aplicações web, princípios de técnicas de testes. Seguindo esses parâmetros gerais levantados pelo guia Owasp, tem-se as principais ameaças voltadas às aplicações web. Assinale a alternativa que NÃO configura uma ameaça às aplicações web.
A) Injeção de Código.
B) Cross-Site Scripting (XSS).
C) Tratamento de erros no código.
D) Referência Insegura e Direta a Objetos.
E) Falta de Função para Controle de Nível de Acesso.
Referente ao modelo V de teste de software, composto por Verificação e Validação e que integra o processo de teste ao longo do processo de desenvolvimento, implementando o princípio de testar do início, é correto afirmar que:
A) Desenvolvimento orientando a comportamentos (BDD) não utiliza o Modelo V.
B) Modelo V utiliza desenvolvimento orientado a testes (TDD) como base do processo.
C) Semelhante ao modelo cascata, o modelo V associa as técnicas de teste com as fases.
D) Modelo V inclui níveis de teste associados a cada fase de desenvolvimento correspondente.
E) Os testes de aceitação são os primeiros a serem contemplados no modelo V nas duas vértices.
A gestão de defeitos faz o gerenciamento de defeitos no processo de teste de software. Os elementos chave desse processo de gestão estão listados nas alternativas abaixo e são paralelos ao Relatórios de Gestão que está presente em todos os elementos. Assinale a alternativa que NÃO se trata de um elemento de gestão de defeitos.
A) Prevenção de defeitos.
B) Linha-de-base a ser entregue.
C) Identificação do defeito.
D) Melhoria do processo.
E) Gerenciamento de configuração.
Em 1979, Glenford Myers afirmava haver uma importância que as atividades de testes fossem executadas de forma paralela a todas as outras fases de desenvolvimento de software criando a regra 10 de Myers, que estabelece uma importante questão para os defeitos. Essa regra implica em:
A) À medida em que os erros vão migrando nas fases de desenvolvimento, o custo de correção aumenta em 10 vezes mais.
B) Ao tratar erros durante o processo de desenvolvimento, estabelece 10 boas práticas a se seguir.
C) A cada 10 bugs encontrados, é efetuada uma medida a ser considerada nas métricas dos relatórios de gestão.
D) Estabelece 10 fases no ciclo de vida dos bugs, iniciando no cadastro e acompanhamento até sua solução.
E) A regra número 10 de Myers era que o defeito deve ser priorizado assim que detectado até sua correção.
Para implantar testes de software em projetos, existem várias estratégias que podemos adotar. As estratégias de teste servem para nos guiar para o objetivo de encontrar e eliminar o máximo possível de bugs e desvios de implementação. Para a escolha da estratégia, há quatro abordagens: duas em relação ao tempo em que os testes iniciam e duas em relação às fontes de informação disponíveis. Assinale a alternativa que NÃO se trata de uma abordagem de testes.
A) Preventiva.
B) Analítica.
C) Estruturada.
D) Reativa.
E) Heurística.
É um padrão de medidas muito útil para a verificação da efetividade e da eficiência de diversas atividades do desenvolvimento de software. Também usadas para prover informações como estimativas do esforço necessário para o teste; e obtidas e interpretadas durante o processo de testes. É importante que sejam capturadas e utilizadas corretamente para que possam auxiliar na melhoria do processo de desenvolvimento do software através de informações objetivas e pragmáticas. A qual conceito o trecho se refere?
A) Clean Code.
B) Identificação de riscos.
C) Custo do defeito.
D) Defeitos encontrados.
E) Métricas de teste.