Buscar

CCT0204 Aula 10

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

*
TESTES DE SOFTWARE – AULA 10
Ulisses Sperle Graça
Rio de Janeiro, outubro de 2011
FERRAMENTAS 
DE TESTE DE SOFTWARE
*
Estudar as técnicas de teste automatizado de software e suas limitações;
Analisar o uso de ferramentas de teste automatizado no desenvolvimento de sistema;
Analisar as principais ferramentas de teste automatizado de software;
Resumo da Disciplina.
*
OBJETIVOS DESTA AULA
*
Por muitos anos os testes de software foram feitos com simulação das situações criadas pelos programadores e/ou analistas utilizando dados fictícios ou amostra dos dados reais.
Estes dados eram gerados manualmente ou através da utilização de programas temporários preparados especificamente para este fim.
*
INTRODUÇÃO
*
Com o avanço das tecnologias como o advento das interfaces gráficas (GUI) e da Internet, por exemplo, os sistemas tornaram-se muito mais complexos. 
 Nesta aula serão abordadas as diferenças entre teste e automação de testes. Será discutida a limitação dos testes automatizados e apresentada as diferentes técnicas utilizadas na automatização. 
*
INTRODUÇÃO
*
Analisaremos o uso de ferramentas de teste automatizado no desenvolvimento de sistema e as principais ferramentas de teste automatizado de software utilizadas atualmente.
*
INTRODUÇÃO
*
Vale lembrar que nas aulas anteriores estudamos que as revisões e testes são os instrumentos de controle de qualidade de um projeto de desenvolvimento de software.
Estudamos também que o processo de teste está inserido em todo o ciclo de vida do desenvolvimento da aplicação, desta forma, serão apresentadas diversas ferramentas de apoio a tais atividades, que variam quanto a parâmetros e técnicas implementadas, e ainda, pelas linguagens suportadas. 
*
INTRODUÇÃO
*
O que é Automação de teste?
A diferença entre testes e automação de testes, é que no primeiro você realiza a tarefa de testar, e no segundo você usa um software que imita a interação com a aplicação no que se refere ao teste tal qual um ser humano faria (Graham e Fewster,1999).
*
AUTOMAÇÃO DO TESTE DE SOFTWARE
*
O conceito de testes manuais é a utilização de recursos humanos para realizar todos os procedimentos de testes especificados. Este tipo de teste requer um número grande de profissionais e um controle eficiente de documentos em circulação. O risco inerente a esse tipo de teste é a grande incidência de erros humanos no processo devido a:
A não execução dos procedimentos na ordem estabelecida.
A valores digitados erradamente.
*
AUTOMAÇÃO DO TESTE DE SOFTWARE
*
Os testes automatizados utilizam ferramentas de testes que possibilitem simular usuários ou atividades humanas de forma a não requerer procedimentos manuais no processo de execução dos testes. Entretanto requerem profissionais especializados e tempo no desenvolvimento da automação dos testes.
*
AUTOMAÇÃO DO TESTE DE SOFTWARE
*
Teste Regressivo
Quando temos nova versão de software e comparamos com a versão anterior, o teste é em função de algo do passado.
Teste Progressivo
Quando utilizamos um script de teste de desempenho para simular a quantidade de 1.000 usuários virtuais e depois reexecutamos numa nova versão do sistema usando agora 2.000, desejamos ver o comportamento futuro do sistema.
*
TIPOS DE TESTE AUTOMATIZADO
*
Para agilizar e automatizar o processo de teste a maioria das ferramentas de automação de testes apresentam como principais características:
 
Gravador: Quase todas as ferramentas possuem de alguma forma um gravador que, uma vez acionado, grava, na forma de uma linguagem interna (seja visual ou não) tudo que o usuário fizer, ficando armazenado no script de teste.
 
Script de teste: Uma vez acionado pelo executor de testes, o script entra em execução, pois o que foi gravado vai sendo repetido.
*
TÉCNICAS DE TESTE AUTOMATIZADO
*
Para agilizar e automatizar o processo de teste a maioria das ferramentas de automação de testes apresentam como principais características (cont.):
 
