Considere as afirmações abaixo em relação ao produto z/OS Message Queue (MQ).
I - Qualquer gerenciador de filas (queue manager) no grupo de compartilhamento de filas (queue-sharing group) pode acessar a fila compartilhada (shared queue). As mensagens, nas filas compartilhadas, têm entradas nas estruturas de coupling facility e os gererenciadores de filas, como o IBM MQ para z/OS, do mesmo Sysplex podem acessar essas mensagens, usando as estruturas de coupling facility.
II - Um page set é um arquivo VSAM Linear data set que foi especialmente formatado para ser usado pelo IBM MQ para armazenar mensagens e definições de objetos.
III - O IBM MQ para z/OS usa buffers e buffer pools para armazenar dados temporariamente em cache. Mensagens de curta duração, isto é, mensagens que são recuperadas de uma fila pouco depois de serem recebidas, só podem ser armazenadas nos buffers.
Quais estão corretas?
Suponha uma organização que já está em processo adiantado de práticas ágeis de teste. Ela já tem bem consolidada a prática de criação de testes automatizados para as funcionalidades desenvolvidas, e um processo de integração contínua que inclui a verificação de testes de regressão durante a construção do build. Neste contexto, analise as afirmativas abaixo.
I - Mesmo que os desenvolvedores se assegurem de que todos os testes sejam executados com sucesso antes de integrar seu código (check-in), ainda assim é possível que testes de regressão falhem quando o novo código for integrado, causando uma “quebra de build”. O desenvolvedor responsável por esse novo código deve consertar o problema para que o build possa ser refeito, avaliando a lista de tarefas que tem a executar, a fim de definir a prioridade desse conserto, ao longo de seu dia de trabalho.
II - Para assegurar que um build possa dar retorno imediato, é necessário que possa ser gerado em um tempo curto. Se alguns testes de regressão são muito demorados (por exemplo, scripts de interface), podem-se usar estratégias, como ter um processo de build separado que rode os testes mais demorados, ou versões diferentes de construção completa e resumida de build que rodariam durante a noite ou durante as horas de trabalho, respectivamente.
III - Ao longo de uma iteração, novos testes automatizados são construídos. Todos os novos testes automatizados construídos para uma dada história devem ser incluídos na respectiva suíte de regressão.
Quais afirmativas estão corretas?
Considere as seguintes afirmações sobre o Modelo "V" de teste de software.
I - Descreve a relação entre ações de garantia da qualidade e as ações associadas à comunicação, modelagem e atividades iniciais de construção.
II - À medida que a equipe de software desce em direção ao lado esquerdo do "V", os requisitos básicos do problema são refinados em representações, progressivamente, mais detalhadas e técnicas do problema e de sua solução. Ao ser gerado o código, a equipe se desloca para cima, no lado direito do "V", realizando basicamente uma série de testes que validem cada um dos modelos criados, à medida que a equipe se desloca para baixo, no lado esquerdo do "V".
III - Fornece uma forma para visualizar como a verificação e as ações de validação são aplicadas ao trabalho de engenharia anterior.
Quais estão corretas?
Considere as seguintes afirmações sobre o padrão Model-View-Controller (MVC)
I - O padrão MVC separa a apresentação e a interação dos dados do sistema, através de três componentes lógicos que interagem entre si: o componente Controlador gerencia os dados e as operações associadas a estes dados; o componente Modelo define e gerencia a forma como os dados são apresentados ao usuário; o componente Visão gerencia a interação do usuário (teclas, cliques do mouse, por exemplo) e passa estas interações para o Controlador e o Modelo.
II - O padrão MVC é usado quando existem várias maneiras de se visualizar e interagir com dados. Também quando são desconhecidos os futuros requisitos de interação e apresentação dos dados.
III - Embora o padrão MVC permita que os dados sejam alterados de forma independente de sua representação e vice-versa, pode envolver código adicional e mais complexidade de código mesmo quando o modelo de dados e as interações são simples.
Quais estão corretas?
Considere as seguintes afirmações sobre Princípios de Engenharia de Software.
I - São utilizadas diferentes técnicas de engenharia de software para cada tipo de sistema, porque cada software tem características bastante diversas.
II - Uma característica fundamental de um sistema de software é a eficiência, pois o software não deve desperdiçar os recursos do sistema, como memória e ciclos do processador. Eficiência inclui capacidade de resposta, tempo de processamento, uso da memória, etc.
III - Engenheiros de software não devem preocupar-se apenas com questões técnicas, devendo se comportar de forma ética e moralmente responsável, pois têm responsabilidades com a profissão de engenharia e com a sociedade.
Quais estão corretas?
Considere as seguintes definições de custos envolvidos no projeto e no teste de um sistema de software:
C1 = custo das atividades de verificação e validação. C1 é calculado através dos custos de pessoal, equipamentos, licenças de software e demais recursos gastos em projetos anteriores similares que tiveram atividades de verificação e validação. C2 = custo dos defeitos não encontrados pelas atividades de verificação e validação executadas durante o desenvolvimento do software.
C2 é estimado através dos custos de remoção dos defeitos para o sistema em produção e contabilizando o total de defeitos encontrados pelos usuários. C3 = custo dos defeitos quando não há atividades de verificação e validação.
C3 é estimado usando dados históricos de projetos anteriores similares que não tiveram atividades de verificação e validação. Contabilizam- se os custos de remoção dos defeitos para o sistema em produção e o total de defeitos encontrados pelos usuários.
A partir dessas definições, a aplicação das atividades de verificação e validação é economicamente justificável quando:
Considere os seguintes critérios baseados em fluxo de controle para realizar teste estrutural.
I - Todos-caminhos: requer que todos os caminhos possíveis do programa sejam executados.
II - Todos-nós: requer que cada comando do programa seja executado pelo menos uma vez.
III - Todas-arestas: requer que cada desvio de fluxo de controle do programa seja exercitado pelo menos uma vez.
Quais estão corretos?
____________ é o teste que tem como foco as menores unidades de um programa, que podem ser funções, procedimentos, métodos ou classes. Neste contexto, espera-se que sejam identificados erros relacionados a algoritmos incorretos ou mal implementados, estruturas de dados incorretas ou simples erros de programação. Como cada unidade é testada separadamente, este teste pode ser aplicado à medida que ocorre a implementação e pelo próprio desenvolvedor, sem a necessidade de dispor-se do sistema totalmente finalizado.
Assinale a alternativa que preenche corretamente a lacuna do texto acima.
Considere os itens abaixo.
I - Compartilhamento de recursos de hardware e software.
II - Concorrência, pois vários processos podem operar simultaneamente em computadores separados, na rede.
III - Tolerância a defeitos, devido à disponibilidade de vários computadores e ao potencial para replicar as informações.
Quais são vantagens da utilização de sistemas distribuídos?
____________ é uma técnica utilizada para se projetar casos de teste, na qual o programa ou sistema é considerado como uma caixa-preta. Nesta técnica os detalhes de implementação não são considerados e o software é avaliado segundo o ponto de vista do usuário, procurando explorar determinados tipos de defeitos, estabelecendo requisitos de teste para os quais valores específicos do domínio de entrada do programa devem ser definidos com o intuito de exercitá-los. Utilizando ____________, o domínio de entrada é reduzido a um conjunto de estados válidos ou inválidos para as condições de entrada, e com um tamanho passível de ser tratado durante a atividade de teste.
Assinale a alternativa que preenche correta e respectivamente as lacunas do texto acima.
Considere as seguintes afirmações sobre testes automatizados.
I - Pode-se usar um framework de automação de teste (como JUnit) para escrever e executar testes de seu programa. Frameworks de testes unitários fornecem classes de teste genéricas que se podem estender para criar casos de teste específicos. Eles podem, então, executar todos os testes que foram implementados e informar, muitas vezes por meio de alguma interface gráfica, sobre o sucesso ou o fracasso dos testes. Um conjunto inteiro de testes frequentemente pode ser executado em poucos segundos e assim é possível executar todos os testes cada vez que é feita uma alteração no programa.
II - Têm tipicamente três partes: (i) uma parte de configuração, em que se inicia o sistema com o caso de teste, ou seja, as entradas e saídas esperadas; (ii) uma parte de chamada, quando se chama o objeto ou método a ser testado; e (iii) uma parte de afirmação (ou asserção), em que se compara o resultado da chamada com o resultado esperado. Se a afirmação avaliada for verdadeira, o teste foi bem-sucedido; se for falsa, o teste falhou.
III - Às vezes, o objeto que está sendo testado tem dependências em outros objetos que podem não ter sido escritos ou que atrasam o processo de teste quando são usados. Por exemplo, se o objeto chama um banco de dados, isso pode implicar um processo lento de instalação, antes que possa ser usado. Nesses casos, pode-se decidir usar um mock object. Mock objects são objetos com a mesma interface que os objetos externos usados para simular sua funcionalidade. Da mesma forma, mock objects podem ser usados para simular operações anormais ou eventos raros.
Quais estão corretas?
Segundo Pressman, os interessados (stakeholders) de um processo de software podem ser categorizados em: gerentes seniores, gerentes (técnicos) de projeto, programadores, clientes e usuários finais. Dentre essas categorias, ___________ é a que reúne aqueles que devem ter habilidades técnicas necessárias para desenvolver a engenharia de um produto ou aplicativo de software.
Assinale a alternativa que preenche corretamente a lacuna do texto acima.
Numere a segunda coluna de acordo com a primeira, associando os Níveis de Teste de Software às suas respectivas características.
(1) Teste de Unidade
(2) Teste de Integração
(3) Teste de Sistema
(4) Teste de Aceitação
( ) Avalia o software com respeito ao projeto de seus subsistemas e detecta suposições errôneas sobre pré e pós-condições para execução de um componente, falhas nas interfaces de comunicação dos componentes do software.
( ) Avalia o software com respeito aos seus requisitos e detecta falhas nos requisitos e na interface com o usuário.
( ) Avalia o software com respeito a sua implementação detalhada e detecta falhas de codificação, algoritmos ou estruturas de dados incorretos ou mal implementados.
( ) Avalia o software com respeito ao seu projeto arquitetural e detecta falhas de especificação, desempenho, robustez e segurança.
A sequência correta de preenchimento dos parênteses, de cima para baixo, é
_____________ são declarações de serviços que o sistema deve fornecer, ou seja, como o sistema deve reagir a entradas específicas e como o sistema deve se comportar em determinadas situações. Em alguns casos, também podem explicitar o que o sistema não deve fazer.
Assinale a alternativa que completa corretamente a lacuna do texto acima.