Você está na página 1de 20

Automação

Inserir TítulodeAqui
Inserir de
Testes Título
Software
Aqui
Introdução a Automação em Teste de Software

Responsável pelo Conteúdo:


Prof. Dr. Cleber Silva Ferreira da Luz

Revisão Textual:
Prof.ª Dr.ª Selma Aparecida Cesarin
Introdução a Automação
em Teste de Software

Nesta unidade, trabalharemos os seguintes tópicos:

Fonte: Getty Images


• Introdução;
• Teste de Software;
• Automação de 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”.

No material de cada Unidade, há videoaulas e leituras indicadas, assim como sugestões


de materiais complementares, elementos didáticos que ampliarão sua interpretação e
auxiliarão o pleno entendimento dos temas abordados.

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.

Nesta Unidade, você irá conhecer os principais conceitos de Automação de Testes


de Software.

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).

No Processo de Desenvolvimento de Software, é necessário realizar uma série de


atividades para garantir a qualidade do software criado.

Essas atividades são conhecidas como; “Validação, Verificação e Teste” ou simples-


mente chamadas de “VV&T”. Essas atividades são realizadas para garantir a qualidade
do software e, principalmente, se o software foi construído conforme a necessidade do
cliente. É importante compreender que não devemos nos preocupar com a qualidade do
software somente no final da criação dele, e sim, durante todo o processo de criação do
software (DELAMARO; MALDONADO; JINO, 2007).

Habitualmente, as atividades de VV&T são divididas em atividades estáticas e dinâ-


micas. As atividades estáticas não necessitam da execução ou até mesmo da existência
de um programa para serem realizadas. Já as dinâmicas são aquelas que necessitam da
execução de um programa (DELAMARO; MALDONADO; JINO, 2007).

Nesta Disciplina, iremos estudar as atividades dinâmicas, mais especificamente, o


Processo de Teste de um Software.

O Teste de Software visa a executar o software criado e inserir entradas específicas


para verificar se o software age conforme o esperado. Se o software não apresentar o
comportamento esperado, dizemos que um erro ou defeito foi encontrado. As entradas
inseridas no software podem ser utilizadas para encontrar as soluções para corrigir os
erros encontrados (NETO DIAS, 2015).

Na verdade, o foco desta Disciplina é a Automação de Teste de Software. Aqui, iremos


ver todos os aspectos do processo de Automação de Testes, tais como objetivos, princí-
pios, vantagens, limitações, métodos e ferramentas de Automação de Testes.

7
7
UNIDADE
Introdução a Automação em Teste de Software

Nesta disciplina, iremos “mergulhar de cabeça” no mundo da Automação de Teste e,


principalmente, realizar um estudo sobre as diversas ferramentas de Automação de
Teste existentes no Mercado.
Nesta Unidade, iremos estudar os conceitos básicos e introdutórios sobre a Automação
de Teste de Software.
Antes de aprofundarmos o estudo sobre a Automação de Testes de Software, faz-se
necessário definir “Teste de Software” e realizar um estudo sobre os conceitos bases de
Teste de Software. Portanto, o estudo realizado na próxima seção tem como objetivo
fortalecer o conhecimento sobre Teste de Software para que possamos aprofundar o
estudo em Automação de Teste.
O estudo realizado na próxima seção aborda conceitos primordiais que são utilizados
no processo de Teste de Software manual.
A partir da Seção 3, é que iremos de fato aprofundar o estudo no processo de Auto-
mação de Teste de Software e tal estudo irá se estender para as demais Unidades.

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.

(NETO DIAS, 2015) os define da seguinte forma:


• Defeito: pode ser compreendido como uma ação inconsistente realizado por um
indivíduo ao tentar entender uma informação ou, ainda, resolver um problema uti-
lizando um método ou ferramenta de forma inconsistente. No software, um defeito
pode ser uma instrução incorreta ou até mesmo um comando inconsistente (NETO
DIAS, 2015);
• Erro: é compreendido como uma manifestação concreta de um defeito em um arte-
fato de software, isto é, um erro é um defeito concretizado. Um erro pode ser visto
como a diferença entre o resultado obtido e o resultado esperado. Assim, qualquer
resultado inesperado na execução do software é encarado como um erro (NETO
DIAS, 2015);
• Falhas: pode ser compreendido como o comportamento do software diferente do
esperado. É interessante observar que uma determinada falha pode ser causada por
diferentes erros (NETO DIAS, 2015).

A diferença entre Defeito, Erro e Falha é representada na Figura 1, a seguir:

Processamento incorreto
Desvio da
Instruções ou e comportamento
especificação
Comandos incorretos inconsistente

Erro Falha
Defeito
Universo
Universo Físico
da Informação

Figura 1 – Defeito, erro e falha


Fonte: Adaptada de NETO DIAS, 2015

O Teste de um Software simplesmente revela falhas no software criado. Ao finalizar


o Teste do Software, é preciso depurar o Código do Software para identificar e corrigir
os erros que originaram tais falhas.

Elementos básicos de uma atividade de Testes


A atividade de Teste de Software é composta por alguns elementos básicos, que são
apresentados a seguir:

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.