Executor de teste ou playback: recurso da ferramenta que executa o que foi gravado ou registrado no script de teste. Cada ferramenta implementa este recurso de uma forma, porém todas fazem a mesma coisa.
 
Data-driven test ou teste dirigido a dados: Consiste em criar um script e depois fazer isso de uma massa de dados que será executada no script, dirigindo a forma como será executado assim como a quantidade de vezes que ele será executado.
*
TÉCNICAS DE TESTE AUTOMATIZADO
*
Segundo Graham e Fewster (1999), existem diferentes estratégias consideradas ao se projetar e escrever scripts de teste:
Scripts lineares;
Acripts estruturados e scripts compartilhados;
Data-driven scripts(técnica orientada a dados);
Keyword-driven scripts(técnica orientada a palavras chave).
*
TÉCNICAS DE TESTE AUTOMATIZADO
*
Scripts lineares
 
É uma técnica que faz gravação ou replicação direta das ações do teste sem nada acrescentar. Esta técnica consiste em gravar as ações executadas por um usuário sobre a interface gráfica de uma aplicação e converter estas ações em scripts de teste que podem ser executadas quantas vezes for necessário.
*
TÉCNICAS DE TESTE AUTOMATIZADO
*
Scripts estruturados ou scripts compartilhados
Esta técnica aciona mais de um comando simulando a execução em paralelo de diversas ações. Na técnica de scripts compartilhados os scripts podem ser utilizados em mais de uma caso de teste e tendem a ser scripts genéricos como login e logout, por exemplo. Ambas as técnicas são uma extensão da técnica de scripts lineares possibilitando que os scripts de teste gravados sejam, alterados para que desempenhem um comportamento diferente.
*
TÉCNICAS DE TESTE AUTOMATIZADO
*
Data-driven scripts (técnica orientada a dados)
 
É uma técnica que separa os dados usados pelo script do script em si. Consiste em extrair dos scripts de teste os dados de teste e armazená-los em arquivos separados da lógica de execução devido ao alto volume de dados. Uma das vantagens na utilização desta técnica é a possibilidade da utilização do mesmo script com diferentes arquivos de dados, em diferentes formatos. 
*
TÉCNICAS DE TESTE AUTOMATIZADO
*
Keyword-driven scripts (técnica orientada a palavras chave)
 
Técnica muito semelhante ao data-driven script, porém neste caso utiliza palavras-chaves ou ações específicas que são usadas constantemente em mais de um script. Consiste em extrair dos scripts de teste, o procedimento de teste que representa a lógica de execução.    
*
TÉCNICAS DE TESTE AUTOMATIZADO
*
As revisões e testes são instrumentos de controle de qualidade de um projeto. Existem diversas ferramentas de apoio a tais atividades, que variam tanto quanto a parâmetros como técnicas implementadas e linguagens suportadas: 
Ferramentas de Planejamento de testes;
Ferramentas de Revisões e Inspeções;
Ferramentas de Modelagem e Automação;
Ferramentas de Suporte aos Testes;
Ferramentas de execução e conferência;
Ferramentas de Revisões e Inspeções.
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de Planejamento de Testes
Esta categoria de ferramenta apoia o processo de planeja-mento dos trabalhos de testes, definindo escopos, abordagens, agendando reuniões e programando atividades.
Auxiliam no processo de documentação inicial, possibilitando gerar planejamentos padronizados e na elaboração de estimativas de tempo e custo, além de dimensionar as equipes de acordo com o tempo disponível.
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de Planejamento de Testes (cont.)
Estas informações são geradas a partir da coleta inicial de requisitos de software que irão possibilitar dimensionar o esforço e complexidade envolvida no processo de desenvolvimento. As principais características destas ferramentas são a análise de criticidade e a geração de documentos.
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de Planejamento de Testes (cont.)A análise de criticidade permite direcionar esforços de forma eficiente, através da priorização dos sistemas, indicando quais sistemas devem ser testados inicialmente. Permite também estimar tempo, custos e equipes através da análise da complexidade de cada software, baseando-se nos requisitos a serem cumpridos.
 
