Prévia do material em texto
WBA0881_v4.0 APRENDIZAGEM EM FOCO TESTE E INSPEÇÃO DE SOFTWARE: TÉCNICAS E AUTOMATIZAÇÃO 2 APRESENTAÇÃO DA DISCIPLINA Autoria: Stella Marys Dornelas Lamounier Leitura crítica: Marcilyanne Moreira Gois A disciplina tem como objetivo apresentar os principais conceitos na teoria e prática para a execução de testes de software, tanto de forma manual quanto automatizados. Além disso, serão apresentadas as principais técnicas, métodos e ferramentas existentes no mercado, que visam auxiliar futuros testadores nas práticas de validação e verificação de software. Além disso, destaca a importância de se realizar testes, desde o início, na concepção do sistema, mostrando que essa prática possibilita a redução de custos e retrabalhos. Outra abordagem apresentada são as técnicas de Inspeções, mostradas na teoria e prática. São abordadas as etapas de inspeção de software, o papel e responsabilidade de cada envolvido em cada uma destas etapas e, posteriormente, a aplicação na prática de técnicas como: AD-HOC, perspectiva baseada em leitura. Além disso, é apresentada a importância do controle de versões e uma das ferramentas muito utilizadas, o GIT. Por fim, serão apresentadas ferramentas para a automação de testes de forma prática e intuitiva, utilizando o framework Junit para testes automatizados de Unidade; a Selenium, para usabilidade, compreenderá a utilização da ferramenta Postman para testes de Interface (GUI) Testes de software têm sido utilizados, frequentemente, nas empresas. Hoje, os gestores já têm consciência da sua importância na criação de sistemas com qualidade, portanto, compreender o uso destas técnicas, bem como as principais ferramentas utilizadas hoje, 3 dará a você um maior conhecimento que poderá ser aplicado ao longo de sua carreira profissional. INTRODUÇÃO Olá, aluno (a)! A Aprendizagem em Foco visa destacar, de maneira direta e assertiva, os principais conceitos inerentes à temática abordada na disciplina. Além disso, também pretende provocar reflexões que estimulem a aplicação da teoria na prática profissional. Vem conosco! Introdução a Testes de Software ______________________________________________________________ Autoria: Stella Marys Dornelas Lamounier Leitura crítica: Marcilyanne Moreira Gois TEMA 1 5 DIRETO AO PONTO Sabemos que o software está presente em praticamente todas as atividades da sociedade, auxiliando profissionais/ usuários de diferentes áreas. Isso desde a Medicina, com a utilização de algoritmos de Inteligência Artificial, que auxilia médicos em complexos procedimentos cirúrgicos, podendo salvar vidas, e também em transações financeiras, que, se houver presença de um erro mínimo pode levar o gestor a prejuízos milionários, acarretando sua falência no mercado financeiro. Com o passar dos anos, por meio da melhoria contínua das tecnologias, profissionais da área têm buscado cada vez mais sistemas seguros, corretos ou com o mínimo de erros possíveis. Esse modelo de software confiável só teve ênfase por volta da década de 1970, onde foi criada a famosa Crise do Software. Nessa época, houve uma enorme demanda por softwares, mas realizar a manutenção nesses sistemas era quase impossível, o que ocasionou sistemas obsoletos, entregues fora do tempo estipulado, orçamentos estourados e cheios de erros graves que não estavam de acordo com os requisitos levantados, gerando uma enorme insatisfação dos clientes. Portanto, foi nesta década que se começou a falar em testar software como mecanismo de encontrar possíveis erros em qualquer tipo de sistemas. De acordo com Tonini (2012), autores como Dijkstra (1975) e Glen Myers (1979) relataram que a principal funcionalidade dos testes de software é processar um sistema, de modo que seja possível encontrar erros ou defeitos e não a ausência desses erros, como muitos outros profissionais das áreas pensavam. 6 Um aspecto fundamental e importante, nos testes de software, é que quanto mais cedo começar as atividades de testes, menos retrabalho e menos dispendiosos os sistemas ficam. Descobrir falhas em um software, no início da concepção do sistema, pode evitar erros que são capazes de impactar até a vida das pessoas. Podemos observar na Figura 1, ao se realizar testes nos requisitos, ou seja, identificar se os requisitos levantados estão de acordo com o que o cliente deseja, torna seu custo muito menor, ao contrário do que acontece na fase de manutenção, que pode chegar a ser no mínimo 40 vezes maior. Figura 1 - Custo relativo para corrigir um defeito Fonte: adaptado de Pressman (2011, p. 367). A Figura 1 relata, em forma de gráfico de barras, que quanto mais o software se desenvolve, mais seu custo, com a correção de erros, aumenta. Além disso, que no início do levantamento de requisitos, sua correção de erros é bem pequena e tende a aumentar nas seguintes fases: projeto, aumento entre três a seis vezes; codificação, mais de dez vezes; na fase de testes, entre dez a quarenta vezes; e, na última etapa de manutenção, a taxa de aumento pode chegar de quarenta a mil vezes. 7 Como é feita essa descoberta de erros, seja nas fases iniciais ou no decorrer da criação do sistema? Isso é possível utilizando ferramentas e técnicas de testes de software. Técnicas, como de validação e verificação, são comumente utilizadas durante todo o processo de ciclo de vida do software, são capazes de avaliar códigos, documentos, manuais, artefatos, entre outros, a fim de detectar possíveis erros e controlar a qualidade do sistema. A verificação tem como funcionalidade realizar testes para encontrar erros, verificando se o software, que está sendo desenvolvido, está de acordo com os requisitos funcionais ou não funcionais levantados, a fim de sanar a pergunta: estamos construindo o produto da maneira correta? A validação se preocupa em assegurar se o sistema atende expectativas do cliente, ou seja, se o software está de acordo com o que o cliente deseja, e obter a resposta para a pergunta: estamos construindo o produto certo? O processo de Verificação e Validação, também conhecido como V & V pode ainda ser dividido em análise estática e dinâmica: a primeira é responsável pela garantia do software e não se preocupa com o sistema executável; e a segunda já trabalha com a fase de execução do sistema, verificando se as entradas estão de acordo com a saída desejada. Em teste de software é preciso lembrar que o profissional da área deverá saber diferenciar defeito, erro e falha. O defeito reflete a imperfeição ou inconsistência do sistema e, nesse contexto, pode-se dizer que é algo que foi implementado no software de maneira incorreta, como, por exemplo: dados que são tratados de forma errônea ou não tratados. O erro é fruto da ação humana, produzindo um resultado incorreto ou uma falha na escrita do 8 código e, por fim, a falha é caracterizada como um comportamento inesperado do sistema, sendo um comportamento inconsistente, como, por exemplo, uma tela de aviso ao usuário. Por fim, a inspeção de software é utilizada para testar diversos tipos de artefatos de um software e não apenas seu código fonte. Esses artefatos podem ser: atas de reuniões, diagramas da UML, modelos de dados, documentação do próprio software. Essa técnica é amplamente utilizada para detector de erros por meio de processos bem definidos pela equipe de testes, e é caracterizado como uma técnica de análise estática, que tem como propriedade verificar a qualidade do sistema de forma rigorosa e bem definida para sanar problemas que podem vir a atingir novos produtos, auxiliar conjuntamente na comunicação entre a equipe, diminuindo o custo econômico do sistema. Referências bibliográficas NETO, A.; DIAS, C. Introdução a teste de software. Engenharia de Software Magazine, v. 1, p. 22, 2007. PRESSMAN, R. S. Engenharia de software: uma abordagem profissional. 7. ed. Porto Alegre: McGraw-Hill; BookMan, 2011. TONINI, A. C. Organização das operaçõesde testes independentes de software: proposta de um modelo conceitual. Tese de Doutorado. São Paulo: Universidade de São Paulo, 2012. Disponível em: https://www.teses. usp.br/teses/disponiveis/3/3136/tde-24122013-112156/publico/Tese_ ANTONIOCARLOSTONINI_unprotected.pdf. Acesso: 27 jun. 2021. PARA SABER MAIS Não se pode falar em testes de software sem mencionar o conceito de qualidade, desse modo, podemos dizer que a qualidade é algo extremamente relativo e subjetivo. Um exemplo disso seria um automóvel que, para certo usuário, uma pessoa da cidade, um 9 modelo do tipo utilitário pode servir muito bem, mas para um homem do campo, não, ou seja, dependerá de como o usuário deseja utilizar e qual sua serventia. Nesse mesmo contexto, segue o software. Talvez um sistema robusto, cheio de funcionalidade e telas pode não ser tão útil, uma vez que o cliente pode precisar de um sistema que possa apenas facilitar seu controle de mercadoria. Como medir este conceito de qualidade? Como um software deve ser dotado de qualidade? A resposta é simples, primeiramente, deve estar de acordo com as necessidades do cliente, pois de nada adianta criar um sistema grande, complexo, se, ao final, nem a própria equipe que o desenvolveu é capaz de utilizá-lo ou mesmo realizar a entrega no tempo e custo esperado. Além disso, o usuário não consegue arcar com seu valor, mas o mais importante para se ter um sistema com qualidade é que independente da sua complexidade, deverá, obrigatoriamente, apresentar o mínimo de erros possíveis. A qualidade já é empregada há séculos, desde a época das pirâmides do Egito, onde foram construídas com alto rigor de planejamento, execução e controle, e pode-se, então, concluir a obra com eficácia. Outro exemplo é a muralha da China, que, por meio de sua força de trabalho, pode finalizar sua construção mesmo depois de muitos anos. Entretanto, tudo isso só teve repercussão na década de 1970, que culminou na famosa Crise do Software. Nessa época, os softwares evoluíam rapidamente, junto com a complexidade dos problemas gerados, pois não havia técnicas específicas para identificar os erros ocasionados por sistemas desenvolvidos sem nenhum tipo de padronização, os softwares eram criados de forma informal, sistemas importantes eram entregues com muitos atrasos, que chegavam, por muitas vezes, a anos, com custo elevado, sem confiabilidade. Não havia se quer atendimento aos requisitos 10 levantados. A partir desse marco, foram criadas novas formas de métodos de desenvolvimento e padronização, isto é, a Engenharia de Software passa a fazer parte na criação e padronização de sistemas e começam a surgir os testes de software e suas técnicas, a fim de sanar esses problemas, como também a figura do profissional de teste que detém competências técnicas para descobrir a presença de erros, caracterizando o sistema com mais qualidade. Portanto, sanar erros é primordial para manter a qualidade dos sistemas. Isso só é possível, utilizando técnica apropriadas e atentar que estes testes vieram para mostrar os erros no sistema e quanto mais cedo os erros forem identificados, menos tempo de desenvolvimento é gasto, originando um sistema de qualidade e de acordo com o planejado. Referências bibliográficas PRESSMAN, R. S. Engenharia de software: uma abordagem profissional. 7. ed. Porto Alegre: McGraw-Hill; BookMan, 2011. TEORIA EM PRÁTICA O profissional de testes de software só ganhou notoriedade a partir da década de 1970, antes disso mal se falava em Engenharia de Software. Imagine, então, teste de software ou profissionais responsáveis por testes. Por esta razão, muitos projetos se tornavam dispendiosos, com tempo de entrega muito maior que o planejado, resultando, por sua vez, em sistemas que continham uma série de erros, frustrando o usuário final. 11 Com o passar dos tempos e com advento de novas tecnologias, esse profissional se tornou peça muito importante para a criação de sistemas com o mínimo de erros possíveis, porém, ainda hoje, sistema são passíveis de erros. Reflita sobre a importância de se ter um profissional responsável apenas para testes de software em uma empresa e se precisaria ser um profissional que entendesse de testes e, ao mesmo tempo, de codificação, designer, banco de dados etc. Seria benéfico para a empresa um profissional multitarefas ou um que seja responsável apenas por testar, aquele que saiba fielmente utilizar de forma correta ferramentas e técnicas que reduzem os erros de um software? Qual profissional você contrataria para sua empresa? Para conhecer a resolução comentada proposta pelo professor, acesse a videoaula deste Teoria em Prática no ambiente de aprendizagem. LEITURA FUNDAMENTAL Prezado aluno, as indicações a seguir podem estar disponíveis em algum dos parceiros da nossa Biblioteca Virtual (faça o log in por meio do seu AVA), e outras podem estar disponíveis em sites acadêmicos (como o SciELO), repositórios de instituições públicas, órgãos públicos, anais de eventos científicos ou periódicos científicos, todos acessíveis pela internet. Isso não significa que o protagonismo da sua jornada de autodesenvolvimento deva mudar de foco. Reconhecemos que você é a autoridade máxima da sua própria vida e deve, Indicações de leitura 12 portanto, assumir uma postura autônoma nos estudos e na construção da sua carreira profissional. Por isso, nós o convidamos a explorar todas as possibilidades da nossa Biblioteca Virtual e além! Sucesso! Indicação 1 O capítulo 4 tem como objetivo relatar conceitos importantes sobre testes de software, aborda temas, como: fundamentos, casos de teste, depuração, teste estrutural, teste funcional. Também é demonstrado, na prática, como se realiza os principais testes de software. Para realizar a leitura, acesse nossa plataforma Biblioteca Virtual e busque pelo título da obra. MAITINO NETO, R. Engenharia de software. Londrina: Editora e Distribuidora Educacional S.A., 2016. Indicação 2 O capítulo 5 tem como objetivo relatar os princípios gerais de testes, abordando conceitos de validação e verificação, como são realizadas as atividades de testes e, por fim, a aplicação das principais técnicas. Para realizar a leitura, acesse a nossa plataforma Biblioteca Virtual e busque pelo título da obra. FALBO, de A..; R. Engenharia de software: notas de aulas problemas e soluções. Espírito Santo: Universidade Federal do Espírito Santo (UFES), Intersaberes, 2014. 13 QUIZ Prezado aluno, as questões do Quiz têm como propósito a verificação de leitura dos itens Direto ao Ponto, Para Saber Mais, Teoria em Prática e Leitura Fundamental, presentes neste Aprendizagem em Foco. Para as avaliações virtuais e presenciais, as questões serão elaboradas a partir de todos os itens do Aprendizagem em Foco e dos slides usados para a gravação das videoaulas, além de questões de interpretação com embasamento no cabeçalho da questão. 1. Existe uma técnica muito importante para detecção de erros, de forma rigorosa e precisa, verificando e revisando os artefatos de softwares, de modo que seja melhorada a produtividade do sistema, pois estes erros são encontrados nestes artefatos que muitas vezes estão isolados. Essa técnica é conhecida como: a. Qualificação de software b. Testes de software. c. Validação de software. d. Verificação de software. e. Inspeção de software. 2. Inúmeras são as técnicas de testes de softwares, que têm como finalidade diminuir ao máximo possível a quantidade de erros em um software. Entre elas, pode-se citar a responsável por analisar o código fonte de um software, mas sem a necessidade da execução do software. Essa técnica é conhecida como: 14 a. Técnica de leitura baseada em perspectivas. b. Técnica de leitura baseada em cenários. c. Análise estática. d. Análise dinâmica. e. Inspeção de software. GABARITO Questão 1 - Resposta E Resolução: A técnica de Inspeção de software é utilizada para verificaros artefatos de software, seja em um código fonte ou até mesmo em sua própria documentação. Sua responsabilidade é manter a qualidade do sistema, a fim de estar de acordo com que o cliente realmente necessita. Questão 2 - Resposta C Resolução: A análise estática está relacionada com a verificação do software, sem que seja executado, utilizando ferramentas automatizadas ou até mesmos manuais, que verifiquem, por exemplo: erros de sintaxe, falhas de segurança, práticas ruins entre outros, auxiliando na busca de erros nos caminhos de execução para que seja descoberto o mais rapidamente possível. Técnicas de Teste de Software ______________________________________________________________ Autoria: Stella Marys Dornelas Lamounier Leitura crítica: Marcilyanne Moreira Gois TEMA 2 16 DIRETO AO PONTO Utilizar técnicas para testar software virou atividade obrigatória nas empresas de desenvolvimento. Essas técnicas vieram para mostrar o quão importante é, para o profissional de testes, sua aplicação durante todos o processo de desenvolvimento de sistemas. Sabemos que só há pouco tempo essas atividades foram incorporadas seriamente nas empresas, pois, muitas vezes, eram tachadas como caras e lentas. Entretanto, com a evolução computacional, principalmente com o advento da Internet, foi reconhecida a importância de aplicar técnicas aprimoradas para detecção de erros, seja manual ou automatizada, desde que respeite sua funcionalidade, que é a resolução de problemas ocasionados pela presença de erros, atrapalhando, assim, a execução das regras de negócios. Técnicas manuais podem ser descritas como as mais primitivas no mercado, mas isso não quer dizer que não são eficientes para a detecção de erros, são caracterizadas como aquelas em que os testadores realizam os testes de forma manual, com intervenção humana, o que requer mais esforço e com mais tempo de execução, elevando um gasto com profissionais. Seu objetivo é tentar cobrir ao máximo o sistema, a fim de corrigir os erros que podem ser apresentados, amplamente empregados, com testes funcionais e não funcionais: primeiro, validando as funcionalidades do sistema ou de um aplicativo; o segundo diz respeito a sua facilidade de uso, aparência do sistema, velocidade, segurança etc. Uma grande vantagem dessa técnica é o não conhecimento técnico de outro tipo de software para realizar as atividades, mas, mesmo assim, o testador deverá possuir habilidades necessárias para conduzir os testes. 17 A técnica de teste ad hoc é mais adequada para a execução manual, pois é utilizado quando não se tem um planejamento de testes, ou seja, realizado informalmente, aleatório e desorganizado, sem a preparação ou utilização de técnicas adequadas para conduzir todo o processo de testes. Os erros são encontrados de forma inesperada pelo testador, que deve ter conhecimento técnico um mínimo curioso. Os testes automatizados utilizam diferentes tipos ferramentas para a condução das atividades, cada uma deve estar atrelada a tipos de testes específicos. Com essas novas técnicas, pode-se economizar tempo, custo e número de profissionais contratados, sem a interferência dos desenvolvedores, pois uma vez que a ferramenta é implementada, é muito mais fácil repetir sua execução. Esses modelos são extremamente precisos, mas são aplicados, na maioria das vezes, em sistemas grandes e complexos, e, mesmo assim, com a utilização destas ferramentas é impossível cobrir todos os softwares. Os testes automatizados seguem os mesmos passos da Pirâmide de Testes (Testes Unitários, Testes de Integração e Testes de Sistemas/ Testes de GUI), conforme demonstrado na Figura 1, garantindo menos esforço para encontrar erros ou defeitos que comprometam a qualidade dos sistemas. 18 Figura 1 - Pirâmides de Testes de Software Fonte: Bortoluci; Duduchi (p. 3, 2015 apud Cohn, 2013, [n. p.]). Ferramentas que realizam os testes de automação são utilizadas para detectar em classes, códigos e rotinas, problemas de sintaxe, estruturas malfeitas, que podem comprometer o resultado esperado. Nos testes de integração que utilizam ferramentas automatizadas, é possível, em se tratando de aplicação web, avaliar se as API’s estão em funcionamento conforme pretendido. Uma boa característica a respeito dessa automação é que pode ser aplicada sem que haja o apoio da interface gráfica. Por último, as ferramentas que cobrem os Testes de Sistemas são capazes de responder questões de interface gráfica do sistema, ou seja, se as interações do usuário com o software estão sendo feitas de forma clara e amigável, atingindo o resultado esperado, também podem testar simulações que acontecem de forma não muito frequentes, como, por exemplo, toques ou cancelamentos. 19 Quando se fala em testes automatizado, a equipe deverá ter capacidade de avaliar qual a melhor ferramenta a ser utilizada naquele tipo de teste. No mercado, são inúmeras ferramentas voltadas para essa resolução, algumas de código aberto e outras pagas, mas com o mesmo fim, que é auxiliar os profissionais nos mais diversos tipos de desenvolvimentos. Em testes de regressão, é comum a utilização de ferramentas automatizadas, pois são responsáveis por reduzir o esforço da equipe e encontrar erros que, por muitas vezes, passam desapercebidos pelas técnicas manuais. Independente do modelo adotado, é imprescindível a utilização de um Plano de Testes, documento que guiará os profissionais da área de testes de maneira organizada e colaborativa. O que se deve buscar é a que atenda as demandas enfrentadas. Referências bibliográficas BORTOLUCI, R.; DUDUCHI, M. Um estudo de caso do processo de testes automáticos e manuais de software no desenvolvimento ágil. X Workshop de Pós-Graduaçao e Pesquisa do Centro Paula Souza. São Paulo, 2015. PARA SABER MAIS Técnicas de testes de software ajudam, muitas vezes, a sanar dúvidas dos clientes, mas para que sejam obtidas as respostas certas, o testador deve possuir conhecimento das técnicas a serem utilizadas, suas premissas e seus processos. Além disso, também é de fundamental importância colocar em prática a execução destas técnicas, levando, assim, um conhecimento quase natural de todo o sistema a ser entregue ao usuário, demonstrando que o sistema foi bem feito e bem executado. 20 Muitas vezes, testar software não é sinônimo de qualidade, simplesmente ser conhecedor destas técnicas e utilizá-las de forma eficiente não significa que todos os critérios forem atendidos. É preciso explorar e estudar os testes, de modo que, seja executada todo o ciclo de planejamento, desenvolvimento, execução e manutenção dos sistemas, por meio de técnicas que correspondem particularmente a cada uma destas fases. Todas as fases passam por um rigoroso planejamento, é impossível testar qualquer sistema sem que os analistas de testes ou até mesmo os testadores de softwares tenham em mãos documentos que possam auxiliá-los na melhor tomada de decisão. São vários documentos que norteiam estes profissionais e, entre eles, pode-se destacar como os mais utilizados os Plano de testes, suíte de testes e casos de testes. O Plano de Teste tem como finalidade compor o escopo de testes, nele é possível encontrar informações a respeito das estratégias a serem utilizadas no processo, informações uteis, cronograma, configurações do ambiente a ser trabalhado, guia de comunicação entre os stakeholders e pode ser empregado, tanto em metodologias tradicionais quanto na metodologia Ágil, que, por sinal, é mais utilizada em empresas que se destacam no mercado de tecnologia. Esse plano deverá ser desenvolvido e pelo gerente de testes, que é quem tem a responsabilidade de planejar as atividades a serem executadas, estabelecer métricas, planejar e acompanhar o processo de teste. Em geral, esse modelo deve conter: uma introdução com a identificação clara do projeto, escopo, objetivos principais, os requisitos e itens a serem testados, quaisos testes deverão ser realizados, critérios de avaliação e cronograma de atividades. No mesmo sentido, temos a suíte de testes, que trata de uma coleção de casos de testes e é dividida de acordo com as 21 funcionalidades do sistema ou o tipo de teste a ser realizado, facilitando a organização e o gerenciamento dos testes, isto é, devido à grande quantidade de testes realizados, muitas vezes, o testador se sente perdido com a quantidade de detalhes apresentados. Um exemplo típico da utilização de uma suíte de testes é a representação de uma transação com quatro casos de testes, como mostrado abaixo: • Casos de Teste 1: Efetuar Login. • Casos de Teste 2: Incluir cadastramento de aluno. • Casos de Teste 3: Finalizar cadastramento. • Casos de Teste 4: Efetuar Logout. Como é demonstrado, nota-se a presença de quatro casos que testes, que representam um fluxo para verificar o comportamento do sistema. Portanto, além da realização de técnicas de testes, é imprescindível a criação de um Plano de Testes claro, objetivo, que demonstre os passos a serem seguidos pelos profissionais da área. TEORIA EM PRÁTICA A criação de um Plano de Teste é de extrema importância para a execução dos testes a serem realizados ao longo de todas as fases de desenvolvimento de um software. Este documento deve ser escrito de forma clara, que apresente informações que direcionarão a equipe para a execução correta de testes, bem como quais ferramentas deverão ser utilizadas e seu cronograma de 22 execução. Geralmente, quem cria e conduz é o gerente de testes. De acordo com a explicação mencionada acima, imagine que você é o (a) gerente de testes e tem como responsabilidade a criação de plano de testes para um software de cadastro de alunos de uma universidade. Elabore este documento, de forma sucinta, com as principais informações que auxiliarão a equipe na realização de testes. Para conhecer a resolução comentada proposta pelo professor, acesse a videoaula deste Teoria em Prática no ambiente de aprendizagem. LEITURA FUNDAMENTAL Prezado aluno, as indicações a seguir podem estar disponíveis em algum dos parceiros da nossa Biblioteca Virtual (faça o log in por meio do seu AVA), e outras podem estar disponíveis em sites acadêmicos (como o SciELO), repositórios de instituições públicas, órgãos públicos, anais de eventos científicos ou periódicos científicos, todos acessíveis pela internet. Isso não significa que o protagonismo da sua jornada de autodesenvolvimento deva mudar de foco. Reconhecemos que você é a autoridade máxima da sua própria vida e deve, portanto, assumir uma postura autônoma nos estudos e na construção da sua carreira profissional. Por isso, nós o convidamos a explorar todas as possibilidades da nossa Biblioteca Virtual e além! Sucesso! Indicações de leitura 23 Indicação 1 A revista Engenharia de Software traz várias abordagens em sua área de concentração, em especial uma edição que aborda as principais características e funcionalidades de testes de software, como também as técnicas mais usadas. Para realizar a leitura, acesse a Internet e procure por revista Engenharia de Software - Qualidade de software - Edição especial. ENGENHARIA DE SOFTWARE MAGAZINE. Qualidade de Software – Entenda os principais conceitos sobre teste e inspeção de software. Revista Engenharia de Sotware, edição especial, v. 1. Rio de Janeiro, 2007. Indicação 2 O capítulo 4, da obra indicada, traz conceitos práticos e teóricos sobre as principais técnicas de testes de software. Também é possível conhecer o Test-Driven Development (TDD) e a implementação de alguns testes. Para realizar a leitura, acesse a nossa plataforma Biblioteca Virtual e busque pelo título da obra. MAITINO NETO, R. Engenharia de software. Londrina: Editora e Distribuidora Educacional S.A., 2016. QUIZ Prezado aluno, as questões do Quiz têm como propósito a verificação de leitura dos itens Direto ao Ponto, Para Saber 24 Mais, Teoria em Prática e Leitura Fundamental, presentes neste Aprendizagem em Foco. Para as avaliações virtuais e presenciais, as questões serão elaboradas a partir de todos os itens do Aprendizagem em Foco e dos slides usados para a gravação das videoaulas, além de questões de interpretação com embasamento no cabeçalho da questão. 1. Teste Funcional ou de Caixa Preta é uma técnica muito comum aplicada em testes de software, sua funcionalidade é testar se os requisitos dos sistemas foram atingidos, neste modelo podemos destacar a técnica de Valor Limite. Analise o problema abaixo e demonstre, por meio da Técnica de Valor Limite, sobre quais os valores que o testador usaria. Um campo de entrada de dados que aceita valores de 1990 a 2021. a. 0, 1998, 1999, 2021 b. 1989, 0 2020,2021. c. 1989, 1991, 2021, 0. d. 1989, 1990, 2020, 0. e. 1979, 1990, 2020, 2021. 2. Testes Estruturais ou de Caixa Branca são utilizados para testar a parte interna do sistema, isto é, o código fonte do software. Este modelo aborda a Complexidade Ciclomática, que tem como funcionalidade garantir que todos os caminhos foram testados. Analise o gráfico abaixo, aplique a técnica da complexidade Ciclomática e assinale a alternativa que demonstra corretamente a quantidade de caminhos a serem percorridos pelo testado. 25 Figura 1 - Testes do Caminho Básica – Complexidade Ciclomática. Fonte: elaborada pela autora. a. 4. b. 3. c. 6. d. 2. e. 7. 26 GABARITO Questão 1 - Resposta E Resolução: A técnica de análise de valor limite faz uso dos valores: mínimo inválido, mínimo válido, máximo válido e máximo inválido, onde 1989 é o valor mínimo inválido, 1990 valor mínimo válido, 2020 valor máximo válido e 2021 valor máximo inválido. Questão 2 - Resposta B Resolução: O cálculo da Complexidade Ciclomática é feito a partir da equação matemática: V(G) = arestas – nós + 2. Na figura, temos oito arestas representadas pelas setas e sete nós representados pelo círculo. Aplicando a fórmula, temos: 8 – 7 + 2 = 3. Técnicas de Inspeção de Software ______________________________________________________________ Autoria: Stella Marys Dornelas Lamounier Leitura crítica: Marcilyanne Moreira Gois TEMA 3 28 DIRETO AO PONTO Vimos sobre a importância de executar a inspeção de software durante o processo de desenvolvimento de sistemas, tendo como principal objetivo testar defeitos de maneira antecipada. A inspeção não se limita apenas a métodos tradicionais de desenvolvimento, como os modelos Cascatas, Espiral, Prototipação, entre outros, que trazem uma abordagem mais engessada de como é conduzida a criação de sistemas. Com o passar dos tempos e a evolução computacional, as empresas de desenvolvimento tiveram que se adaptar, sair destes modelos complexos, criados por volta da década de 1970, para modelos mais rápidos, que atendessem os clientes de forma ágil e segura, mas sem perder a qualidade desejada. Segundo Prikladnicki et al. (2014, p. 5), foi por volta de 2001 que surgiram os primeiros passos para a criação da Metodologia Ágil, que, em seu contexto teórico, torna possível realizar todas as mudanças em requisitos, mesmo que tardiamente. Trata-se de métodos flexíveis, onde os requisitos podem sofrer alterações durante o desenvolvimento, sem estar amarrado a contratos que não podem ser alterados. Seu surgimento trouxe outra perspectiva na criação do software, um novo paradigma. Seus criadores concordaram que os métodos tradicionais de desenvolvimento já não conseguiam atender as regras de negócios que se tornavam cada dia mais flexíveis, passíveis de mudanças. Desse modo, foi criado o Manifesto Ágil (2000), seguindo cindo princípios básicos: coragem, comunicação, simplicidade, feedback, respeito. 29 Muitos frameworks podem aplicar a Metodologia Ágil. Detacaremos o Scrum, que tem como característica auxiliar no desenvolvimento de projeto mais complexo, sendo um dos modelos de Metodologia Ágil mais empregado em empresas. Seupilar é composto (transparência, inspeção e adaptação) conforme ilustrado na Figura 1. Figura 1 - Pilares do Scrum Fonte: adaptado de Botelho Junior (2021). O primeiro Pilar do Scrum é a transparência, onde todo o trabalho da equipe envolvida deve ser visível, a fim de proporcionar melhores resultados a quem gerencia seus processos. O segundo pilar é a inspeção, que significa que todo trabalho deve ser inspecionado com a frequência necessária para garantir a qualidade na primeira tentativa, isto é, os artefatos contidos no Scrum devem ser revisados quantas vezes forem necessárias, para a detecção de defeitos, mas o inspetor responsável por realizar a inspeção deve tomar o cuidado necessário para que não atrapalhe a execução das tarefas e, desse modo, o profissional deve ser dotado de experiência em técnicas de verificar artefatos. 30 Os testes são incorporados na Metodologia Ágil, seguindo as diretrizes de seu Manifesto, envolvendo a perspectiva do cliente o mais cedo possível, sempre responder as mudanças o mais rápido possível, tendo em vista que a equipe, denominada como time, seja capaz de lidar com situações novas que ocorrem a todo momento, identificar incertezas se adaptar a essas mudanças ocorridas. Dentro do Scrum, a inspeção é tão importante para o sucesso do projeto que se pode adotar diferentes técnicas para sua execução. Seu papel é tão forte que os testes estão inseridos dentro deste pilar, garantindo que a qualidade esteja sendo produzida a cada Sprint, ao invés controlar apenas ao final do projeto. A inspeção se dá, geralmente, para a verificação de erros para antecipar correções, durante reuniões de revisões, diariamente quando se terminar uma história, portanto, pode-se notar que processos que envolvem inspeção estão envolvidos também durante todo o ciclo de vida da metodologia Scrum e não apenas em métodos tradicionais de desenvolvimento de software. Quais ferramentas usar? As mais diversificadas possíveis, porém, deve-se procurar por técnicas que não atrasarão o desenvolvimento do projeto. Um bom exemplo é a técnica AD HOC, pois as reuniões são sempre marcadas por conversas AD HOC, ou seja, não possuem algum tipo de formalidade, planejamento ou estratégia, que limite o pensamento do time. Uma outra abordagem Ágil muito usada em empregas, que se assemelha ao Scrum, é o Extreme Programming (XP), mas com uma diferença particular: seu foco está mais ligado às práticas de engenharia e em desenvolvimento para pequenas e médias equipes. Ambas executam testes de software, só que o Scrum os realiza paralelamente ao processo de implantação e o XP, como é orientado a testes, é escrito antes das funcionalidades implementadas e usam, 31 em seu processo de confecção de código, a programação em pares. Essa técnica é caracterizada pela produção do código em duplas, ou seja, existe a presença do piloto, responsável pela codificação e o co-piloto, que faz a verificação e inspeção do software. Ambos são de extrema importância para que o sistema seja entregue com a qualidade esperada, mas tem o papel crucial de revisar o que foi digitado e apontar os erros não percebidos pelo programador aconselhando uma possível solução. Portanto, trabalhar com metodologias tradicionais para o desenvolvimento de software é importante, mas as empresas, hoje, têm procurado novas alternativas que trazem rapidez e flexibilidade nas mudanças que ocorrem a todo o momento, bem como assegurar um produto de qualidade que requer, além de muita determinação, flexibilidade a mudanças e revisões constantes para que, ao final, o software a ser entregue possua, além de rapidez, qualidade. Isso é o que esses modelos, que utilizam a metodologia Ágil, querem demonstrar. Referências bibliográficas PRIKLADNICKI, R.; WILLI, R.; MILANI, F. Métodos ágeis para desenvolvimento de software. Porto Alegre: Bookman, 2014. BOTELHO JUNIOR, G. Scrum Path+: seu caminho para a agilidade. 1. ed. 2021. PARA SABER MAIS compreensão de documentos e artefatos, com objetivos de encontrar defeitos antes mesmo da execução do sistema. Os desenvolvedores já possuem, no seu dia a dia, técnicas de escrita de código, documentos, levantamento de requisitos e criação de diagramas da UML, porém, muitos destes profissionais ainda possuem certa limitação ao interpretar um documento ou artefato. 32 Uma solução apresentada é criar o hábito de técnicas baseada em leitura, sendo um conjunto de instruções que levam o inspetor a compreender de forma mais claro e objetiva os artefatos. Existem técnicas que guiam os usuários a um entendimento sobre como olhar e entender um produto, identificando possíveis erros. Uma delas, muito curiosa, é a Ad-hoc. Este modelo não utiliza nenhuma técnica formal de entendimento de leitura. Por exemplo, em uma equipe com vários leitores, cada um, de forma individual, lê e interpreta o documento a seu modo, como bem entende, por meio de sua perspectiva e experiência. Pode soar de maneira estranha essa técnica, mas é comum sua utilização em empresas de software, principalmente, naquelas que adotam a Metodologia Ágil. Na leitura Ad-Hoc, o inspector utiliza apenas seu conhecimento para realizar a inspeção, não é seguido nenhum protocolo ou técnica, suas considerações são feitas de forma informal, sem que haja algum tipo de reunião de planejamento com os membros da equipe. Como tantas empresas podem adotar essa técnica? Realmente dá certo? Para alcançar bons resultados, o profissional deverá ser dotado de muita experiência para realizar as atividades de inspeção, utilizam todos seus conhecimentos para tentar encontrar o número máximo de defeitos. Seguindo esses paradigmas, é possível alcançar excelentes resultados. No entanto, utilizar está técnica pode ser um tanto quanto perigoso dependendo do grau de conhecimento do inspetor, pois muitos defeitos podem passar de forma despercebida, sem que o profissional detecte. Outra questão é que como não existe 33 procedimento ou padrões a serem seguidos é uma técnica que não é passível de melhoria, pois, assim que o inspetor termina aquela atividade, rapidamente já passa para uma posterior. Muitas vezes, a técnica de leitura Ad-Hoc pode se tornar um tanto quanto cara, ou seja, será preciso elevar o custo do projeto, pois contratar profissionais mais experientes pode ser mais dispendioso para o projeto quando se comparado a contratação de profissionais menos experientes, que seguem determinados roteiros. Nesse sentido, vale pensar nas vantagens e desvantagens da adoção desta técnica de inspeção, se as melhorias implantadas trazem mais benefícios que o valor a ser gasto. TEORIA EM PRÁTICA As técnicas de inspeção são fundamentais para a detecção de defeitos nos artefatos de softwares, muitas delas são dotadas de padrões e protocolos de devem ser guiados pelos profissionais, a fim de se obter um bom resultado final. Uma dessas técnicas, muito comum e simples, utilizadas em empresas de desenvolvimento para a detecção destes defeitos, é a checklist, onde o revisor recebe um documento descritos em forma de checklist para capturar informações importantes, enumerar defeitos e, principalmente, propor questões que auxiliam na correção de defeitos. Neste contexto, elabore um modelo de checklist simples, porém, objetivo, que contenha informações a serem inspecionadas de forma fictícia em uma tela de cadastro de clientes. Esse material deve auxiliar o revisor a encontrar possíveis defeitos em artefatos. Para conhecer a resolução comentada proposta pelo professor, acesse a videoaula deste Teoria em Prática no ambiente de aprendizagem. 34 LEITURA FUNDAMENTAL Prezado aluno, as indicações a seguir podem estar disponíveis em algum dos parceiros da nossa Biblioteca Virtual (faça o log in por meio do seu AVA), e outras podem estar disponíveis em sites acadêmicos (como o SciELO), repositórios de instituições públicas, órgãos públicos, anais de eventos científicos ou periódicoscientíficos, todos acessíveis pela internet. Isso não significa que o protagonismo da sua jornada de autodesenvolvimento deva mudar de foco. Reconhecemos que você é a autoridade máxima da sua própria vida e deve, portanto, assumir uma postura autônoma nos estudos e na construção da sua carreira profissional. Por isso, nós o convidamos a explorar todas as possibilidades da nossa Biblioteca Virtual e além! Sucesso! Indicação 1 No capítulo 3, é feita uma abordagem bem clara sobre testes de software, seus tipos e principais funcionalidades. Também destaca- sea inspeção de software, exatamente na página 76, onde é possível fazer uma leitura de suas principais áreas e verificar como é realizado o processo de inspeção. Para realizar a leitura, acesse a nossa plataforma Biblioteca Virtual e busque pelo título da obra. GALLOTI, G. M. A. Qualidade de software. São Paulo: Pearson Education do Brasil, 2016. Indicações de leitura 35 Indicação 2 A obra relata os principais aspectos que norteiam a Engenharia de Software, dando ênfase aos seus fundamentos, métodos ágeis, qualidade e testes. Neste contexto, em uma obra com tantos requisitos, não poderia deixar de citar as inspeções de softwares, localizadas na seção 3.4, abordando as principais técnicas e sua empregabilidade. Para realizar a leitura, acesse a nossa plataforma Biblioteca Virtual e busque pelo título da obra. MAITINO NETO, R. Engenharia de Software. Londrina: Editora e Distribuidora Nacional S.A., 2016. 216p. QUIZ Prezado aluno, as questões do Quiz têm como propósito a verificação de leitura dos itens Direto ao Ponto, Para Saber Mais, Teoria em Prática e Leitura Fundamental, presentes neste Aprendizagem em Foco. Para as avaliações virtuais e presenciais, as questões serão elaboradas a partir de todos os itens do Aprendizagem em Foco e dos slides usados para a gravação das videoaulas, além de questões de interpretação com embasamento no cabeçalho da questão. 36 1. Inspeções de softwares são utilizadas para a correção precocemente de defeitos em artefatos, técnicas que podem ser usadas tanto em metodologias de desenvolvimento tradicionais quanto em metodologias ágeis. Um dos modelos ágeis muito comuns é o Scrum, que, em sua essência, emprega a inspeção de artefatos de acordo com seu pilar. Neste contexto, assinale e alternativa que demonstra corretamente o pilar que se concentra a Inspeção. a. Transparência, codificação, adaptação. b. Transparência, inspeção, melhoria contínua. c. Transparência, inspeção, adaptação d. Transparência, inspeção, codificação. e. Inspeção, codificação, adaptação. 2. Técnicas baseadas em leitura em inspeção de software tem como característica guiar inspetores e, com sua utilização, é possível selecionar um conjunto de perspectivas para revisar requisitos. Uma dessas técnicas de leituras, muito conhecida, é a AD-HOC, sendo sua finalidade analisar individualmente os artefatos de software, sendo um dos métodos mais empregados no mercado, atualmente. Assinale a alternativa correta, que demonstra uma característica desta técnica. a. É uma técnica informal, onde a inspeção dos artefatos é feita de acordo com a experiência do revisões. b. É uma técnica muito usada por qualquer tipo de profissional, desde os menos experientes até os mais experientes e, por isso, é amplamente utilizada no mercado. 37 c. Os documentos criados durante a utilização da AD-HOC devem ser rigorosamente inspecionados por todos os membros da equipe. d. AD-HOC segue protocolos de inspeção que, ao final, é capaz de garantir toda a correção em diferentes modelos de artefatos. e. Suas reuniões são marcadas por planejamentos estratégicos, que auxiliam os gestores na tomada de decisão. GABARITO Questão 1 - Resposta C Resolução: Esses pilares são responsáveis pela criação de sistemas de forma ágil e segura. Ser transparente quer dizer que todos os processos devem estar visíveis a todos os responsáveis, a inspeção (ponto-chave da questão), quer dizer que deve se realizar, constantemente, inspeções para detecções de possíveis erros e, finalmente, a adaptação, que representa os ajustes nos processos que foram alterados durante as modificações feitas na inspeção. Questão 2 - Resposta A Resolução: A técnica é dita como muito utilizada, pois a maioria das empresas de desenvolvimento utilizam métodos ágeis para desenvolvimento de software, o que tem como características reuniões informais para a detecção de erros nos artefato. Processos e Casos de Testes automatizados ______________________________________________________________ Autoria: Stella Marys Dornelas Lamounier Leitura crítica: Marcilyanne Moreira Gois TEMA 4 39 DIRETO AO PONTO Testes de software vem ganhando cada dia mais espaço nas empresas de desenvolvimento e organizações. Trabalhar com testes não é uma tarefa fácil como muitos podem pensar, é preciso entender qual a melhor técnica a ser utilizada e a que mais se aproxima para resolver a necessidade do cliente. É preciso saber que, a cada momento, os sistemas computacionais têm se tornado mais complexos, com mais funcionalidades, sendo necessárias tomadas de decisões precisas. Nesse contexto, é valido ressaltar que encontrar erros o mais precocemente possível no software, pode auxiliar empresas de desenvolvimento a alcançar altos níveis de confiabilidade em seus produtos de softwares. As etapas de desenvolvimento de software, no percorrer dos anos, sofreram grandes mudanças organizacionais. Foram deixados para trás processos, ditos como rígidos, repletos de documentação, sendo que, em muitas vezes, alterar um requisito era algo impossível para um novo paradigma de criar sistemas baseados em métodos mais flexíveis, dinâmicos, onde o que importa é entregar o projeto funcionando de forma eficaz, rápida e com qualidade, com adaptações ,sempre que necessário, executando o mais rápido possível, buscando melhoria contínua. Independente da empresa adotar métodos tradicionais ou ágeis, é importante ressaltar as principais diferenças entres os tipos de testes existentes. Os testes manuais são aplicados utilizando ações humana e, por isso, são considerados lentos e com maior risco de algum erro/ 40 defeito, passar desapercebido. Sua realização é feita totalmente por um usuário que pode não identificar o erro e, por isso, é importante que o testador tenha muita experiência. Já os testes automatizados são rápidos e não há interferência humana para sua execução, são dotados de funcionalidades capazes de detectar e avisar o erro em questão de segundos, sugerindo possíveis correções em determinados casos, o que gera menor custo e maior precisão em sua execução. Sua funcionalidade é comparar dados/ resultados obtidos com esperados, auxiliando o testador a verificar se um determinado software tem ou não o resultado esperado. Alguns pontos dos dois tipos de testes, que podem ser destacados, são os seguintes: Quadro 1 - Testes manuais versus testes automatizados Fonte: elaborado pela autora. 41 Quando usar testes manuais e quando usar automatizados? Os testes manuais são mais indicados quando se tem uma documentação muito vaga, ou seja, todos os requisitos ainda não foram especificados. Nesse momento, é notória a presença de um analista de qualidade que tenha experiência e boa intuição para bom entendimento dos documentos apresentados. Testes de usabilidade são realizados com base na experiência do usuário, de diferentes perfis, são baseados na observação humana quanto ao uso de uma função específica para grupos de usuários. Ainda é algo muito complexo e, nesse contexto, adotar esta técnica pode ser a melhor, pois o usuário que realizará o teste tem uma visão mais próxima do usuário final que um teste automatizado. Quando não se tem nenhum planejamento já estabelecido, sem criação ou execução de regras, padrões ou outro tipo de sequência, é melhor aplicar testes manuais. A respeito de testes automatizados,é melhor sua aplicação quando um sistema sofre alterações frequentes de atualizações, e se trabalha com times grandes e de diferentes áreas, exigindo testes frequentes, que são os chamados testes de regressão, que tem como finalidade assegurar que as alterações feitas estão funcionando e de acordo com o requisitado. Em teste de carga também se utiliza muito a automatização de testes, auxiliando a determinar o comportamento de um sistema em condições reais, como, por exemplo, capacidade de acesso, processamento, entre outros. Por fim, não existe regra que demonstre se este teste é voltado às metodologias mais tradicionais ou ágeis, algumas tem maior ênfase para métodos mais flexíveis. A equipe de testesprecisa ter em 42 mente que independente da técnica ser manual ou automatizada, o que deve ser determinada é a entrega rápida de um software com menor quantidade de erros possíveis e custo de acordo com o orçamento do cliente. PARA SABER MAIS A automação de testes surgiu por meio da necessidade de criar modelos de testes que atendessem com mais precisão os testadores que sempre desejaram otimizar tempo, diminuindo o custo e aumentando a qualidade do software. É um campo relativamente novo, mas que já traz benefícios muito bem vistos pela comunidade de testadores, uma vez que os testes podem ser aplicados em cenários diferentes, o que pode acarretar a descoberta mais que prematura de um defeito no sistema que está sendo implementado. Desse modo esses problemas são corrigidos rapidamente e entregas feitas com menos erros, uma vez que testar todos os possíveis cenários de forma manual ou testar as alterações realizadas, pode dar muito trabalho para a equipe de testes. Existem ferramentas muito novas no mercado, mas que já estão sendo utilizadas pelas empresas de desenvolvimento que utilizam a metodologia Ágil de implantação de software, como o caso da Capybara, que gera Testes de Aceitação, uma ferramenta de automação de testes para aplicações via web, ou seja, testes no browser, com uma característica importante, que é ser de código aberto. Sua funcionalidade é testar aplicações web, simulando como um usuário real se comporta diante de determinada situação. Como é realizado o teste com esse framework? É realizado por meio de drivers e frameworks capazes de controlar os navegadores, tornando possível simular, por exemplo, um cadastro de usuário 43 ou a compra de algum produto eletrônico, com a utilização de comandos específicos, como, por exemplo: visit:, para visitar uma URL; o visible, que verifica se determinado elemento da página está visível; e o click_button, que verifica o clique em um botão. Outra ferramenta que está se tornando muito popular é o Rspec, que executa testes automatizados em linguagem Ruby. Seu desenvolvimento é orientado a testes, ou seja, muito antes de serem desenvolvidos os códigos, os testes são realizados. Outra característica interessante é a criação dos testes utilizando a tendência de DSL, que significa criar scripts mais próximos de linguagem mais natural, como o inglês, ficando bem fácil para entender o teste que foi escrito por outro testador. Portanto, são ferramentas novas, mas que já estão presentes nos mais diversos tipos de sistemas, principalmente em aplicativos web. Uma observação importante, que os frameworks atuais trazem, além de agilidade e precisão, é melhor compreensão dos testes com a utilização de escritas menos complexas, de acordo com seu domínio particular. TEORIA EM PRÁTICA Testes automatizados possuem inúmeros benefícios que podem auxiliar as empresas de softwares a criar sistemas com uma qualidade muito maior do que utilizando apenas testes manuais. É possível intercalar tanto uma como a outra, isso dependerá do que deve ser testado, se é uma nova funcionalidade, parte do código ou algum botão. Quando essas automações são aplicadas a alguma metodologia Ágil, sua performance se torna ainda melhor, devido a sua manutenção 44 flexível e com reuniões menos burocráticas, o que, por muitas vezes, atrapalha o desenvolvimento do sistema. Imagina que você esteja em um ambiente de desenvolvimento, qual o tipo de metodologia Ágil aplicaria para a criação de sistemas que poderiam utilizar os testes de software automatizados e a relação desta metodologia com testes automatizados? Para conhecer a resolução comentada proposta pelo professor, acesse a videoaula deste Teoria em Prática no ambiente de aprendizagem. LEITURA FUNDAMENTAL Prezado aluno, as indicações a seguir podem estar disponíveis em algum dos parceiros da nossa Biblioteca Virtual (faça o log in por meio do seu AVA), e outras podem estar disponíveis em sites acadêmicos (como o SciELO), repositórios de instituições públicas, órgãos públicos, anais de eventos científicos ou periódicos científicos, todos acessíveis pela internet. Isso não significa que o protagonismo da sua jornada de autodesenvolvimento deva mudar de foco. Reconhecemos que você é a autoridade máxima da sua própria vida e deve, portanto, assumir uma postura autônoma nos estudos e na construção da sua carreira profissional. Por isso, nós o convidamos a explorar todas as possibilidades da nossa Biblioteca Virtual e além! Sucesso! Indicações de leitura 45 Indicação 1 O artigo indicado tem como objetivo informar a importância de utilizar a automação de testes no desenvolvimento de sistema, detalhar os benefícios trazidos por este modelo de testes e a aplicação na abordagem Ágil. Pesquise o título da obra na Internet, por meio do buscador Google ou outro de sua preferência. BERNARDO, P. C.; KON, F.. A importância dos testes automatizados. Engenharia de Software Magazine, v. 1, n. 3, p. 54-57, 2008. Indicação 2 A tese indicada mostra porque se deve utilizar testes automatizados em desenvolvimento de software. Além disso, demonstra que, ao contrário do que muitos pensam, pode trazer redução de custos, ainda mais quando aplicados seus padrões a metodologias Ágeis. Pesquise o título da obra na Internet, por meio do buscador Google ou outro de sua preferência. BERNARDO, P. C. Padrões de testes automatizados. Tese de Doutorado, curso Ciência da Computação. São Paulo: Universidade de São Paulo, 2011. QUIZ Prezado aluno, as questões do Quiz têm como propósito a verificação de leitura dos itens Direto ao Ponto, Para Saber 46 Mais, Teoria em Prática e Leitura Fundamental, presentes neste Aprendizagem em Foco. Para as avaliações virtuais e presenciais, as questões serão elaboradas a partir de todos os itens do Aprendizagem em Foco e dos slides usados para a gravação das videoaulas, além de questões de interpretação com embasamento no cabeçalho da questão. 1. Testes automatizados foram criados para aumentar a qualidade do software, dotados de ferramentas e frameworks que podem substituir em algumas atividades os testes manuais. Assinale a alternativa que não é uma característica de testes automatizados. a. Repetitivos. b. Rápidos. c. Dependência de linguagem natural.. d. Ações programadas. e. Suscetíveis a pequenas mudanças. 2. Testes automatizados são amplamente utilizados em empresas de desenvolvimento por trazer agilidade e facilidade na sua execução. Essas empresas têm adotado também ferramentas de automação que utilizam técnicas de DSL. Assinale a alternativa correta, que demonstra a principal característica de uma DSL. a. Possui somente versões gratuitas. b. Linguagem de fácil interpretação para o usuário. c. Tradução de códigos mais complexos. d. Baixo nível de abstração. 47 e. Alto nível de abstração. GABARITO Questão 1 - Resposta C Resolução: A utilização de uma linguagem mais natural está associada a testes manuais, por não utilizar nenhum sistema computacional que realize as atividades de testes. O testador responsável por sua execução, muitas vezes, utiliza sua experiência e intuição para diagnosticar erros, evitando o uso de técnicas computacionais. Questão 2 - RespostaB Resolução: A DSL, ou linguagem específica de domínio, permite ao usuário interagir com o sistema e seus termos, não se utiliza apenas de linguagem de programação, o que facilita muito a interpretação por parte do usuário. BONS ESTUDOS! Apresentação da disciplina Introdução TEMA 1 Direto ao ponto Para saber mais Teoria em prática Leitura fundamental Quiz Gabarito TEMA 2 Direto ao ponto Para saber mais Teoria em prática Leitura fundamental Quiz Gabarito TEMA 3 Direto ao ponto Para saber mais Teoria em prática Leitura fundamental Quiz Gabarito TEMA 4 Direto ao ponto Para saber mais Teoria em prática Quiz Gabarito Inicio 2: Botão TEMA 4: Botão TEMA 1: Botão TEMA 2: Botão TEMA 3: Botão TEMA 9: Inicio :