Níveis de Teste de Software


Na visão de (NETO DIAS, 2015) a projeção dos Testes de Software deve ser realizada
em diferentes níveis, em paralelo ao Desenvolvimento de Software.
Esta visão revela que o Teste de Software é uma atividade que deve ser projetada
desde do início do desenvolvimento do software. Muitos Projetos fracassam porque a
Equipe só se preocupa com a qualidade do produto no final do desenvolvimento. É ne-
cessário haver preocupação desde do início do desenvolvimento do software.
Para (NETO DIAS, 2015) a projeção de Teste deve, ainda, ser realizada nos seguin-
tes níveis.
• Teste de Unitários: aqui, o software é visto como módulos separados e o objetivo
deste Teste é explorar a menor unidade do projeto, provocando falhas ocasionadas por
defeitos de lógica e de implementação em cada módulo. Nessa técnica de Teste, o foco
é verificar os métodos dos objetos ou pequeno trechos de códigos (NETO DIAS, 2015);
• Teste de Integração: esse nível de Teste de Software visa a provocar falhas asso-
ciadas às interfaces entre os módulos do software quando eles são integrados para
compor a estrutura do software (NETO DIAS, 2015);
• Teste de Sistema: aqui, o software é verificado para encontrar falhas por meio da
sua própria utilização. Nesta técnica, os Testes são realizados no mesmo ambiente e
com as mesmas condições em que o software será executado no dia a dia. O principal
objetivo deste Teste é verificar se o software realmente satisfaz os requisitos apresen-
tados pelo cliente (NETO DIAS, 2015);
• Teste de Aceitação: este nível visa a reunir um restrito grupo de usuário finais do
Sistema para simular as operações realizadas no dia a dia do sistema para analisar
como ele se comporta. Assim, é possível constatar se realmente o comportamento
do Sistema corresponde com o que o usuário necessita (NETO DIAS, 2015);

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

Figura 2 – Modelo descrevendo o paralelismo entre


as atividades de Desenvolvimento de Software
Fonte: Adaptada de NETO DIAS, 2015

Agora que já estudamos os fundamentos básicos sobre Testes de Software, vamos de


fato iniciar os estudos sobre Automação de Testes de Software.

A próxima seção apresenta aspectos introdutórios sobre a Automação de Testes, sendo


que um estudo aprofundado sobre a Automação de Testes é realizado na próxima Unidade.

Automação de Teste de Software


Realizar Teste de Software é garantir a qualidade do produto criado. Atualmente, exis-
tem muitas maneiras de se testar um software. Mesmo assim, testar um software é uma
atividade custosa, complexa e cansativa. Visando a melhorar a testabilidade de seus
produtos, muitas Empresas automatizam os Testes deles.

A Automação de Testes de Software visa a descobrir erros no produto criado utilizando


ferramentas, métodos e procedimentos que podem realizar Testes de forma autônoma.

11
11
UNIDADE
Introdução a Automação em Teste de Software

A Automação de Teste repassa para o computador as atividades de Teste de Software


que seriam realizadas manualmente por um profissional de Teste.

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.

Habitualmente, a Automação de Testes de Software é realizada por meio de uma


ferramenta de Teste, um software que consegue repetir as ações de um humano para
testar o produto criado.

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.

Na Próxima Unidade, realizaremos um estudo mais aprofundado sobre as vantagens


e as desvantagens da Automação de Teste de Software.

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.

No processo de automação, devemos escolher os “Testes Candidatos”, que serão


automatizados. Habitualmente, devemos escolher aqueles Testes que são críticos e que
se repetem por diversas vezes. Após realizar essa escolha, devemos reprojetar os Testes
escolhidos, isto é, projetá-los novamente, visando a aumentar as chances de aparecer
um defeito que ainda não foi encontrado.

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.

Técnicas de automação de software


Ao longo dos anos, foram surgindo diversas técnicas de Automação de Teste de
Software. Aqui, iremos estudar as principais técnicas, que são:
• Record & Playback;
• Programação de scripts;
• Data-Driven;
• Keyword-driven.

Cada técnica é apresentada com detalhes nas subseções seguintes.

Record & Playback


Uma das técnicas de Automação de Teste de Software mais usadas é a Record &
Playback. Esta técnica consiste em utilizar uma ferramenta de Automação de Teste
para gravar as ações realizadas pelo Testador, visando a converter tais ações em scripts
de Teste que podem ser executadas quantas vezes forem necessárias.
Habitualmente, o Testador realiza as ações sobre a interface gráfica do software,
simulando a iteração do usuário com o software, a fim de encontrar possíveis erros que
possam acontecer no dia a dia da utilização do software. As ações do Testador são então
gravadas e convertidas e scripts que serão executados posteriormente, automatização
tais ações gravadas (FANTINATO et al., 2004).
Nessa técnica, toda vez que o script é executado, as ações do Testador gravadas
são repetidas. Cada caso de Teste é gravado e para cada gravação é gerado um script
de Teste. Cada script de Teste inclui os dados de Teste, o procedimento de Teste a ser

13
13
UNIDADE
Introdução a Automação em Teste de Software