A geração de documentos facilita o processo de documentação, através da utilização de parametrizações e modelos de documentos. Permitem também gerenciar as versões dos modelos e ainda possibilitam organizar workflow de preparação, elaboração, inspeção e aceite dos documentos. 
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de Revisões e Inspeções
 
Auxiliam nas revisões de documentos e inspeções técnicas que podem ser aplicadas em todas as etapas do processo de desenvolvimento. Principais características:
 
 
 Fonte: Bartié, 2002
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de Revisões e Inspeções (cont.)
A análise de complexidade auxilia a identificar onde estão as áreas mais complexas e quais possuem maior risco de introduzir novos erros, além de quantificar o esforço e os custos dos testes a serem empregados.
 
A análise sintática e de semântica localiza erros na sintaxe e na semântica dos comandos empregados no código, os quais o compilador não acusaria, sendo possível detectar defeitos antes de os testes formais serem iniciados.
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de Revisões e Inspeções (cont.)
A compreensão de código auxilia a inspecionar os códigos-fontes, possibilitando avaliar a aderência a padrões de programação estabelecidos pela organização. Exemplos:
Padrão de nome,
Utilização de rotinas corporativas,
Variáveis não utilizadas, 
Sub-rotinas internas não acionadas, 
APIs incompatíveis com determinados SOs.
 
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de Modelagem e Automação
As ferramentas de modelagem auxiliam no processo de construção e documentação de como serão testados todos os requisitos de negócio, possibilitando registrar todos os procedimentos de teste a cada cenário estabelecido e ainda o processo de conferência dos dados. 
Estas ferramentas possibilitam o desenvolvimento de scripts automatizados.
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de Modelagem e Automação (cont.)
As principais características destas ferramentas são:
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de Modelagem e Automação (cont.)
 
A modelagem de testes auxilia nos processos de planejamento e construção dos testes, identificado os diversos cenários estabelecidos para cada requisito a ser testado. Determina as informações que devem ser empregadas em cada procedimento de teste, atingindo o menor nível de detalhamento. 
Lembre que a modelagem dos testes é um processo mental, assim nenhuma ferramenta substituirá a expe-riência e abstração de um bom analista de testes, porém estas ferramentas auxiliam na estruturação das ideias.
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de Modelagem e Automação (cont.)
 
A geração de massa de dados possibilita a geração automática de massa de dados baseada no planejamento dos testes e critérios estabelecidos de forma a garantir uma massa diferenciada e nas circunstâncias desejadas.
 
A automação de scripts possibilita a interação entre as rotinas automatizadas e os softwares a serem testados através da captura de valores em telas, arquivos, relatórios ou mesmo em banco de dados. Permitem automatizar não somente as atividades de entrada, como o processo de conferência (análise da saída das informações).
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de Execução e Conferência
 
Possibilitam o gerenciamento e o controle do processo de execução, reexecução e medição dos testes planejados. Possibilitam integra-ção entre as demais fases, de forma a executar os testes seleciona-dos no planejamento. Suas principais características são:
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de Execução e Conferência (cont.)
A análise de cobertura possibilita estabelecer uma métrica de cobertura do teste através do monitoramento das linhas de código executadas. Os testes de caixa branca requerem esse tipo de ferramenta, pois possibilita visualizar áreas do código não cobertas pelos testes em execução.
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de Execução e Conferência (cont.)
Como estas ferramentas são normalmente integradas aos softwares de planejamento de testes e desenvolvimento de scripts, o executor de scripts permite executar os procedimentos na ordem e frequências preestabelecidas. Permite também a gestão do ciclo de testes como um todo, com o controle de execução de cada caso de testes, o controle da reexecução dos testes e os desvios de testes provocados por erros inesperados.
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de Execução e Conferência (cont.)
Os testadores de memória auxiliam no processo de detecção de problemas em relação ao uso e alocação de memória pela aplicação. Sendo assim devem ser específicas para cada linguagem e ambiente.
 
