Blog > Automação com TestComplete (Parte 1): Introdução

25/fev

Este post tem o objetivo de introduzir os principais conceitos da ferramenta TestComplete da SmartBear. Discutiremos o que é possível fazer usando esta ferramenta, falaremos sobre licença, plataformas suportadas e como se dá a criação de um projeto no TestComplete. Ao fim da leitura você será entenderá como o Testcomplete trabalha.

Introdução

Automatizar testes tem sido Trend Topic para a comunidade de testes de software, isso porque ajuda muito o profissional de testes em seu trabalho diário e traz benefícios não só a ele, como também ao resto da equipe e aos clientes que recebem o software. A complexidade da automação de testes encontra-se na realidade que vivemos no Brasil, composta, entre outros, por softwares despreparados para serem automatizados e com baixa manutenibilidade, além de baixo investimento em testes e uma falsa crença de que apenas uma ferramenta servirá para solucionar todos os problemas de qualidade de software.

Acredito não ser necessário falar mais para que percebamos que nenhuma ferramenta é semelhante a tão conhecida "bala de prata", pelo contrário, ela é parte de uma série de componentes que contribuem para a melhoria de nossos processos e softwares. E nisso sim, podemos contar e muito com uma ferramenta de automação.

O TestComplete, que é o foco desta série de cinco posts, é uma ferramenta voltada para automação de testes e conta com suporte a diversas plataformas e também a diversas técnologias, e isso que começaremos a ver a partir de agora.

Plataformas

Desktop, Web e Mobile são as três plataformas das quais o TestComplete fornece suporte, logo, podemos automatizar testes que possam ser executados em aplicações desenvolvidas nestas plataformas criando testes em uma mesma ferramenta. Utilizar apenas uma ferramenta para criar e executar todos os testes auxilia e muito uma equipe, os principais benefícios são a baixa curva de aprendizado e a organização e facilidade de gerenciar os projetos.

Veja abaixo as tecnologias suportadas em cada uma destas três plataformas:

Plataforma Tecnologias suportadas
Desktop Microsoft: Visual C#, Visual Basic .NET and Visual C++ .NET ver. 7.0, 7.1, 8.0, 9.0, 10.0, 12.0 (Visual Studio ver. 8.0 com Service Pack 1 instalado) and 14.0, JScript .NET
Non-Microsoft: Borland C#Builder, Borland Delphi para .NET (Delphi 8, Delphi 2005 e 2006), CodeGear Delphi 2007 para .NET, Sybase PowerBuilder .NET 12, Python .NET, Cobol .NET, e outros
TestComplete suporta aplicações criadas para .NET Framework ver. 2.0 - 4.6
Microsoft Visual C++ 6.0, Visual C++ ver. 7.0, 7.1, 8.0, 9.0, 10.0, 12.0 (Visual Studio ver. 8.0 com Service Pack 1 instalado) e 14.0
Intel C++ Compiler 11.0.066
64-bit .NET, Delphi, Java, Windows e aplicações Qt
Microsoft Visual Basic 6.0
Borland Delphi 7.0, Delphi 2005 e 2006, CodeGear Delphi 2007 e 2009, Embarcadero Delphi 2010, XE – XE8, 10
Borland C++Builder 6.0, C++Builder 2006, CodeGear C++Builder 2007 e 2009, Embarcadero C++Builder 2010, XE – XE8, 10
TestComplete suporta apenas aplicações Delphi e C++Builder que usam VCL e CLX
TestComplete não suporta aplicações construídas usando frameworks de interface gráfica (GUI) cross-platform que renderizam a aplicação como gráficos
Aplicações Java 5, 6, 7 e 8 que usam bibliotecas AWT, SWT ou Swing. Tanto em 32 quanto em 64-bits
JavaFX ver. 8, 2.2.45, 2.2.25, 2.2.21 e 2.2.7 SDK
Qt ver. 5.0 - 5.4.2 by Digia, Qt (Aplicações 32-bit e 64-bitsão suportadas).
Sybase PowerBuilder 12.0, 12.5, 12.5.2 e 12.6
Microsoft Visual FoxPro 7.0 e posteriores
Microsoft Office Access 2003 e 2007
Microsoft Office InfoPath 2003 e 2007
Web Microsoft Edge (ambos 32 e 64-bits)
Microsoft Internet Explorer 9 - 11 (ambos 32 e 64-bits)
Google Chrome 46 (ambos 32 e 64-bits)
Mozilla Firefox 38 - 41
Opera 31
Adobe Flash 9.0 - 17.0
Adobe Flex 3.3 - 4.6 SDK
Apache Flex 4.9 - 4.14 SDK
Adobe AIR 2, 3 e 17 SDK
Microsoft Silverlight 4 e 5
WS-I Basic Profile 1.1, SOAP 1.1 and 1.2 (SOAP over HTTP) e WSDL 1.1
WCF web services: BasicHttpBinding e WSHttpBinding
Mobile Android 4.0.1 - 4.4.x, 5.0 - 5.1.1, 6.0 (API Level 15-19, 21-22, 23)
iOS 7.x, 8.x, 9.0 - 9.1 rodando em iPhone 5, 5S, 6, 6 plus, iPad 4, iPad Air, Air 2, iPad mini 1, 2 e iPod touch 5