realizado e as ações do Testador sobre a interface do software criado (FANTINATO


et al., 2004).
A técnica de a Record & Playback é uma das principais técnicas utilizadas em Projetos
de Automação de Software, justamente pela principal característica da Automação de
Teste de Software, que é realizar tarefas repetidas e deixar que o Testador se preocupe
com Testes que necessitam mais de conhecimento do que esforço.
As principais vantagens dessa técnica são:
• Simplicidade: é ideal para Testes que são realizados poucas vezes;
• Realiza Teste repetidos: chatos, deixando que o Testador se preocupe com Testes
mais complexos.
Já as desvantagens podem serem vistas como:
• Custo relativamente alto: pois é necessário adquirir uma ferramenta de automa-
ção, e também realizar treinamentos, capacitação, contratar mão de obra qualificada
se for caso também;
• Curto tempo de vida do software de gravação: habitualmente, os softwares de
gravações possuem curto tempo de vida, necessitando adquirir atualizações e versões,
que muitas vezes, estão foram do pacote de comprando;
• Mudanças no software a ser testado, e implica novos scripts: muitas vezes,
software são desenvolvidos com escopo mal definido e que implica várias mudanças no
desenvolvimento dele. Tais mudanças, implicam diretamente os casos de Testes e novos
scripts de Testes terão de ser criados e, assim, novas gravações devem ser realizadas.

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.

A Programação de Script não grava ações do Testador e as transforma em script.


Aqui, é usada programação pura para criar os scripts de Testes, o que permite uma
maior taxa de reutilização, maior tempo de vida do script de Teste, melhor manutenção
e maior robustez dos scripts de Testes, isso, comparando com a Técnica de Record &
Playback (FANTINATO et al., 2004).

A Técnica de Programação de Script possui como vantagem simplicidade para alterar


scripts de Testes.

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).

A desvantagem da Técnica de Programação de Script pode ser vista como geração


de grande quantidade de script.

A aplicação pura de Programação de Script pode resultar em uma grande quantidade


de script de Teste, pois para cada caso de Teste é necessário criar um script, que deve
incluir também os dados de Teste e as ações necessárias para testar o software criado.

Todavia, as Técnicas Data-Driven e Keyword-Driven (que serão apresentadas com


detalhes nas próximas seções) podem ajudar a diminuir a quantidade de script de Teste.

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).

As próximas seções apresentam com detalhes essas duas Técnicas de Automação de


Teste de Softwares.

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.

Assim, os scripts de Testes passam a conter somente os procedimentos de Teste,


isto é, somente a lógica de execução e as ações de Testes sobre a aplicação, que nor-
malmente são genéricos para um conjunto de casos de Testes, o que permite aplicar as
“ações genéricas” em um conjunto de caso de Teste semelhantes, diminuindo, assim, a
quantidade de scripts de Testes criados (FANTINATO et al., 2004).

De forma resumida, a Técnica de Data-Driven separa os dados de Teste da lógica


e a ação de Teste. Assim, os scripts de Testes não mantêm os dados de Teste no pró-
prio Código.

Os dados são obtidos diretamente de arquivos somente quando necessário e de acordo


com a ação de Teste implementada.

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).

De forma resumida, podemos dizer que na Técnica de Automação de Teste Keyword-


-Driven, os scripts de Teste não mantêm os procedimentos de Teste no próprio Código.
Os procedimentos são obtidos diretamente de arquivos de procedimentos de Testes.

A vantagem desta Técnica de Automação é semelhante à da Técnica Data-Driven.


É possível alterar o script com o mínimo de esforço. Na técnica de Keyword-driven,
pode-se facilmente adicionar, modificar ou remover passos de execução no procedimento
de Teste com a mínima necessidade de alteração nos scripts de Testes. Esta técnica per-
mite, também, que o projetista e o Testador trabalhem em diferentes níveis de abstração,
assim como na Técnica de Data-Driven (FANTINATO et al., 2004).

Da mesma forma como a Técnica Data-Driven, a desvantagem que podemos encon-


trar na técnica de Keyword-driven é a complexidade para criar os scripts.

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.

Até aqui, estudamos os principais métodos de Automação de Testes de Software.


Importante observar que apesar de cada técnica ter sua particularidade, todas elas se
baseiam em scripts que são responsáveis por “executar ações que deveriam ser realiza-
das por um testador”.

A programação em script para Automação de Teste de Software será abordada nas


Unidades futuras e será de vital aprendizado para aqueles que quiserem seguir a Área
de Testes.

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.

CRAIG, R. D.; JASKIEL, S. P. Systematic Software Testing. Boston: Artech House


Publishers, 2002.

DELAMARO, M. E.; MALDONADO, J. C.; JINO, M. Introdução ao Teste de Software.


Brasil: Campus, 2007.

NETO DIAS A. C. Introdução a Teste de Software. Engenharia de Software Magazine,


p. 54-59. Brasil: 2015.

PRESSMAN, R. S. Software Engineering: A Practitioner’s Approach. 6.ed. Nova


Iorque: McGraw-Hill, 2005.

19
19

Você também pode gostar