I Teorico
I Teorico
I Teorico
Inserir TítulodeAqui
Inserir de
Testes Título
Software
Aqui
Introdução a Automação em Teste de Software
Revisão Textual:
Prof.ª Dr.ª Selma Aparecida Cesarin
Introdução a Automação
em Teste de Software
Objetivo
• Apresentar os principais conceitos sobre a Automação de Teste.
Caro Aluno(a)!
Normalmente, com a correria do dia a dia, não nos organizamos e deixamos para o úl-
timo momento o acesso ao estudo, o que implicará o não aprofundamento no material
trabalhado ou, ainda, a perda dos prazos para o lançamento das atividades solicitadas.
Assim, organize seus estudos de maneira que entrem na sua rotina. Por exemplo, você
poderá escolher um dia ao longo da semana ou um determinado horário todos ou alguns
dias e determinar como o seu “momento do estudo”.
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de
discussão, pois estes ajudarão a verificar o quanto você absorveu do conteúdo, além de
propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de
troca de ideias e aprendizagem.
Bons Estudos!
UNIDADE
Introdução a Automação em Teste de Software
Contextualização
No Desenvolvimento de Software, a maior dificuldade de uma Empresa é realizar
Atividades de Testes.
Testar um software é uma tarefa árdua, difícil e complexa. Muitos Projetos de Desenvol-
vimento de Software fracassam por causa dos maus Testes realizados com o Software. As-
sim, bons profissionais de Tecnologias devem saber automatizar Testes de Softwares para
aumentar a amplitude dos Testes e aumentar a confiabilidade do software desenvolvido.
6
Introdução
Atualmente, a Tecnologia tem se mostrado uma importante aliada para o desenvolvi-
mento da Sociedade, que a utiliza para melhorar as atividades do seu dia a dia.
A Tecnologia está presente na vida das pessoas, seja por meio de um celular, de um
tablet ou de computadores. Esses elementos são basicamente compostos por dois ele-
mentos básicos: software e hardware.
No desenvolvimento tradicional de software, é necessário que um analista de re-
quisito visite o cliente para colher todas as informações necessárias para a construção
do software.
O Desenvolvimento de Software é uma tarefa complexa e árdua. Assim, é possível
se deparar com diversos problemas que acabam levando à criação de um produto que
não era o que o cliente esperava, ou até mesmo levar a situações em que o software não
consiga realizar as atividades básicas para as quais foi criado.
Tais problemas podem ter origem diversas, todavia, em sua maioria é causada por
erro humano. A construção de software necessita, principalmente, do conhecimento, das
habilidades e das interpretações das pessoas que o constroem. Dessa forma, mesmo uti-
lizando excelentes métodos e poderosas ferramentas, ainda há chances de que ocorram
erros no Desenvolvimento do Software (DELAMARO; MALDONADO; JINO, 2007).
7
7
UNIDADE
Introdução a Automação em Teste de Software
Teste de Software
Teste de Software é uma atividade realizada no Processo de Desenvolvimento de
Software visando a verificar se o comportamento do software corresponde ao esperado.
O Teste de Software visa a encontrar falhas no software desenvolvido para que elas
sejam corrigidas antes de entregar o software ao cliente (PRESSMAN, 2005).
A atividade de Teste visa a aumentar a confiança do produto, expondo suas falhas
para que a equipe de desenvolvimento possa corrigi-las.
Para (NETO DIAS, 2015), o Teste de Software pode ser visto como uma atividade
formal que visa a observar o comportamento do software fornecendo entradas específi-
cas para que seja revelado o número máximo de erros.
Para muitas Organizações, o Desenvolvimento de Software se dá por boa parte de
codificação de uma pequena parte de Testes e, muitas vezes, há uma preocupação com
Teste do produto somente no final no desenvolvimento.
Teste de Software é uma área de extrema importância no processo de Desenvolvi-
mento de Software. Afinal, testar a qualidade do produto é importante para saber se ele
atende aos requisitos para os quais foi criado.
Habitualmente, os fracassos no Desenvolvimento de Software se dão, muitas vezes,
pelo fato de o software não atender as necessidades básicas pela qual foi projetado.
Deixando o cliente insatisfeito com o produto adquirido e consequentemente, levando o
projeto ao fracasso.
Testar um software é realizar um processo investigativo visando a descobrir erros que
apareçam para o cliente no dia a dia da utilização do software.
No processo de Testes de um Software, é vital que a Equipe entenda perfeitamente
a diferença de defeito, erro e falhas. Para muitos, esses conceitos são iguais, entretanto,
há uma boa diferença entre eles.
A próxima seção apresenta detalhes sobre esses conceitos.
8
Defeito, erro e falhas
No processo de Teste de Software, nós nos deparamos com Defeitos, Erros e Falhas.
Para muitos, não há diferença entre esses 3 elementos. Todavia, Defeitos, Erros e
Falhas são distintos e há uma grande diferença entre eles.
Processamento incorreto
Desvio da
Instruções ou e comportamento
especificação
Comandos incorretos inconsistente
Erro Falha
Defeito
Universo
Universo Físico
da Informação
9
9
UNIDADE
Introdução a Automação em Teste de Software
• Caso de Teste: descreve um cenário de Teste composto por valores de entrada, res-
trições necessárias para a execução do software e a descrição do comportamento
do software esperado (CRAIG; JASKIEL, 2002). Casos de Testes são vitais para o
processo de Testes. Neles são descritos os cenários pelo qual o software deve ser
testador. Um Projeto de Testes pode possuir diversos casos de Testes e cada caso
de Teste deve ser bem definido e claro para que o Teste seja realizado com êxito;
• Procedimento de Teste: consiste na descrição passo a passo de como executar
um caso de Teste (CRAIG; JASKIEL, 2002). Aqui, temos uma descrição de como
realizar o Teste do Software, instruções bem claras e bem definidas, que são utiliza-
das para testar o Software. É importante observar que os procedimentos de Testes
devem ser totalmente interligados aos casos de Testes;
• Critério de Teste: é utilizado para avaliar casos de Testes de forma a aumentar as
chances de provocar falhas. Ao aumentar a possibilidade de ocorrência de falha,
mais confiável o software será.
Agora que já conhecemos os elementos básicos da atividade de Teste de Software,
podemos avançar e estudar os Níveis de Teste de Software, que são apresentados na
seção seguinte.
10
• Teste de Regressão: este não é um nível de Teste, mas corresponde a uma técnica
importante para a redução de “efeitos colaterais”. O objetivo principal desta técnica
é aplicar a cada nova versão do software todos os Testes aplicados em versões
anteriores do software. Podemos aplicar essa técnica em qualquer nível de Teste do
software (NETO DIAS, 2015).
A Figura 2 ilustra como esses níveis estão organizados. Analisando esta figura, obser-
vamos que o planejamento e a projeção dos Testes de Software devem ser realizados de
cima para baixo, tal como:
• Após analisar o documento de análise de requisito, é iniciado o Planejamento do
Teste de Aceitação (NETO DIAS, 2015);
• Posteriormente, é iniciado o Planejamento do Teste do Sistema (NETO DIAS, 2015);
• Após, ocorre o Planejamento dos Testes de Integração (NETO DIAS, 2015);
• E, por último, o Planejamento dos Testes corre a partir da codificação (NETO DIAS,
2015).
Desenvolvimento Teste
Planejar para...
Especificação
de Requisito Teste de Aceitação
Planejar para...
Projeto de Teste de Sistema
Alto Nível
Planejar para...
Projeto
Teste de Integração
detalhado
Planejar para...
Codificação Teste de Unidade
11
11
UNIDADE
Introdução a Automação em Teste de Software
Podemos dizer ainda que a Automação de Testes visa a aplicar estratégias e ferra-
mentas visando à redução do envolvimento humano em atividades manuais, repetitivas.
Deixando assim, o profissional foca atividades de Testes que requerem mais habilidades,
conhecimentos e interpretações do que esforços físicos.
Para alguns autores, na Literatura, a Automação de Teste vai além de usar ferramentas,
estratégias ou métodos para realizar atividades repetitivas. Para eles, a Automação de
Testes é uma forma de aumentar a amplitude dos Testes de Softwares, criando, assim,
cada vez mais softwares robustos com alta qualidade.
Os benefícios advindos da automação dos Testes são vastos e, entre eles, podemos
citar os seguintes:
• Descobertas de erros de forma mais rápida;
• Reduzir o tempo de Teste no ciclo de vida do software;
• Minimização de tempo/esforço para encontrar erros;
• Diminuir o custo;
• Aumento da produtividade no Desenvolvimento de Software;
• Aumentar a qualidade do software criado.
Por ora, podemos concluir que, ao ser aplicada corretamente, a Automação de Teste
permite que a Empresa aumente a confiabilidade de seu produto por meio da automação.
Analista de Teste
Na Organização, a pessoa responsável por realizar os Testes é chamada de Analista
de Testes ou Testador.
Um Analista de Teste busca garantir que o software seja entregue respeitando as
qualidades desejadas pelo cliente.
O Analista de Teste realiza uma série de Teste para verificar se o software está reali-
zando todas as atividades desejadas pelo cliente, com êxito.
Testes Candidatos
Os Testes realizados pelos analistas são realizados de forma manual. Nesse cenário,
a automação surge com o objetivo de automatizar os Testes que são realizados de forma
manual e repetidos, assim, diminuindo o esforço do analista de Teste.
12
Segundo Caetano (2019), os benefícios da Automação de Testes são: realização rápida
de Testes, aumento da gama e aprofundamento no processo de Testes.
Segundo Caetano (2019), os Testes Candidatos podem ser agrupados nas seguin-
tes categorias;
• Smoke Tests: são os Testes selecionados a fim de validar um Build ou liberação
antes do início de um ciclo de Testes;
• Testes de Regressão: são os Testes selecionados que visam a execução dos o re-
testes de uma funcionalidade ou da aplicação inteira;
• Funcionalidades Críticas: são os Testes selecionados que visam validar as funcio-
nalidades críticas que podem trazer riscos à utilização do software;
• Tarefas Repetitivas: são os Testes selecionados que visam a reduzir o envolvimento
dos analistas de Testes em atividades manuais repetitivas.
13
13
UNIDADE
Introdução a Automação em Teste de Software
A técnica de Record & Playback se sobressai sobre as demais técnicas pela sua simpli-
cidade de uso. Na próxima seção, iremos estudar a técnica de programação de scripts
que adota programação pura, ao invés de gravar a ação e transformá-la em script.
Programação de scripts
A Técnica de Automação de Programação de Scripts visa a criar/programar um
script para cada caso de Teste. A técnica de Programação de Script é mais flexível que
a técnica de Record & Playback.
Por exemplo, vamos supor que no Projeto de Teste do Software, a Equipe esteja
usando a técnica de Record & Playback. A Equipe já gravou as ações de Teste para
o caso de Teste XPTO. Todavia, após gravar, faz-se necessário realizar uma pequena
alteração na interface gráfica da aplicação. Nesse caso, seria necessário gravar a ação
do caso de Teste todo. Agora, se a Equipe de Teste estiver usando a técnica de Progra-
14
mação de Script, somente seria necessário realizar uma alteração de algumas partes
específicas do script de Teste já criado. Essa simplicidade na alteração dos Testes facilita
ao Testador realizar alterações nos scripts e, também, é possível criar um script do zero,
utilizando Programação de Scripts (FANTINATO et al., 2004).
Essas duas Técnicas são Técnicas de Programação de Script avançadas, que permi-
tem melhorar a criação, a definição e a manutenção de casos de Testes Automatizados
(FANTINATO et al., 2004).
Técnica de Data-Driven
A Técnica Data-Driven também conhecida como Técnica Orientada a Dados, visa
a extrair dados dos scripts de Testes. Os dados extraídos são únicos, isto é, para cada
caso de Teste, são extraídos determinados dados que são armazenados em arquivos
distintos dos scripts de Testes.
Como vantagem desta técnica, podemos citar: pode facilmente adicionar, modificar
ou remover dados de Teste ou, ainda, modificar casos de Testes inteiros, como pequenas
alterações no script de Teste.
Podemos dizer, ainda, que essa técnica possibilita que o projetista de Teste e o Testa-
dor trabalhem em diferentes níveis de abstração, salvo que o projetista de Teste necessita
apenas elaborar os arquivos com os dados de Teste sem se preocupar com questões
técnicas da automação podendo, assim, criar diferentes fluxos de trabalho ao mesmo
tempo no projeto de Teste (FANTINATO et al., 2004).
15
15
UNIDADE
Introdução a Automação em Teste de Software
Uma desvantagem desta Técnica pode ser dada como a complexidade para criar os
scripts. Separar os dados do script é uma tarefa complexa que requer certo nível de
habilidade do profissional.
Técnica Keyword-Driven
A última técnica de Automação de Teste que iremos estudar é a Técnica Keyword-
-Driven ou simplesmente Técnica Orientada à Palavra-Chave.
Essa técnica extrai dos scripts de Testes, o procedimento de Teste, isto é, esta Técnica
visa a separar a lógica de execução dos scripts de Testes.
Assim, os scripts de Teste passam a conter somente as ações específicas de Teste sobre
o software, as quais são identificadas por palavras-chaves. Podemos dizer que essas
ações de Testes são como funções de um programa, que podem receber parâmetros,
podem também ser ativadas pelas palavras-chaves a partir da execução de diferentes
casos de Testes, como uma chamada de um método em programação. Aqui, o proce-
dimento de Teste é armazenado em um arquivo separado, na forma de um conjunto
ordenado de palavras-chaves e respectivos parâmetros (FANTINATO et al., 2004).
Criar script já não é uma tarefa trivial. Criar script separando os procedimentos de
Testes é um pouco mais complexo. Por isso, essa técnica é considerada uma técnica
avançada de programação em script. Entretanto, uma vez que se dedica com afinco à
programação de script, é possível adquirir cada vez mais habilidades e criar scripts cada
vez mais complexos.
16
Teste de Software é considerado uma Área da Engenharia de Software que se preocupa
com a qualidade do software criado e são atividades realizadas no Processo de Desenvol-
vimento dele para verificar se o software atende aos requisitos para os quais foi criado.
A atividade de Teste está totalmente ligada à qualidade do software. Existem diversas for-
mas de testar um software. Nesta Disciplina, realizamos um estudo teórico e prático sobre
a Automação de Teste de Software.
A Automação de Teste de Software é vista como uma forma de aumentar a amplitude dos
Testes e, consequentemente, aumentar a confiabilidade do software criado.
A Automação de Testes de Software consiste, basicamente, em repassar para o computa-
dor tarefas de Testes que deveriam ser realizadas repetitivas vezes por um profissional. Tal
repasse, habitualmente, é feito por meio de estratégias, métodos ou ferramentas.
Automatizar Testes de Software traz inúmeros benefícios para a Organização, tais como
descoberta de erros mais cedo, aumento da amplitude de Testes, segurança, maior confia-
bilidade, menos tempo no processo de Teste, menos desgaste da Equipe e, principalmente,
maior qualidade no produto criado.
Todavia, muitas Empresas têm uma visão errônea da automatização de Testes. Para elas,
a automação é vista como um simples uso de ferramenta para executar Testes repetitivos
e cansativos.
Nesta Disciplina, veremos que a automatização vai muito além de um simples uso de fer-
ramenta para automatizar Testes. A automação deve ser encarada com seriedade e como
um projeto formal. Só assim, poderá trazer benefícios para a Organização.
Na próxima Unidade, realizaremos um Estudo Teórico sobre a Automação e, nas demais,
um Estudo Prático, visando a apresentar os diversos métodos e ferramentas para a Auto-
mação de Testes de software.
17
17
UNIDADE
Introdução a Automação em Teste de Software
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Leitura
Testware: ferramenta de planejamento e execução de casos de Teste
https://bit.ly/2ZSHE9I
A Importância dos Testes Automatizados
https://bit.ly/3aRArNo
Teste de Software: o que e como é ensinado?
https://bit.ly/3pUzIiA
Uso de aprendizado de máquina para a Automação de Testes de sistemas web
https://bit.ly/3pSb81P
18
Referências
CAETANO, C. Melhores Práticas na Automação de Testes. Engenharia de Software
Magazine, Brasil: 2019.
19
19