Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

<p>Conteudista: Prof.ª Dr.ª Marise Miranda</p><p>Revisão Textual: Prof.ª Dr.ª Selma Aparecida Cesarin</p><p>Revisão Técnica: Prof. Dr. Cleber Silva Ferreira da Luz</p><p>Objetivos da Unidade:</p><p>Utilizar os Testes Automatizados para transformar defeitos latentes em defeitos</p><p>identificáveis;</p><p>Detectar durante o ciclo de vida de Desenvolvimento de Software os defeitos ocultos em</p><p>um Produto de Software;</p><p>Implementar Testes nas funcionalidades críticas em softwares.</p><p>📄 Contextualização</p><p>📄 Material Teórico</p><p>📄 Material Complementar</p><p>📄 Referências</p><p>Processo de Automação de Testes</p><p>Quando a expressão Teste de Software é mencionada, vem à mente a imagem de um Script ou Programa que</p><p>exercita um Sistema para simular o seu comportamento em condições de uso.</p><p>Na prática de Desenvolvimento de Software, no entanto, os Testes, geralmente, começam como etapas</p><p>descritas no próprio Código de Programação, indo até simulações em Linguagem ou ações naturais</p><p>humanas. Essas “ações” são essencialmente as instruções que um Testador Humano ou Analista de</p><p>Testes precisa seguir para interagir com um Aplicativo, exercitando um determinado cenário.</p><p>Como os Testes precisam ser executados repetidamente, esses Testes Manuais precisam passar para</p><p>automação, por meio da criação de Scripts ou Programas que são executados sozinhos.</p><p>Criar Testes Automatizados pode levar muito tempo do programador e existem algumas Técnicas para criá-</p><p>los. Em geral, uma sequência de etapas escritas, em Linguagem de Programação, é parametrizada na</p><p>entrada de um Processo de Testes Automatizados, e a saída é uma sequência de chamadas de</p><p>procedimento com parâmetros associados que podem simular o funcionamento do Aplicativo sem</p><p>intervenção humana.</p><p>A Técnica é baseada em observar as etapas dos Testes de Software, em segmentos que descrevem ações,</p><p>bem como na especificação dos objetivos da ação. A Técnica sintetiza uma sequência de chamadas às</p><p>rotinas do software, cuja execução deve ser bem-sucedida. Quando um profissional se habilita a realizar</p><p>análises sobre a eficiência dos Testes Automatizados, ele deve levar em consideração a comparação com</p><p>os Testes Manuais. Um percentual de automatização deve ser relevante nos Testes sem intervenção</p><p>humana. Isso indica que a Técnica pode reduzir o custo da Automação de Testes de forma bastante eficaz.</p><p>1 / 4</p><p>📄 Contextualização</p><p>Introdução aos Testes Automatizados e seus Cenário</p><p>Um Teste Automatizado é uma prática de como um usuário utilizaria o software para testá-lo repetidamente.</p><p>O Teste Automatizado consiste em um conjunto de comandos que executam as mesmas etapas, realizadas</p><p>como se fosse um Teste Manual, bem como qualquer dado parametrizado previamente necessário para o</p><p>Teste e o resultado esperado. É como se uma pessoa fizesse um Teste Manual de um Processo. Por</p><p>exemplo, o Teste de login poderia inserir uma série de nomes de usuários e senhas: uma rotina de Teste</p><p>Automatizada envia os nomes de usuário e senhas para o aplicativo em Teste, compara os resultados</p><p>esperados aos resultados reais, para determinar se o Teste foi aprovado ou reprovado, gerando um relatório</p><p>resumido dos resultados do Teste.</p><p>A Automação é um procedimento ideal para casos de Teste que serão executados repetidas vezes, como</p><p>Testes que precisam ser realizados em vários navegadores de Internet (Figura 1) ou aplicativos de</p><p>celulares. Na prática, qualquer Teste que possa ser feito manualmente pode ser automatizado, embora</p><p>existam vários fatores a serem considerados para determinar se a automação de Teste específica é</p><p>benéfica.</p><p>Na prática, qualquer Teste que possa ser feito manualmente pode ser automatizado, embora existam vários</p><p>fatores a serem considerados para determinar se a automação de Teste específica é benéfica.</p><p>2 / 4</p><p>📄 Material Teórico</p><p>Figura 1 – Testes de Navegadores de Internet</p><p>A Figura 1 mostra um Teste, que pode ser Automático ou Manual, dependendo de como as rotinas foram</p><p>desenvolvidas.</p><p>No caso do Teste Manual, recursos são exigidos, como tempo, pessoas, analistas e recursos de TI, como a</p><p>conexão de rede de Internet, servidores e armazenamento de Banco de Dados.</p><p>Em ambientes de Desenvolvimento Ágil, simplesmente pode não haver tempo disponível o suficiente para</p><p>Testes Manuais genéricos, deixando as Equipes com duas opções: a de atrasar a entrega do software ou a</p><p>de colocá-lo em produção sem os devidos Testes adequados.</p><p>Testes automatizados não significam o fim dos testes manuais.</p><p>Teste Manual</p><p>Os Testes de Software levam em consideração a intuição humana, como o usuário reage às intervenções</p><p>com o software. Ao invés de substituir a intuição humana e a solução de problemas, os Testes</p><p>Automatizados tratam de realizar os Testes corretos e repetitivos.</p><p>Nem todas as etapas do software que interagem com o usuário podem ser testadas automaticamente. E,</p><p>ainda, se alguma funcionalidade de software precisa ser testada rapidamente e apenas uma única vez, não</p><p>se justifica perder tempo em desenvolver uma rotina de Teste de Automação. Para automatizar Testes há</p><p>uma condição primária, que é a definir a Automação de Testes certos. Isso ajuda a Equipe, dando aos</p><p>desenvolvedores e aos testadores (Testers) economia de tempo, concentrando-se em tarefas mais</p><p>prioritárias, como a criação de novos recursos, solucionar bugs complicados e fornecer software de alta</p><p>qualidade. Percorrer manualmente os mesmos cenários de Testes, toda vez que ocorre uma nova alteração</p><p>de software, com o objetivo de garantir que os outros recursos não tenham sido danificados, pode demandar</p><p>tempo e ser um processo tedioso.</p><p>Testes Automatizados</p><p>Com tantas integrações e o desenvolvimento de APIs (Applications Programming Interface), testar o Código</p><p>ao final do ciclo de Desenvolvimento de software não é uma prática atual. Daí reside a importância dos</p><p>Testes Automatizados.</p><p>API é uma coleção de rotinas e padrões, escritos em uma Linguagem de Programação, para acessar</p><p>aplicações de software ou plataforma baseada na Web. A sigla API, do Inglês Application Programming</p><p>Interface, em Português significa Interface de Programação de Aplicativos e Movimentos como Agile e</p><p>DevOps são as referências para os desenvolvedores de Programas e da Engenharia de Software moderna.</p><p>Essa referência mudou a forma como o Código está sendo desenvolvido, testado e usado por Empresas e</p><p>consumidores. Até porque, atualmente, todas as Empresas disponibilizam algum tipo de software, pode ser</p><p>um Aplicativo de pedidos, um Aplicativo Banking para Mobile, um Aplicativo de check-in on-line de voos</p><p>aéreos etc. As novas versões de software são entregues em menor tempo e com maior regularidade, pois o</p><p>Teste, a cada estágio do ciclo de entrega de Desenvolvimento, conhecido como Teste Contínuo, é parte</p><p>integrante do Desenvolvimento de Software atualmente.</p><p>Visão de um Processo de Automação de Testes de Software</p><p>Qualquer Teste Manual ou automatizado traz a possibilidade de que seus scripts não sejam executados</p><p>exatamente como especificado ou que os Testes Exploratórios iniciais não sejam documentados de forma</p><p>adequada, tornando os erros improdutíveis e, consequentemente, mais difíceis de depurar.</p><p>Os Testes Automatizados oferecem soluções potenciais para as desvantagens encontradas nos Testes</p><p>Manuais. No entanto, antes de gerar um processo de automação do Teste, cabe aqui conhecê-los. Os</p><p>Testes são necessários para correção de erros, bugs, Códigos mal escritos. Porém, a identificação de</p><p>causas raízes de falhas do software em produção decorrem da baixa garantia de qualidade durante todo o</p><p>Processo de Desenvolvimento de Software.</p><p>Por esse motivo, Testes de Garantia de Qualidade rigorosos evitam lançamento de produtos com erros que</p><p>podem escapar aos Testes de Software. Testes de Garantia de Qualidade podem detectar bugs e problemas</p><p>de incompatibilidade. O Desenvolvimento de Software de alta qualidade reside na implementação de um</p><p>Gerenciamento de QA eficiente que forneça ferramentas e metodologias para a construção de produtos</p><p>sem bugs. Gerenciamento de Qualidade</p><p>de Desenvolvimento e Implantação de Software cobre três</p><p>objetivos principais: Garantia de Qualidade, Controle de Qualidade e Testes.</p><p>Garantia de Qualidade de Software (Software Quality Assurance</p><p>– SQA)</p><p>A SQA (Software Quality Assurance) é uma Área das Empresas que demanda um conjunto planejado de</p><p>Ações Organizacionais para aprimorar o Processo de Desenvolvimento de Software, incluindo padrões de</p><p>qualidade para evitar erros e bugs no produto.</p><p>Controle de Qualidade de Software (Software Quality Control –</p><p>SQC)</p><p>No modelo de QA, o gerenciamento de atividades orientadas aos requisitos de qualidade está inserido no</p><p>CQ (Software Control Quality). Esses requisitos certificam que os produtos de software ao longo do Ciclo de</p><p>Desenvolvimento estejam permanentemente garantidos.</p><p>Testes</p><p>Aqui é a Área ou Atividade destinada a detectar e resolver problemas técnicos no Código-fonte do software e</p><p>avaliar a usabilidade geral do produto, o desempenho, a segurança e a compatibilidade com as integrações.</p><p>Os Testes fazem parte da QA e estão sujeitos pela CQ. Os Testes consistem em diversas atividades</p><p>executadas por analistas especializados, que trabalham em um Processo de Teste organizado, relatando</p><p>problemas que ocorrem em funções especificadas nos estágios do Plano de Testes. Isso acontece também</p><p>caso os Testes sejam automatizados.</p><p>De acordo com o tamanho da Equipe, estrutura de recursos disponíveis e necessidades específicas da</p><p>Empresa, a função de testador de software é utilizada de maneira distinta.</p><p>As funções de Teste de Software são determinadas pela Equipe de QA ou pelos Testers e podem incluir</p><p>algumas das especificações a seguir:</p><p>Contexto da Tecnologia: testador usando a Ferramenta Selênio;</p><p>Contexto de Negócios: sistema de Saúde QA;</p><p>Contexto do Tester: tester de Banco de Dados, Tester de API;</p><p>Contexto quanto ao tipo de Teste: tester de Desempenho, Tester de Segurança;</p><p>Contexto da Experiência do Tester: senior QA ou Especialista em Testes.</p><p>Existem seis (6) funções relacionadas aos Testes que requerem um conjunto de habilidades,</p><p>responsabilidades e ferramentas para serem realizadas.</p><p>Essas funções são citadas na figura a seguir, com destaque apenas para a função de Testes</p><p>Automatizados:</p><p>Tipos de Testes de Softwares</p><p>Para identificar e organizar os erros, os Testes são separados em diferentes tipos (Figura 2), principalmente</p><p>quando o desenvolvimento do software é orientado por Testes. Os Testes sugerem que algo precisa ser</p><p>verificado no Código e, além de corrigi-lo, por vezes, é necessário refatorá-lo. A vantagem de trabalhar com</p><p>Testes Automatizados em todo o ciclo de desenvolvimento do software é que, ao fazer as alterações, o</p><p>Código continuará funcionando, evitando que ele não fique inteligível e com repetições sem necessidade.</p><p>Por esse motivo é importante conhecer os Tipos de Testes para avaliar se ele deve ou não ser automatizado.</p><p>Esse é apenas um dos critérios na decisão de automatizar os Testes.</p><p>Engenheiro de Testes de Software: testar o sistema geral usando técnicas e instrumentos</p><p>adequados;</p><p>Analista de Testes: identificar condições e recursos de Teste para desenvolver cenários de Teste</p><p>e a respectiva documentação;</p><p>Engenheiro de Testes Automatizados: desenvolver scripts para executar Testes automatizados;</p><p>Engenheiro de Desenvolvimento de Testes de Software: desenvolver ferramentas para suportar</p><p>Testes ou outras funções para realizar Testes em baixo nível;</p><p>Arquiteto de Testes: projetar ferramentas de seleção de infraestrutura de Testes complexas para</p><p>implementação;</p><p>Gerentes de Testes: preparar a estratégia de Teste, controlar o processo de Teste e os membros</p><p>da Equipe.</p><p>Figura 2 – Tipos de Testes de Software</p><p>Teste Funcional (Functional Test): são Testes de Software que validam o Sistema em relação</p><p>aos requisitos ou especificações funcionais. Tem por finalidade testar a aplicação feita em</p><p>software, fornecendo entrada adequada e verificando o comportamento na saída em relação</p><p>aos requisitos funcionais exigidos;</p><p>Teste de Fumaça (Smoke Test): este tipo de Teste cobre a maioria das funções principais do</p><p>software, de maneira superficial. O Teste de Fumaça ajuda a decidir se o analista deve</p><p>prosseguir com Testes adicionais. Caso seja aprovado, dá-se prosseguimento a outros Testes,</p><p>mas, se falhar, os Testes adicionais são interrompidos, e correções precisam ser feitas.</p><p>Entretanto, se os Testes de funções principais em um Aplicativo revelarem muitos erros ou</p><p>falhas, recomenda-se decidir que os Testes detalhados serão perda de tempo e esforço;</p><p>Teste de segurança (Security Test): os Testes de Segurança do software têm o objetivo de</p><p>verificar a proteção contra possíveis ataques de hackers ou vírus. Além disso, os Testes de</p><p>Segurança dizem respeito à entrada de dados pelo usuário, seguindo critérios de verificação e</p><p>validação desses dados;</p><p>Teste de Instalação (Installation Test): o Teste de Instalação ou Implementação de uma</p><p>Aplicação em software é executado para verificar se ele foi instalado corretamente, com todos</p><p>os recursos necessários para seu pleno funcionamento e, ainda, se o produto está</p><p>funcionando conforme as expectativas do usuário. É realizado na última fase dos Testes,</p><p>antes que o usuário final tenha seu primeiro contato de interação com o produto;</p><p>Teste de Regressão (Regression Test): neste Teste, há a confirmação de que um Programa</p><p>recente ou alteração de Código não afetou adversamente os recursos implementados. O Teste</p><p>de Regressão é uma seleção completa ou parcial de casos de Teste já executados, que são</p><p>executados novamente, a fim de garantir que as funcionalidades existentes funcionem de</p><p>acordo com o Projeto;</p><p>Teste de Compatibilidade (Compatibility Test): no Teste de Compatibilidade de um software,</p><p>verifica-se a capacidade de sua execução em diferentes tipos de hardware, Sistemas</p><p>Operacionais, Aplicativos, conectividade com a Rede de Computadores e Internet e</p><p>Dispositivos Móveis;</p><p>Teste de Volume (Volume Test): com o Teste de Volume, o software ou aplicação, é submetida a</p><p>um volume enorme de dados para testar como ele se comporta. Uma aplicação pode ter um</p><p>comportamento distinto quando submetida a milhões de downloads;</p><p>Teste de exploração (Exploration Test): quando os casos de Testes não são criados com</p><p>antecedência, Testes Exploratórios ajudam a verificar o Sistema em tempo real. Nascem no</p><p>Modelo Agile e sua abordagem tem relação com a descoberta, a investigação e o aprendizado.</p><p>Em geral, os Testes de Scripts são baseados em casos de Teste e depois prosseguem para a</p><p>execução. Diferentemente, no Teste Exploratório, o processo é simultâneo, tanto no Projeto do</p><p>software quanto na execução do Teste;</p><p>Teste de estresse (Stress Test): este Teste verifica a estabilidade e a confiabilidade da API. Ele</p><p>mede a robustez e os recursos de tratamento de erros quando o software é submetido a</p><p>condições de extrema carga de uso ou conexões, testando a garantia de que a aplicação não</p><p>trave em situações críticas;</p><p>Teste de carga (Load Test): o Teste de Carga refere-se à prática de simular o uso esperado de</p><p>um Programa de software, com vários usuários acessando o Programa de forma simultânea.</p><p>Em geral, este Teste é mais adequado para Sistemas Multiusuário, em uma estrutura</p><p>cliente/servidor, como no caso de servidores web;</p><p>Abordagens Técnicas dos Testes</p><p>Os tipos de Testes podem ser realizados, em geral, com duas abordagens Técnicas: os Testes chamados</p><p>Caixa Preta e os Testes chamados Caixa Branca.</p><p>Os Testes de Caixa Preta são um procedimento realizado pelo Analista de Testes sem que tenha acesso ou</p><p>conheça o Código Fonte do software e a sua estrutura interna. Os Testes realizados tem como base os</p><p>requisitos funcionais, sendo também denominados Testes Funcionais. Os Analistas de Testes devem ficar</p><p>atentos à maneira como os usuários acessariam a Aplicação, testando todas as combinações possíveis de</p><p>entrada de dados.</p><p>Já os Testes de Caixa Branca levam em consideração o Código Fonte e, nesse caso, o Analista de Testes</p><p>observa as etapas do Código, analisando o fluxo de dados e o efeito das condições esperadas.</p><p>Teste Caixa Preta (Black Box Testing)</p><p>A Figura 3 mostra o funcionamento de um Teste com a Abordagem de Caixa Preta. A entrada</p><p>(TestCaseInput) é executada e o Analista de Testes considera as ocorrências na saída (TestCaseOutput).</p><p>Teste de localização (Localization Test): esse tipo de Teste de Software leva em consideração o</p><p>comportamento regional. A técnica consiste em testar o software de acordo com a região, o</p><p>local ou a cultura específica, levando em consideração aspectos linguísticos e culturais,</p><p>personalizando o software conforme o idioma e o país de destino;</p><p>Teste de usabilidade (Usability Test): o Teste de Usabilidade tem a motivação de criar a melhor</p><p>experiência de usuário, conduzindo o processo por meio de simulação das observações como</p><p>usuários reais e de suas interações com o design de interface;</p><p>Teste de Integração (Integration Test): o Teste de Integração visa a confirmar as funcionalidades</p><p>do software em pleno funcionamento e uso, e analisar as integrações entre distintas</p><p>Plataformas ou Sistemas, averiguando o funcionamento da interface e das dependências do</p><p>ambiente em que opera.</p><p>Nesse Processo, o Código da Aplicação é totalmente transparente.</p><p>Figura 3 – Teste com abordagem na Técnica da Caixa Preta</p><p>A Abordagem da Técnica de Teste da Caixa Preta é um Método de Teste de software em que a estrutura, o</p><p>design ou a implementação interna do componente de software testado é desconhecido pelo Analista de</p><p>Testes.</p><p>As principais características observadas nesse tipo de Técnica são:</p><p>Funções incorretas ou ausentes na interface;</p><p>Erros na interface com o usuário;</p><p>Erros relativos a uma estrutura de dados ou acesso a Banco de Dados externo percebidos pelo</p><p>usuário;</p><p>Erros de comportamento ou desempenho;</p><p>Tipos de Teste que se encaixam na Abordagem da Técnica da Caixa Preta:</p><p>Vantagens do Teste Black Box:</p><p>Teste Caixa Branca (White Box Testing)</p><p>Essa Abordagem Técnica de Teste examina, principalmente, a estrutura do Programa e deriva dados de</p><p>Teste com base na lógica ou no Código Escrito do Programa (Figura 4).</p><p>Erros de inicialização e término.</p><p>Teste funcional;</p><p>Teste não Funcional: desempenho/segurança, escalabilidade (volume) e usabilidade;</p><p>Teste de Regressão.</p><p>Os analistas de Testes não precisam conhecer as Linguagens de Programação;</p><p>Esse tipo de Teste é realizado manualmente;</p><p>Testes realizados de maneira independente;</p><p>Casos de Teste são definidos assim que as especificações para o Projeto forem concluídas.</p><p>Figura 4 – Teste com Abordagem na Técnica da Caixa Branca</p><p>As principais características observadas nesse tipo de Técnica, Caixa Branca ou white box testing, são:</p><p>Tipos de Teste que se encaixam na Abordagem da Técnica Da Caixa Branca:</p><p>Identificar todos os recursos, componentes e Programas a serem testados;</p><p>Criar um Gráfico de Fluxo e identificar todos os possíveis caminhos;</p><p>Escrever casos de Teste para cada um dos caminhos do Fluxo;</p><p>Executar e repetir os casos de Teste.</p><p>Teste Unitário;</p><p>Teste de Integração;</p><p>Vantagens do Teste White Box:</p><p>Teste de Implantação.</p><p>É executado em diferentes níveis, como o Unitário, a Integração e a Implantação, podendo ter</p><p>vários Analistas de Testes;</p><p>Valida a identificação do Fluxo de Trabalho de um Aplicativo;</p><p>Testa uma série de entradas predefinidas contra saídas esperadas;</p><p>Nos Testes de uma Entrada Específica, caso não resulte na saída esperada, o bug obtido é</p><p>encaminhado para ser corrigido pela Área responsável;</p><p>Possibilita Testes em funcionalidade de loops condicionais, podendo ser automatizado;</p><p>Testa cada afirmação da lógica do Código;</p><p>Testa as funções de forma individualizada;</p><p>Detecta falhas de segurança interna;</p><p>Caminhos com links quebrados ou mal estruturados em um processo de codificação;</p><p>Pode ser executado em estágios iniciais e não espera pela disponibilidade da GUI (Graphical</p><p>User Interface);</p><p>O Teste é feito de maneira a cobrir a maioria dos caminhos dos fluxos do Código e Dados.</p><p>Exemplos de Testes com Uso de Linguagem de Programação</p><p>Saiba Mais</p><p>Caso de Teste (Test Case) são ações executadas em conjunto para verificar um recurso ou</p><p>funcionalidade do Aplicativo de Software. Um Caso de Teste é definido por etapas de Teste,</p><p>dados de Teste, pré-condição e pós-condição. O caso de Teste é desenvolvido para um</p><p>cenário de Teste específico, que permite verificar os requisitos levantados nesse contexto. O</p><p>caso de Teste inclui variáveis ou condições específicas, que pode ter seus resultados</p><p>esperados e reais determinantes para um Produto de Software, funcionando de acordo com</p><p>os requisitos do cliente.</p><p>Cenários de Teste: são vagos e cobrem muitas possibilidades. Então, para testar, é</p><p>necessário Criar Um Cenário Específico.</p><p>Veja o exemplo a seguir:</p><p>Cenário de Teste de Login</p><p>Caso de Teste 1: verificar o comportamento do software ao inserir um ID (Código de</p><p>Identificação) de usuário e senhas válidas;</p><p>Caso de Teste 2: verificar o comportamento do software ao inserir ID de usuário e senha inválida;</p><p>Caso de Teste 3: verificar o comportamento do software quando um ID de usuário está vazio e o</p><p>botão Login é pressionado.</p><p>Todas as Linguagens de Programação permitem a execução de Testes, mas nem todos os Testes podem</p><p>ser automatizados. Exemplo de uma função em Linguagem Python (Figura 5).</p><p>Figura 5 – Código em Python para executar uma função de 1º grau</p><p>O Código define uma função simples de primeiro grau x+1 para ser testada, quando x igual a 3, e faz uma</p><p>comparação da func(3) igual ao valor 5. Claro que esta função irá falhar, pois o Código retorna um valor de x+</p><p>1 → 3 + 1 que será igual a 4, quando o Código é testado por uma ferramenta que verifica o resultado da</p><p>função (Figura 6).</p><p>Figura 6 – Teste de Software e apresentação das respostas das falhas</p><p>Fonte: Reprodução</p><p>A resposta do Teste mostra as falhas ocorridas em vermelho, o erro no Código. O Teste foi executado 100%</p><p>e seu status foi de F (Falha). O resultado de func(3) é 4, e falhou quando (where) comparou 4 == 5.</p><p>O Teste será refeito no mesmo Código, agora com func (4) (Figura 7).</p><p>Figura 7 – Código em Python para executar uma função de 1º grau com</p><p>func(4)</p><p>Agora, o Código faz uma comparação da func(4) igual ao valor 5. Essa função não falha, pois o código</p><p>retorna um valor de x+ 1 → 4 + 1 que será igual a 5. O Código será testado e terá sucesso, sem falhas (Figura</p><p>8).</p><p>Figura 8 – Teste de Software e apresentação das respostas sem falhas</p><p>Fonte: Reprodução</p><p>Os dois exemplos de Teste podem ser executados manualmente ou podem ser automatizados, mas é</p><p>preciso levar em consideração se valerá o esforço de automatizar o Teste. Caso a entrada seja repetitiva,</p><p>Testes Automatizados podem fazer o trabalho contínuo.</p><p>Automatizar Testes deve ser feito se realmente faz sentido nas estratégias dos casos de Testes, confira a</p><p>seguir o Fluxo de trabalho de Testes Automatizados.</p><p>Testes Automatizados:</p><p>Testes de Regressão;</p><p>Testes para Recursos Estáveis;</p><p>Testes baseados em Dados;</p><p>Testes de Carga;</p><p>Testes de Fumaça;</p><p>Testes Manuais:</p><p>Mapeamento de Funcionalidades, Objetos, Requisitos e Outros Artefatos do Software</p><p>Desenvolvido</p><p>Os Testes automatizados são programas ou Scripts simples que exercitam determinadas funcionalidades,</p><p>para as quais os Testes realizam verificações automáticas apontando falhas que causam efeitos colaterais</p><p>de funcionamento. A vantagem dos Testes Automatizados reside nos casos de Teste, que podem ser fácil e</p><p>repetidamente feitos a qualquer tempo, sem esforço do Analista de Testes. Para ajudar nesse processo, o</p><p>mapeamento pode seguir um fluxo de trabalho, como listado a seguir.</p><p>Mapeamento de Funcionalidades:</p><p>Testes entre Dispositivos;</p><p>Testes entre Navegadores Web.</p><p>Testes com Resultados Imprevisíveis;</p><p>Testes de Uso Único;</p><p>Testes para Recursos Instáveis;</p><p>Testes Resistentes (Caso de Teste de desabilitar o CAPTCHA);</p><p>Recursos Nativos em Dispositivos Móveis;</p><p>Testes Exploratórios;</p><p>Testes de Usabilidade.</p><p>Verificar e</p><p>validar requisitos originais;</p><p>Objetos de Testes:</p><p>Artefatos de Teste:</p><p>Monitoramento de Testes Automatizados:</p><p>A dificuldade reside em elaborar o mapeamento de quais funcionalidades devem entrar nos Testes</p><p>Automatizados. O mapeamento de funcionalidades consiste no processo de identificar as entradas, que</p><p>serão as mesmas para os Testes, e as saídas de dados (resultados de Teste), quando esse processo é</p><p>executado. A abordagem para Testes Automatizados deve sempre levar em consideração se a repetição</p><p>Verificar e documentar defeitos;</p><p>Verificar e validar que os requisitos de software foram implementados;</p><p>Verificar e documentar defeitos.</p><p>Criar casos de teste;</p><p>Executar testes para validação em testes automatizados.</p><p>Implementar scripts de testes;</p><p>Programar testes automatizados.</p><p>Criar métricas;</p><p>Gerar relatórios de desempenho dos testes de automação.</p><p>ocorrer exaustivamente. Isso é definido no objeto de Teste que, caso seja validado para ser automatizado,</p><p>segue o fluxo para criação do Script de Execução do Teste automático.</p><p>Backlog e Oportunidades de Melhorias</p><p>Testes Automatizados permitem garantir uma ampla cobertura de Garantia de Qualidade (QA) do bom</p><p>funcionamento do software, aplicação ou alguma API integrada.</p><p>Quando um Sistema de Software é projetado, seguindo a cultura Agile, pequenos Testes contínuos podem</p><p>ser implementados juntamente com as entregas nas sprints dos requisitos/produtos.</p><p>Os Analistas de Testes fazem as atividades apresentadas a seguir durante os vários estágios de uma</p><p>Metodologia Ágil, considerando as etapas de cada sprint.</p><p>Planejamento Antes da Sprint</p><p>Na Sprint</p><p>No Planejamento de Sprint, um Tester deve escolher uma história de usuário do backlog do</p><p>produto que deve ser testado;</p><p>O Analista de Testes decide quantas horas (estimativa de esforço) deve levar para finalizar o</p><p>Teste de cada uma das histórias de usuário (user stories) selecionadas;</p><p>Alinhar os objetivos de Testes aos objetivos do sprint do produto;</p><p>Contribuir com o processo de priorização gerando oportunidade de melhoria do produto pelos</p><p>resultados na saída dos Testes realizados.</p><p>Apoiar os desenvolvedores em Testes unitários;</p><p>Testar a história do usuário quando concluído. A execução do Teste é realizada como num</p><p>Laboratório, no qual o Tester e o desenvolvedor trabalham juntos. Os defeitos são registrados</p><p>na ferramenta de Gerenciamento de defeitos, que são rastreados diariamente. Os defeitos</p><p>podem ser conferidos e analisados. Os defeitos são testados novamente assim que são</p><p>resolvidos e implantados para Testes automatizados, quando for o caso;</p><p>O Analista de Testes é responsável pelo desenvolvimento de scripts de Automação. Ele</p><p>agenda Testes de Automação com Sistema de Integração Contínua (CI). A automação recebe</p><p>a importância devido aos prazos de entrega curtos. A Automação de Teste pode ser realizada</p><p>utilizando várias Ferramentas de Mercado. Isso se mostra eficaz para garantir que tudo o que</p><p>precisa ser testado foi coberto. Uma cobertura de Teste suficiente pode ser alcançada com</p><p>uma comunicação próxima com a Equipe;</p><p>Revisar os resultados da Automação de CI e enviar relatórios para as partes interessadas; »</p><p>Executar Testes não funcionais para histórias de usuários aprovadas;</p><p>Coordenar junto ao cliente e o responsável pelo desenvolvimento do produto, os critérios de</p><p>aceitação dos Testes.</p><p>Em Síntese</p><p>Nesta Unidade, estudamos os conceitos básicos de automatização de testes de software.</p><p>Para finalizar o estudo, devemos observar que, a automatizar testes de software traz</p><p>inúmeros benefícios para a organização, tais como, descoberta de erros mais cedo, aumento</p><p>da amplitude de testes, segurança, maior confiabilidade, menos tempo no processo de teste,</p><p>menos desgaste da equipe e principalmente, uma maior qualidade no produto criado. Assim,</p><p>a implantação da automatização de testes é importante para a organização.Nesta unidade,</p><p>estudamos os conceitos básicos de automatização de testes de software. Para finalizar o</p><p>estudo, devemos observar que, a automatizar testes de software traz inúmeros benefícios</p><p>para a organização, tais como, descoberta de erros mais cedo, aumento da amplitude de</p><p>testes, segurança, maior confiabilidade, menos tempo no processo de teste, menos desgaste</p><p>da equipe e principalmente, uma maior qualidade no produto criado. Assim, a implantação</p><p>da automatização de testes é importante para a organização.</p><p>Indicações para saber mais sobre os assuntos abordados nesta Unidade:</p><p>Site</p><p>BSTQB</p><p>Para conhecer mais sobre a importância dos Testes Automatizados para as Empresas, existe certificação</p><p>profissional para quem pretende se tornar um especialista.</p><p>Clique no botão para conferir o conteúdo.</p><p>ACESSE</p><p>Vídeo</p><p>Grupo Boticário – Vídeo Case</p><p>Acompanhe o Case do Grupo Boticário sobre a Fábrica de Testes Contínua. Aqui,</p><p>temos um caso complexo. Os Testes estão integrados a uma ferramenta de</p><p>3 / 4</p><p>📄 Material Complementar</p><p>https://bit.ly/33O6h9z</p><p>Software de Controle de Processos – SAP. O caso mostra que são em média</p><p>4.000 horas de Testes por mês, que incluem diversos tipos de Testes e, dentre</p><p>eles, Funcionais, de Regressão, Compatibilidade, Perfomance e Segurança,</p><p>dentre outros. Assista no vídeo a seguir depoimento de Marcelo Moura, Gerente</p><p>de Tecnologia do Boticário.</p><p>Leitura</p><p>Como Aplicar Scrum em um Projeto de Teste de Software</p><p>Teste de software estão ligados à qualidade. Uma das maneiras de incorporar qualidade aos Testes de</p><p>Software é aplicar o que a Filosofia Scrum preconiza. O Scrum é um framework que ajuda a gerenciar o</p><p>Desenvolvimento Ágil de Projetos de software, saiba como aplicar o Scrum em um Projeto de Testes de</p><p>Software.</p><p>Prime Control - Grupo Boticário - Vídeo CasePrime Control - Grupo Boticário - Vídeo Case</p><p>https://www.youtube.com/watch?v=Ee9MXUXbm_g</p><p>Clique no botão para conferir o conteúdo.</p><p>ACESSE</p><p>Pyteste</p><p>Explore a Ferramenta de Testes Automatizados, Pytest, escrita em Python, utilizada neste Material. Atenção</p><p>especial para a documentação, requisitos de instalação e licença. Isso quer dizer que a Ferramenta está</p><p>sempre em evolução e, portanto, devem ser verificados os itens de bugs e solicitações de correções.</p><p>Perceba que ferramentas de Testes Automatizados também podem estar sujeitas a falhas, pois é um</p><p>software que realiza de modo automático pequenos Testes funcionais com a capacidade escalonada.</p><p>Clique no botão para conferir o conteúdo.</p><p>ACESSE</p><p>https://bit.ly/3o9k5or</p><p>https://bit.ly/2RIPRMT</p><p>IMONIANA, J. O. Auditoria de Sistemas de Informação. 3. ed. Rio de Janeiro: Atlas,</p><p>2016 [Recurso on-line].</p><p>PALANI, N. Software Automation Testing Secrets Revealed Part 1: Cucumber</p><p>BDD, Selenium Webdriver, Protractor, Selenium Grid, Appium, TestNG, Jenkins,</p><p>UFT, RFT, Visual Studio, Excel... based Automation Testing (English Edition). (e-</p><p>book) Kindle free. Disponível em:</p><p>. Acesso em:</p><p>21/06/2022.</p><p>VINCENZI, A. M. R. et al. (Orgs.). Automatização de teste de software com ferramentas</p><p>de software livre. Rio de Janeiro: Elsevier, 2018.</p><p>4 / 4</p><p>📄 Referências</p>

Mais conteúdos dessa disciplina