Documentação e Suporte

A documentação do TestComplete é bem extensa e composta por texto e vídeos, que explicam todas as funcionalidades e métodos disponíveis para serem utilizados. O suporte técnico é um serviço que é garantido aos usuários que compram a ferramenta durante os 12 primeiros meses após a compra das licenças e é renovado por mais 12 meses quando a licença é renovada.

Principais funcionalidades

  • Criação de testes em formato Keyword-Driven Tests
  • Captura automática de evidências da execução dos testes
  • Gravação de testes através de Record and Playback
  • Possibilidade de criação e utilização de plugins externos
  • Checkpoints (Asserções)
  • Depuração de testes
  • Gerenciamento e execução de testes distribuídos (em muitas máquinas)
  • Identificação de elementos através de sua árvore
  • Emissão automática de relatório de testes
  • Testes dirigidos a dados
  • Testes em WebServices Soap
  • Conexão com banco de dados via ODBC
  • Execução de testes via prompt de comando

Integração

TestComplete permite integração com diversas aplicações relevante no mercado, como:

Controle de versão

  • Subversion
  • TFS
  • Git
  • Mercurial

Gerenciamento de bugs

  • Bugzilla
  • Jira
  • On Time
  • QA Complete

Outros tipos de teste

  • Testes em APIs (Ready!API e SoapUI)
  • Testes de performance (LoadUI)

Formas de identificação de objetos

Identificar objetos é o objetivo padrão de uma ferramenta de automação de testes e depende disso para poder interagir com eles. As ferramentas de automação de testes geralmente trabalham com o formato de identificação de objetos através de sua árvore, por exemplo:

JanelaPrincipal.FormularioProdutos.CampoValor

No exemplo acima vemos a forma de identificação do objeto chamado "CampoValor", que está em um "FormularioProdutos" que, por sua vez, está dentro da "JanelaPrincipal". Uma vez identificado, podemos interagir com ele, por exemplo, digitando um texto, veja um exemplo:

JanelaPrincipal.FormularioProdutos.CampoValor.Digitar("59.90")

Outra forma de identificar elementos pela árvore do objeto, que também é bastante utilizada é a pesquisa através de propriedades do elemento, veja alguns exemplos abaixo:

JanelaPrincipal.Pesquise("id" => "produtovalor")
JanelaPrincipal.PesquiseXPath("//input[@name='produtovalor']")
JanelaPrincipal.PesquiseCSS(".input[name='produtovalor']")

Outras ferramentas, trabalham com a identificação por posição x e y da tela, por exemplo:

Clicar(500, 20)
Digitar("59.90", 500, 20)

