Buscar

Cont_online_10

Prévia do material em texto

1 
Aula 10: Ferramentas de Teste de Software - Estácio de Sá 
 
 
Nesta aula, você irá: 
1. Estudar as técnicas de teste automatizado de software e suas limitações; 
2. Analisar o uso de ferramentas de teste automatizado no desenvolvimento de sistema; 
3. Analisar as principais ferramentas de teste automatizado de software; 
 
Automação de teste de Software 
O que é automação de teste de software 
 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). 
Basicamente os testes de software podem ocorrer de duas formas, através de testes manuais ou 
testes automatizados. 
 
 
 Tipos de Testes Automatizados (Progressivos e Regressivos) 
A automação de teste deve ser vista: 
 
 
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: 
 Gravador ou recorde: 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. 
2 
Aula 10: Ferramentas de Teste de Software - Estácio de Sá 
 
 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. 
 
 Segundo Graham e Fewster (1999), existem diferentes estratégias consideradas ao se 
projetar e escrever scripts de testes: 
 
 
 
 
Ferramentas de teste automatizado de software 
 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:. 
Para um bom desempenho do processo de automatização estas ferramentas devem ser 
integradas entre si: 
 
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. As principais características destas ferramentas são: Gerenciamento de defeitos e 
gerenciamento de configurações 
3 
Aula 10: Ferramentas de Teste de Software - Estácio de Sá 
 
 
Ferramentas de suporte aos 
testes 
 
Gerenciamento de defeitos 
 
Gerenciamento de Configurações 
 
 
 
 
Ferramentas de Planejamento de Testes 
 Esta categoria de ferramenta apoia o processo de planejamento 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. 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 
Planejamento 
de Testes 
 
 
Análise de 
Criticiadade 
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. 
 
Geração de 
documentos 
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 work-flow de preparação, 
elaboração, inspeção e aceite dos documentos. 
 
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. As principais 
características destas ferramentas são a modelagem de testes, gerador de massa de dados e 
automatizados de scripts. 
 
 
4 
Aula 10: Ferramentas de Teste de Software - Estácio de Sá 
 
Ferramentas de 
Modelagem e Automação 
 
 
Modelagem de testes 
 
Gerador de massa de dados 
 
Automatizados de scripts 
 
 
 
Ferramentas de Revisões e Inspeções 
 Estas ferramentas auxiliam nas revisões de documentos e inspeções técnicas que podem 
ser aplicadas em todas as etapas do processo de desenvolvimento. Suas principais 
características são a análise de complexidade, a compreensão do código e a análise sintática de 
semântica. 
Ferramentas de Revisões 
e Inspeções 
 
 
Análise de complexidade 
 
Compreensão de código 
 
Análise sintática e de semântica 
 
 
5 
Aula 10: Ferramentas de Teste de Software - Estácio de Sá 
 
 
 
Ferramentas de execução e Conferência 
 As 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 selecionados no planejamento. As principais 
características destas ferramentas são a: análise de cobertura, executor de scripts, simuladores 
de performance e testadores de memória. 
Ferramentas de 
execução e 
Conferência 
 
 
 
Ferramentas de execução e Conferência 
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. 
Executor de scripts: Como as ferramentas de execução e conferência 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. 
Simuladores e medidores de performance: Estão diretamente ligadas aos testes de sistema, como 
os testes de carga, volume e performance, já que nessa categoria é impossível conceber a ideia de 
realizar testes sem empregar ferramentas específicas. 
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. 
 
 Qual ferramenta utilizar? Nesta aula iremos conhecer de uma forma resumida alguma das 
principais ferramentas utilizadas no mercado para testes automáticos de software: 
 
6 
Aula 10: Ferramentas de Teste de Software- Estácio de Sá 
 
 
===============================================================================================
 
===============================================================================================
 
===============================================================================================
 
===============================================================================================
 
 
Para conhecer a relação completa de ferramentas de teste de software com licença 
livre disponível, acesse o endereço: http://opensourcetesting.org. Este site lista 
ferramentas para diversas linguagens e aplicações, tais como: Teste de 
desempenho; Interfaces gráficas (GUI); Estresse de aplicações Web eBases de 
dados para administra a aplicação de teste para registrar ocorrências de erro em 
um projeto. 
 
7 
Aula 10: Ferramentas de Teste de Software - Estácio de Sá 
 
Projeto de automação de teste 
 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: 
 
 
 
 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 
 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. 
 
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. 
Preparação do 
ambiente 
 
Execução dos 
testes 
 
Conferência dos 
testes 
 
 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. 
 Desta forma 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: 
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. 
8 
Aula 10: Ferramentas de Teste de Software - Estácio de Sá 
 
 
Leia o artigo: “O Teste de Software no Mercado de Trabalho” que faz um resumo dos conceitos estudados em nossa 
disciplina. 
 
 
 
Nesta aula, você: 
Estudou as técnicas de teste automatizado de software e suas limitações; 
Analisou o uso de ferramentas de teste automatizado no desenvolvimento de sistema; 
Analisou as principais ferramentas de teste automatizado de software;

Continue navegando