Os simuladores e medidores de performance estão diretamente ligados aos testes de sistema, como os testes de carga, de volume e de performance, já que nessa categoria é impossível conceber a ideia de realizar testes sem empregar ferramentas específicas.
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de suporte aos testes
Estas ferramentas apoiam atividades que não estão diretamente ligadas ao processo de testes, porém garantem que determinados itens fundamentais desse processo estão sendo bem gerenciados. Suas principais características são:
Gerenciamento de defeitos;
Gerenciamento de configurações.
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de suporte aos testes (cont.)
O gerenciamento de defeitos tem como objetivo acompanhar e controlar os defeitos identificados durante o ciclo de vida do software e monitorá-los até a sua solução final, através da produção de um grande número de indicadores de qualidade.
Também é conhecido por: gerenciamento de erros, gerenciamento de problemas, registro de ocorrências, controle de incidências.
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Ferramentas de suporte aos testes (cont.)
O gerenciamento de configurações permite controlar e coordenar as mudanças efetuadas em documentações, fontes e ambientes físicos. Estabelece a relação entre os artefatos de software e identifica-los através de um único controle de versão enquanto ocorre modificações de fontes de uma versão anterior.
*
FERRAMENTAS DE TESTE AUTOMATIZADO
*
Qual ferramenta utilizar?
Agora iremos descrever de uma forma resumida alguma das principais ferramentas utilizadas no mercado:
 Junit;
Jmeter;
RFT (IBM Rational Functional Tester);
Mercury Quality Center;
JaBUTi (Java Bytecode Understanding na Testing).
*
FERRAMENTAS COMERCIAIS DE TESTE
*
Framework de código aberto que tem o objetivo de facilitar a automatização de testes unitários em aplicações que utilizam a linguagem Java e possui integração com várias IDEs.
 
Para acessar maiores informações: http://www.junit.org/index.htm 
 
*
JUnit
*
A IDE (Integrated Development Environment ou Ambiente Integrado de Desenvolvimento), é um programa de computador que reúne uma série de características e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este processo.
*
JUnit
*
Ferramenta de código aberto para aplicações Java projetada inicialmente para testes funcionais e de performance para aplicações web. 
Para acessar maiores informações consulte: http://jakarta.apache.org/jmeter/ 
*
JMeter
*
RFT (IBM Rational Functional Tester)
Ferramenta de propriedade da empresa IBM para automação de testes de regressão, funcional, de interface gráfica (GUI) e data driven. 
Para acessar maiores informações consulte: 
http://www-01.ibm.com/software/awdtools/tester/functional/*
IBM Rational Functional Tester
*
Conjunto de ferramentas de propriedade da empresa HP que abrange diferentes tipos de testes, linguagens e arquitetura.
Possui uma interface integrada baseada na Web para teste e gerenciamento de qualidade  de software em diversos ambientes de aplicação.
Para acessar maiores informações consulte: http://www8.hp.com/br/pt/home.html 
*
Mercury Quality Center
*
JaBUTi (Java Bytecode Understanding na Testing)
Ferramenta de suporte ao teste estrutural para programas Java, desenvolvida pela USP. O seu diferencial entre as outras ferramentas existentes com a mesma função de teste é que toda a análise estática necessária para a realização do teste é feita sobre o programa objeto, ou seja, sobre o bytecode Java e não sobre o programa fonte.
Maiores informações: http://ccsl.icmc.usp.br/pt-br/projects/jabuti-0 
*
JaBUTi
*
Um projeto de automação de teste é um investimento alto e de longa duração, e por isso mesmo os dirigentes das organizações obviamente tem expectativas em relação a custos e aos benefícios trazidos pela sua implementação. Por isso um projeto de automação de testes deve ser cercado de alguns cuidados: 
*
Projeto de Automação de Teste
*
Ferramenta: Seleção da ferramenta certa, adequada à tecnologia usada e que possa integrar com as metodologias de desenvolvimento e teste.
Metodologia: Existência de metodologias de desenvolvimento e testes consolidadas e usadas, que possam se integrar com a ferramenta escolhida.
*
Projeto de Automação de Teste
*
Infraestrutura: Disponibilidade de máquina e seus recursos, um projeto em desenvolvimento (em fase de testes) dedicado para o projeto de automação de testes. 
Recursos: Garantia por parte dos dirigentes da organização quanto à disponibilidade de recursos humanos capacitados e financeiros para o projeto, apoio para as mudanças requeridas nos processos de desenvolvimento e testes, assim como nas ferramentas de desenvolvimento.
*
Projeto de Automação de Teste
*
Quais casos de testes são candidatos a automatização?
A cada nova versão de um software torna-se necessário realizar um novo conjunto de teste, visando ampliar as melhorias implementadas.
Desta forma também é necessário reexecutar um conjunto de casos de testes (todos ou partes) de forma a avaliar se as mudanças realizadas danificaram outras partes do software que já funcionava. 
*
Quando usar a Automação de Teste?
*
Os custos relativos à execução dos testes de progressão não são importantes. Porém são importantes os custos de execução dos testes de regressão, pois estes devem ser reexecutados ao longo do ciclo de vida do software. 
*
Quando usar a Automação de Teste?
*
Devemos considerar que os testes automatizados visam a otimização da execução dos testes, mas deve ser feito preventivamente um estudo de viabilidade técnica  e um estudo de custo beneficio para sua utilização ou não.
Os testes automatizados não substituem os testes manuais, eles são complementares e para isso devemos levar em consideração que todo caso de teste é naturalmente candidato à automação, mas naturalmente nem todos são recomendáveis para automação:
*
Quando usar a Automação de Teste?
*
Se o caso de teste for algo pontual e específico de alguma versão do software e não se espera que seja testado em versões futuras, não é candidato à automação.
Se o caso de teste tiver características de uso de uma grande massa de dados, indica ser um data-driven test que precisará provavelmente ser automatizado. 
Não existe tempo hábil para automatizar o teste desejado devido ao cronograma, então ele não será momentaneamente um teste a ser automatizado. 
*
Quando usar a Automação de Teste?
*
Tem-se notado o crescente aumento do Teste de Software no mercado de TI, como também a presença de profissionais qualificados na área de testes em empresas de desenvolvimento de software.
 Cresce a consciência que esta parte do processo exige conhecimentos específicos, contribuindo decisivamente para o sucesso de um projeto.