Já outras, trabalham com a identificação dos objetos através de uma referência gráfica, como uma foto por exemplo:

Clicar(foto_do_campo.png)
Digitar("59.90", foto_do_campo.png)

O TestComplete é capaz de identificar elementos usando todos os formatos mencionados acima. Claro, a forma principal é a identificação através da árvore de objeto, que é a mais segura, mas é possível utilizar as demais formas.

Automação via Keyword

A automação de testes via Keyword usa o conceito de Keyword-Driven Testing, que diz que os testes devem ser representados em colunas, e cada ação deve ser representada por uma linha, exemplo:

| Sequência | Objeto        | Ação  	| Valor  |
--------------------------------------------------
| 1         | produtovalor  | Clicar	| -      |
| 2         | produtovalor  | Digitar   | 59.90  |
| 3         | btn_salvar    | Clicar    | -      |

Quando se grava um teste no TestComplete no formato Keyword, o resultado é semelhante ao exibido anteriormente, e seu diferencial é que cada passo é representado graficamente, tornando a compreensão dos passos algo um tanto simples. Testes gravados no formato Keyword, além das ações básicas (como clique e digitação, por exemplo) também é possível adicionar outras ações como: chamada a outros testes, atribuição de valores a variáveis, condicionais, laços, testes dirigidos a dados, checkpoints, etc.

Este formato não é tão escalável e por ser simples geralmente é o preferido por quem começa a utilizar a ferramenta.

Automação via Script

A automação de testes via Script permite ao testador escrever seus teste em uima linguagem de programação específica. O TestComplete permite que a escrita seja feita em VBScript, JScript, DelphiScript, C++, C# e, na sua última versão, Python. Isso dá ao testador a possibilidade de utilizar a maior parte dos recursos contidos na liguagem escolhida, como atribuição de variáveis, criação de métodos, laços, condicionais, acesso a banco, etc.

O TestComplete também conta com objetos específicos para suporte a quem escreve testes usando o formato script, como, por exemplo: conversão de dados, escrita em arquivos, testes dirigidos a dados, comandos de captura de cmagens, comandos controladores do sistema operacional, logging e etc.

Certificação

A certificação do TestComplete é um exame que conta com 60 questões e tem o tempo total de 120 minutos, feito no formato online. O valor atual é $149,00. As incrições podem ser realizadas a partir do link abaixo:

https://smartbear.com/product/testcomplete/features/training-certification

A certificação é independente de versão e tem duração ilimitada, mas é aconselhável atualizar-se a cada 2 anos, uma vez que a aplicação continua sendo atualizada constantemente.

Licenciamento e Valores

O TestComplete é uma ferramenta privada, e por isso, para utiliza-la é necessário comprar licenças de uso. Há dois tipos de licença: Node-locked e Floating. Node-locked são mais baratas, mas limitadas a apenas um computador físico. Licenças Floating, são mais caras, mas podem ser usadas em muitos computadores, não simultâneamente. Uma vantagem da licença Floating é que pode-se usar o TestComplete em máquinas virtuais.

É necessário comprar o TestComplete Platform, que é obrigatória, e é a plataforma da aplicação. Além da plataforma é cesessário adquirir um ou muitos módulos, dentre eles: Desktop (para automatizar aplicações Desktop), Web (para automação de aplicações web) e Mobile (para automação de apps móveis).

Existem duas aplicações que podem ser compradas a parte e que não necessitam da licença do TestComplete Platform que são: TestExecute que é usado como executor de testes e pode ser instalado em uma máquina separada e o HP Quality Center Connector que faz a integração entre TestComplete e o gferenciador de testes da HP.

Veja os valores no site da SmartBear:

https://smartbear.com/product/testcomplete/pricing/

Referências

https://support.smartbear.com/viewarticle/75299/

POSTS RELACIONADOS

Workshop Gratuito de TestComplete (Online)

Conheça vários recursos e benefícios do TestComplete com um especialista gratuitamente

AGENDA

CURSOS RELACIONADOS