Prévia do material em texto
Engenharia de Software – Testes de Software (Tópicos Relevantes) Prof. Washington Almeida, MSC, ISF 27002 WebApps • Teste de Conteúdo: Usado para descobrir erros de conteúdo que podem ser atribuídos a conteúdo derivado dinamicamente, controlado por dados adquiridos de um ou mais banco de dados. 3 Teste Base de Dados • Em muitos domínios de aplicação, interfaceiam com sistemas sofisticados de gerenciamento de banco de dados e criam objetos de conteúdo dinâmico em tempo real usando os dados adquiridos de um banco de dados. 4 Teste de Usabilidade 5 Ferramentas de Teste Estático • São usadas na indústria três tipos diferentes de ferramentas de teste estático: ferramentas de teste baseadas em código, linguagens especializadas de teste e ferramentas de teste baseadas em requisitos. • Código: aceitam código-fonte como entrada e executam uma série de análises que resultam na geração de casos de teste. Ex: Sonar • Linguagens de teste especializadas: (por exemplo, ATLAS) permitem a um engenheiro de software escrever especificações detalhadas de teste que descrevem cada caso de teste e as logísticas para sua execução. • Baseadas em requisitos: isolam requisitos específicos de usuário e sugerem casos de teste (ou classes de testes) que exercitarão os requisitos. 6 Ferramenta de Teste Dinâmico • As ferramentas de teste dinâmico interagem com um programa em execução, verificando amplitude do caminho, testando asserções sobre o valor de variáveis específicas, e instrumentando o fluxo de execução do programa de qualquer modo. • Exemplo: Junit, Selenium, JMeter. 7 Questão 1 Ano: 2015 Banca: FCC Órgão: TRT - 3ª Região (MG) Prova: FCC - 2015 - TRT - 3ª Região (MG) - Analista Judiciário - Tecnologia da Informação Um analista de TI está participando do desenvolvimento de um software orientado a objetos utilizando a plataforma Java. Na abordagem de desenvolvimento adotada, o código é desenvolvido de forma incremental, em conjunto com o teste para esse incremento, de forma que só se passa para o próximo incremento quando o atual passar no teste. Como o código é desenvolvido em incrementos muito pequenos e são executados testes a cada vez que uma funcionalidade é adicionada ou que o programa é refatorado, foi necessário definir um ambiente de testes automatizados utilizando um framework popular que suporta o teste de programas Java. A abordagem de desenvolvimento adotada e o framework de suporte à criação de testes automatizados são, respectivamente: a) Behavior-Driven Development e JTest. b) Extreme Programming e Selenium. c) Test-Driven Development e Jenkins. d) Data-Driven Development and Test e JUnit. e) Test-Driven Development e JUnit. 8 LETRA E Justificativa: TDD: Ainda iremos detalhar melhor no bloco das metodologia ágeis, mas já falamos um pouco sobre seu funcionamento. Junit é um framework para automação de testes de unidade. https://www.qconcursos.com/questoes-de-concursos/bancas/fcc https://www.qconcursos.com/questoes-de-concursos/institutos/trt-3-regiao-mg https://www.qconcursos.com/questoes-de-concursos/provas/fcc-2015-trt-3-regiao-mg-analista-judiciario-tecnologia-da-informacao Questão 2 Ano: 2017 Banca: PUC-PR Órgão: TJ-MS Prova: PUC-PR - 2017 - TJ-MS - Técnico de Nível Superior - Analista de Sistemas Os testes de software devem ser executados em todas as etapas do ciclo de vida do processo de desenvolvimento de software. Dentre os tipos de testes a serem aplicados, o teste de: a) unidade é um teste estático realizado para verificar as unidades individuais: funções, objetos e componentes. b) unidade é um teste dinâmico com o foco em verificar as menores unidades do programa e podem utilizar ferramentas de automação (Ex.: Junit). c) aceitação é um teste estático realizado logo após o teste de unidade para verificar a integração entre os componentes de software. d) aceitação é um teste estático realizado para verificar a camada de apresentação, principalmente em aplicações Web. e) aceitação é um teste dinâmico com o foco em verificar as unidades individuais: funções, objetos e componentes. 9 LETRA B Justificativa: Basta conhecer o conceito de teste estático (inspeção) e dinâmico (execução). https://www.qconcursos.com/questoes-de-concursos/bancas/puc-pr https://www.qconcursos.com/questoes-de-concursos/institutos/tj-ms https://www.qconcursos.com/questoes-de-concursos/provas/puc-pr-2017-tj-ms-tecnico-de-nivel-superior-analista-de-sistemas Questão 3 Ano: 2018 Banca: COMPERVE Órgão: UFRN Prova: COMPERVE - 2018 - UFRN - Analista de Tecnologia da Informação – 104 O Selenium é um framework de teste de software para aplicações Web. A respeito do Selenium, analise as afirmativas abaixo: I. O Selenium consiste em uma suíte de ferramentas para auxiliar a automação de testes baseados na interface Web. II. O Selenium WebDriver consiste em uma API para auxiliar a automação de testes baseados na interface Web. III. O Selenium WebDriver consiste em um plug-in para o Firefox que auxilia a automação de testes baseados na interface Web. IV. No Selenium WebDriver, é possível gravar o passo a passo de um usuário acessando uma página Web, a partir de um navegador. Estão corretas as afirmativas a) I e III. b) I e II . c) III e IV. d) II e IV. 10 LETRA B Justificativa: III - Play and record que fica instalado no navegador como plug-in. IV - Play and record que fica instalado no navegador como plug-in. https://www.qconcursos.com/questoes-de-concursos/bancas/comperve https://www.qconcursos.com/questoes-de-concursos/institutos/ufrn https://www.qconcursos.com/questoes-de-concursos/provas/comperve-2018-ufrn-analista-de-tecnologia-da-informacao-104 https://www.qconcursos.com/questoes-de-concursos/questoes?discipline_ids[]=100&publication_year[]=2014&publication_year[]=2015&publication_year[]=2016&publication_year[]=2017&publication_year[]=2018&publication_year[]=2019&q=selenium https://www.qconcursos.com/questoes-de-concursos/provas/comperve-2018-ufrn-analista-de-tecnologia-da-informacao-104 Questão 4 Ano: 2017 Banca: IBFC Órgão: EMBASA Prova: IBFC - 2017 - EMBASA - Analista de Tecnologia da Informação (Desenvolvimento) Nos métodos ágeis, as equipes são auto-organizadas e exigem ter ferramentas de apoio para que as equipes mantenham a qualidade do software. Para esse fim, a ferramenta Sonar tem como utilidade: a) a geração de relatórios dinâmicos que dão um feedback sobre a qualidade do código que está sendo produzido b) a produção automática de diagramas UML para garantir a qualidade da documentação do sistema produzido c) a execução de testes estáticos e dinâmicos de todo o código que está sendo produzido para manter a qualidade do software d) a elaboração dos requisitos funcionais e não-funcionais automaticamente com base no código que está sendo produzido garantindo que o software corresponda às expectativas dos clientes 11 LETRA A Justificativa: O SonarQube (anteriormente Sonar) é uma plataforma de código aberto para inspeção contínua de qualidade de código para realizar revisões automáticas com análise estática de código para detectar bugs, code smells e vulnerabilidades de segurança em 20 + linguagens de programação, incluindo Java (incluindo Android), C #, PHP, JavaScript, C / C + +, COBOL, PL / SQL, PL / I, ABAP, VB.NET, VB6, Python, RPG, Flex, Objetivo-C, Swift, Web e XML. https://www.qconcursos.com/questoes-de-concursos/bancas/ibfc https://www.qconcursos.com/questoes-de-concursos/institutos/embasa https://www.qconcursos.com/questoes-de-concursos/provas/ibfc-2017-embasa-analista-de-tecnologia-da-informacao-desenvolvimento Questão 5 Ano: 2017 Banca: IBFC Órgão: TJ-PE Prova: IBFC - 2017 - TJ-PE - Analista Judiciário - Analista de Sistemas Os elementos que fornecem acesso às informações obtidas pelo JMeter durante os testes de carga são denominados tecnicamente de: a) listeners b) controllers c) timers d) assertions e) Post-Processor 12 LETRA A Justificativa: Para qualquer teste que venha a ser feito utilizando o JMeter, é necessário criar umTest Plan incluindo os elementos do teste. Estes elementos podem ser: Thread Group — Este é ponto de começo, todos os outros elementos do Test Plan devem estar sob este. Como o próprio nome ressalta, este controla as threads que serão executadas pelo teste. Controllers — Estes são divididos em dois grupos Samplers e Logic Controllers. Samplers — São controladores pré-definidos para requisições especificas. Podendo ser customizada com a inserção de configurações (Configurations), Assertions e etc. Logic Controllers — São controladores mais genéricos. Podendo ser customizada com a inserção de outros controllers, configuration elements, assertions, etc. Listeners— Estes são os elementos que fornecem acesso as informações obtidas pelo JMeter durante os testes. Timers — Por padrão, o JMeter faz requisições sem pausas entre elas. Os timers são utilizados para incluir pausas entre as requisições. Assertions — Usado para verificar se a resposta obtida na requisição é a esperada. Podendo ser usado expressões regulares (Perl-style regular expression) na comparação. Configuration Elements — Embora não faça requisições (exceto para HTTP Proxy Server), este elemento pode adicionar ou modificar as requisições. Pre-Processor Elements — Executa alguma ação antes de fazer a requisição. Mais usado para pré-configurações das requisições. Post-Processor Elements — Executa alguma ação depois de fazer a requisição. Mais usado para processar as respostas da requisição. https://www.qconcursos.com/questoes-de-concursos/bancas/ibfc https://www.qconcursos.com/questoes-de-concursos/institutos/tj-pe https://www.qconcursos.com/questoes-de-concursos/provas/ibfc-2017-tj-pe-analista-judiciario-analista-de-sistemas Gabarito 13 Questão Resposta 1 LETRA E 2 LETRA B 3 LETRA B 4 LETRA A 5 LETRA A 14 Referências • PRESSMAN, Roger S. ; Bruce R. Maxim. Engenharia de Software, Uma Abordagem Profissional, 8° ed. Porto Alegre: AMGH, 2016. ISBN 978-85-8055- 533-2. • SOMMERVILLE, Ian. Engenharia de Software, 9. ed. São Paulo: Pearson Prentice Hall, 2011. ISBN 978- 85-7936-108-1. 15