*
CONCLUSÃO
*
Existem diferentes soluções e metodologias aplicáveis no mercado, que contribuem para a construção de uma boa estrutura na fase de teste de software, considerando que é uma das fases mais importantes no ciclo de desenvolvimento quando se fala em qualidade.
É necessário que os processos de TS sejam aplicados em todas as etapas do ciclo de vida do software, de acordo com a situação em que o software se encontre.
*
CONCLUSÃO
*
Para que o teste de software consiga manter a qualidade do sistema em um mercado em que o tempo é um dos principais fatores considerados, surge a necessidade de que o teste seja realizado de forma mais rápida, o que leva a grande procura por técnicas de automação.
A automação de testes é uma solução ágil, porém acarreta em custos e tempo de criação e manutenção.
*
CONCLUSÃO
*
Por este motivo, a necessidade de automação ainda é muito discutida no mercado, o que leva a empresa a avaliar as vantagens, circunstâncias e o esforço necessário para criar a automação de teste, analisando se o custo-benefício será satisfatório.
Tem surgido cada vez mais vagas para profissionais experientes, demonstrando que o mercado se preocupa cada vez mais em entregar produtos de qualidade.
*
CONCLUSÃO
*
Os profissionais de teste de software têm por objetivo identificar o maior número possível de irregularidades no sistema, para que o software chegue ao cliente com o menor número possível de bugs, reduzindo significativamente os gastos das empresas com o re-trabalho e evitando o descontentamento do usuário final.
*
CONCLUSÃO
*
Diante da incessante competitividade do mercado atual, empresas procuram garantir a qualidade de seus produtos como fator que represente sua capacidade em desenvolver sistemas com qualidade.
No mercado existem varias técnicas de teste de software que auxiliam essa garantia, cabendo a cada empresa analisar quais realmente estão de acordo com suas políticas e possibilidades de investimentos.
Fonte:	 O Teste de Software no Mercado de Trabalho
	Filipe Bernardes Barbosa e Isabelle Vasconcelos Torres
*
CONCLUSÃO
*

Continue navegando